我刚刚安装了Neocomplete,并尝试使用C文件,ruby和python,它完美无缺。
我有vim文件的问题,因为我根本没有完成任何omnicompletion。我尝试了C-x C-o
并得到omnifunc is not set
错误
我做错了什么?我认为这可以从头开始。
答案 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
也值得一试。