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世纪的编辑器,提供更好的脚本、插件支持,整合现代的图形界面。
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'