[更新 06/2013:正如用户 doubleDown 所观察到的,我的术语错误:方便C-p
和C-n
击键不是 全能补全(omnicompletion),而是 关键字补全。我认为 Vim 术语在这里有点不幸:omni是拉丁语 for every,而关键字似乎是一个更受限制的选择。默认的方式C-p
和C-n
工作是完成散文的每个单词,而不仅仅是关键字。这让我觉得他们必须是全能补全,而不仅仅是关键字补全。]
嗯... :-) ... 只需输入我的问题的标题,一个非常有效的答案就会出现在标题相似的问题目录中。(这只是表明这个网站有多好!)无论如何我都会问这个问题 - 也许有人在商店里得到了一个更令人满意的答案......所以这里是:
Vim 关键字全方位补全(默认绑定到C-p
并C-n
处于编辑模式)是一个穷人的智能感知,在我的经验中几乎一样好。它在缓冲区中搜索匹配的字符串。
但是,一些文件类型脚本通过让关键字omni完成执行包含文件的递归搜索来超越顶部。(更新:搜索包含的文件实际上是默认设置,从 Vim 7.3 可以看出:help 'complete'
;只是对于某些文件类型,包含了很多东西,这会导致速度缓慢,可能会因次优算法而恶化。)所以对于 Perl脚本,它将开始搜索模块列表。递归。这很快就会退化为一些严重的扫描,你知道的,磁盘 I/O 和所有那些丑陋的东西。
因此,我宁愿避免使用该功能,因为我不得不中断搜索,从而失去了我获得的时间和便利C-c
,这会在输出中留下一些随机字符串,然后我必须将其删除。
所以到目前为止最好的解决方案就是在默认完成中禁用包含文件的使用,方法是说:
:set complete-=i # remedy
:help 'complete' # documentation
有什么要补充的吗?