Vim 自动补全

虽然vim跟IDE相比智能补全是一个硬伤,但是对那些补全需求不那么挑剔的人,Vim的补全已经能应付绝大多数场景了。另外在非code领域的补全我还没有见过能跟Vim相抗衡的对手。

[toc]

##触发自动补全 常见的是用<C-p><C-n>,这两个命令已经能应付绝大多数的场景了。另外还有如下实用命令:

命令 补全类型
<C-n> 普通关键字
<C-x><C-n> 当前缓冲区关键字
<C-x><C-i> 当前文件关键字
<C-x><C-]> 标签文件关键字
<C-x><C-k> 字典查找
<C-x><C-l> 整行补全
<C-x><C-f> 文件名补全
<C-x><C-o> 全能补全

触发Vim的自动补全命令后,会弹出候选菜单,此时可以用C-nC-p选择菜单下一项或上一项。

##与自动补全菜单进行交互 常用的有<C-n>, <C-p>, <C-e>

按键操作 作用
<C-n> 使用补全列表下一个匹配项
<C-p> 使用补全列表上一个匹配项
<C-e> 退出自动补全

##自动补全来源 ###缓冲区列表 缓冲区列表代表当前Vim会话打开的所有文件 可用如下命令查看缓冲区列表

:ls!

###包含文件 通过设置include选项让Vim了解相应语言的对应提示符。

###标签文件 如用 ctags 建立代码库索引,一是让浏览代码变得简单,二是产生一份可用于自动补全的关键字列表。

普通关键字补全会把上述的补全组合在一起,并生成补全建议。 而全能补全往往配合插件使用,从而提供更高级的补全方式。