Vim做为一个出色的编辑器,自动补全功能自然少不了。Vim是内建代码补全功能的,在不需要通过任何设置的情况下就能使用。下面我们主要介绍Vim内建代码补全功能及相关配置。
1. 自动补全
在插入模式下输入内容的时候,只要按下CTRL-N
或CTRL-P
就会根据前面输入的内容以相应的模式弹出补全的关键字列表以供选择。该功能需配合插入模式 completeopt 和 自动补全选项 complete 设置,可以根据 complete 的值在选定的选项内查找补全内容,根据 completeopt 的值以相应模式自动弹出候选关键词列表。例如,我的设置为:
1 2 3 |
" complete默认值为 .,w,b,u,t,i 具体含义可查看帮助:h complete " vim补全模式设置 更多设置查看帮助 :h completeopt set completeopt=preview,menu |
当我输入字符 vim 的时候按下CTRL-N
vim就会在弹出所有匹配到的词以供选择,当我们再次按下CTRL-N
的时候就选择了第二个候选词,这个时候如果按下CTRL-P
就再次选择了第一个词。由此可见,当我们第一次输入CTRL-N
的时候会触发自动补全,再次输入就是选择候选词了。如果你足够细心,可能会发现当我们按下CTRL-N
的时候已经选择了一个词,这是因为我的补全模式completeopt
设置的是preview
。如果你不想在触发自动补全的时候就默认选择了第一个词,那么可以设置completeopt=noselect
。
并且,从上面的例子中可以看出:CTRL-P
补全是向上查找以进行补全,而CTRL-N
是向下查找以进行补全,在不同场合使用不同的快捷键可以加速补全的速度。
2. 补全方式
vim中其它的补全方式包括:
1 2 3 4 5 6 7 8 9 10 11 12 |
整行补全 CTRL-X CTRL-L 根据当前文件里关键字补全 CTRL-X CTRL-N 根据字典补全 CTRL-X CTRL-K 根据同义词字典补全 CTRL-X CTRL-T 根据头文件内关键字补全 CTRL-X CTRL-I 根据标签补全 CTRL-X CTRL-] 补全文件名 CTRL-X CTRL-F 补全宏定义 CTRL-X CTRL-D 补全vim命令 CTRL-X CTRL-V 用户自定义补全方式 CTRL-X CTRL-U 全能(omni)补全 CTRL-X CTRL-O 拼写建议 CTRL-X s |
例如,当我们输入vim80并按下CTRL-X CTRL-F
时,vim就会弹出下拉菜单,显示出当前目录下的可选目录和文件。
你也可以对以上命令定义键盘映射来减少按键次数、提高工作效率。如下是帮助文档中给出的键盘映射,以供参考:
1 2 3 4 5 |
" 建议使用以下映射来使得输入补全命令简单一点 (不过它们可能屏蔽其它的命令) :inoremap <C-]> <C-X><C-]> :inoremap <C-F> <C-X><C-F> :inoremap <C-D> <C-X><C-D> :inoremap <C-L> <C-X><C-L> |
如果你想使用Tab键进行自动补全,那么你可以参考SuperTab插件使用。