1

当我只打开相同文件类型的文件时,我发现 Vim 的关键字补全非常有用。但是一旦我开始编辑一种以上的文件类型,它就变得不那么有用了。如果我正在编辑一个 Python 项目,然后在另一个选项卡中打开我的 vimrc,则 Python 文件中的关键字完成现在将包含来自我的 vimrc 的关键字。在不禁用完成选项以查看其他缓冲区的情况下,是否可以让关键字完成仅适用于相同文件类型的缓冲区?

4

2 回答 2

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

于 2012-09-26T21:44:20.067 回答
1

好主意。我是 Vim 插入模式完成的忠实粉丝,并编写了一个库,可以轻松实现自定义完成:CompleteHelper

通过对该库(我刚刚在 1.30 版中实现)进行一些增强,它允许将完成候选者限制为某些缓冲区。有了这个,我已经将您的建议实现为SameFiletypeComplete 插件。试试看; 我希望它对你有用。

于 2012-09-27T14:18:43.527 回答