0

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

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

4

1 回答 1

1

你没有做错什么。提供不是neocomplete工作 omnifunc.

Neocomplete 可以很好地处理全向补全:它用于omnifunc提供良好的补全候选,以及 vim 提供的其他补全。但是,neocomplete 本身不提供或设置omnifunc不同的文件类型。这就是为什么它的配置示例有多行带有set omnifunc=...

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

可悲的是,默认情况下没有为 Vim 脚本提供全方位补全功能,因此您需要 i) find one 和 ii) set omnifunc=(that function)。之后,neocomplete 将能够使用该功能提供全向补全。


编辑:正如@Martin Macak 指出的那样,neocomplete-vim 的 github 页面确实显示了诸如omni-completion 之类的东西。经过一番挖掘,这些完成似乎来自Shougo/neco-vim ,在 doc中简要提及。i_CTRL-X_CTRL-V提到那里也值得一试。

于 2015-12-16T08:48:46.543 回答