当我只打开相同文件类型的文件时,我发现Vim的关键字完成非常有用。但是一旦我开始编辑多个文件类型,它就变得不那么有用了。如果我正在编辑Python项目然后在另一个选项卡中打开我的vimrc,那么从Python文件中完成关键字将包含来自我的vimrc的关键字。如果不禁用完全查看其他缓冲区的选项,是否可以让关键字完成仅适用于具有相同文件类型的缓冲区?
答案 0 :(得分:1)
您正在使用<C-n>
/ <C-p>
,对吧?
set complete
的值确定完成源。默认值包括完成列表中其他缓冲区和窗口的内容。
请参阅:help 'complete'
以获取选项列表。这可能会解决您的问题:
:set complete=.,t,i
或者,您可以使用其他完成快捷方式,例如<C-x><C-n>
,<C-x><C-p>
或<C-x><C-o>
,具体取决于您要完成的内容。请参阅:help ins-completion
。
答案 1 :(得分:1)
好主意。我是Vim插入模式完成的忠实粉丝,并编写了一个库,可以轻松实现自定义完成:CompleteHelper。
对该库进行了一点改进(我刚刚在版本1.30中实现),它允许将完成候选限制为某些缓冲区。有了这个,我已经将你的建议实现为SameFiletypeComplete plugin。试试看;我希望它对你有用。