Neocomplete不适用于vim文件

时间:2015-12-11 13:58:04

标签: vim neocomplete

我刚刚安装了Neocomplete,并尝试使用C文件,ruby和python,它完美无缺。 我有vim文件的问题,因为我根本没有完成任何omnicompletion。我尝试了C-x C-o并得到omnifunc is not set错误

我做错了什么?我认为这可以从头开始。

1 个答案:

答案 0 :(得分:1)

你没有做错任何事。提供neocomplete并不是omnifunc的工作。

Neocomplete确实适用于全方位完成:它使用omnifunc提供完成的好候选人,以及vim提供的其他完成。但是,neocomplete本身不会为不同的文件类型提供或设置omnifunc。这就是为什么its configuration example有多行set omnifunc=..

的原因

它适用于python等,因为相应的函数由vim运行时文件(例如/usr/local/share/vim/vim74/autoload/pythoncomplete.vim)或其他插件(如jedi-vim)提供,并且omnifunc选项也相应地设置(如果你想知道在哪里,试试:verbose set omnifunc?)。

遗憾的是,默认情况下没有为Vim脚本提供omni完成功能,因此您需要i)找到一个和ii)set omnifunc=(that function)。之后,neocomplete将能够使用该功能提供全方位完成。

编辑:正如@Martin Macak所指出的,neocomplete-vim的github页面确实显示了类似omni-completion的内容。经过一些挖掘后,似乎这些完成来自Shougo/neco-vim,简要提到in the doc。提到i_CTRL-X_CTRL-V也值得一试。