我刚刚安装了 Neocomplete 并尝试了它用于 C 文件、ruby 和 python 并且它运行良好。我对 vim 文件有问题,因为我根本没有得到任何全能。我试过C-x C-o
并得到omnifunc is not set
错误
我究竟做错了什么?我认为这将从头开始工作。
我刚刚安装了 Neocomplete 并尝试了它用于 C 文件、ruby 和 python 并且它运行良好。我对 vim 文件有问题,因为我根本没有得到任何全能。我试过C-x C-o
并得到omnifunc is not set
错误
我究竟做错了什么?我认为这将从头开始工作。
你没有做错什么。提供不是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
提到那里也值得一试。