Neocomplete 不适用于 vim 个文件

Neocomplete does not work with vim files

我刚刚安装了 Neocomplete 并尝试了 C 文件,ruby 和 python 并且它运行良好。 我对 vim 文件有问题,因为我根本没有得到任何 omnicompletion。我尝试 C-x C-o 并得到 omnifunc is not set 错误

我做错了什么?我认为这会从头开始工作。

你没有做错任何事。 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 脚本提供全方位补全功能,因此您需要 i) 找到一个和 ii) set omnifunc=(that function)。之后neocomplete就可以使用那个函数来提供omni补全了。


编辑:正如@Martin Macak 指出的那样,neocomplete-vim 的github 页面确实显示了类似全功能的内容。经过一番挖掘,这些补全似乎来自 Shougo/neco-vim, mentioned briefly in the doci_CTRL-X_CTRL-V提到那里也值得一试