Vim是从vi发展出来的一个文本编辑器。其代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。和Emacs并列成为类Unix系统用户最喜欢的编辑器。

  时至2020年,vim已经走过了29个年头,虽然vim是个开源项目,但是提交分支全由Vim作者Bram Moolenaar进行管控,前些年巴西程序员 Thiago de Arruda Padilha(aka tarruda)向 Vim开源编辑器项目递交了两大补丁,对Vim的架构进行了大幅调整,被拒绝后tarruda发起了Vim fork项目Neovim,集资1万美元打造出21世纪的编辑器,提供更好的脚本、插件支持,整合现代的图形界面。

File:Neovim-logo.svg

  neovim与vim的操作是一致的,连配置文件也可以复用,并且neovim对插件的兼容更好,除了支持原生vim-script编写的插件以外,还支持高级语言所编写的插件。并且现今开源社区的vim插件对neovim支持在第一梯队。

  文末会配上本人的dotfile,是面向neovim的(当然不看插件部分,vim也是可以使用的)

常用快捷键

键位 功能
a 在下一个字符进行输入
shift+a 在行尾直接插入
shift+i 在行前直接插入
shift+o 在当前行上一行写入
s 删除当前字符并开始插入
x 删除当前字符
d 剪贴操作,可以剪贴多个字符例如d3⬅️:向左删除3个字符
p 粘贴
y 复制,具体用法与d相同
c 更改操作(删除后进入写入模式)
w 光标移动到下一个词
b 回到上一个词
f 查找下一个你需要的字母,例如fv(即找到下一个v)
zz 居中当前行
G 到文档最后一行
gg 到文档首行

方向键

键位 功能
h ◀️
j 🔽
k 🔼
l ➡️

可视模式

  可以当作鼠标光标开始选择的一个模式,方便做框选后的其他操作

  在可视模式下,按下:后接normal可以输入普通模式下的指令,例如shift+i进入行首进行插入字符

键位 功能
v 默认可视模式
V 选中行的可视模式
ctrl+v 选中块文本可视模式

分屏

  在普通模式下输入:后接以下指令进入分屏

  分屏后按下:e后接文件路径,在分屏中开始编辑另一个文件

  分屏后输入:vertical resize+-数字 进行更改垂直分屏大小

键位 功能
split 上下分屏
vsplit 左右分屏
ctrl+w 后接hjkl 在分屏间移动

标签

  在不想退出vim,且想新开一个vim并占满全屏的情况下,输入:tabe即可新建一个vim窗口

键位 功能
tabe 新建vim标签页
-tabnext 上一个标签页
+tabnext 下一个标签页

插件

  插件推荐使用vim-plug进行管理,以下为本人使用的插件

名字 用处
nerdtree 文件树,通过ff呼出
coc.nvim 一个非常强大的补全插件
airline 一个漂亮的状态栏插件
nerdtree-git-plugin nerdtree支持git状态侦测
vim-devicons 支持文件类型检测,随后在编辑文件的时候有文件类型的logo
onedark.vim 仿atom编辑器主题
vim-gitgutter 支持行检测git状态
vim-startify 一个便利的vim启动界面,可以更快的改配置文件,修改最近修改过的文件
tagbar 查看文件内的定义

配置文件

  nvim的配置文件路径在~/.config/nvim/init.vim,vim的配置文件位置在~/.vimrc,个人推荐在你的shell的配置文件中设置别名,方便修改vim的配置文件。

alias configvim='vim ~/.config/nvim/init.vim'

如果你和我一样使用nvim,也可以为nvim使用别名

alias vim='nvim'
alias vi='nvim'