我已经搜索了一个小时,在Stack Overflow和其他地方。唉!请帮忙。 Vim的omnicompletion只是不工作。
>我有Vim 7.2编译与Python支持。
> filetype plugin on在我的.vimrc。
>当.py文件打开时::echo& omnifunc prints pythoncomplete#Complete。
>我正在使用一个大项目,我有一个标签文件生成与exhuberant-ctags。它在Vim的ctags路径。我可以通过在符号上键入^]来测试它,然后我被带到符号的定义。
>更新1:我的项目的所有代码都在python-in-Vim的路径。我可以:python import myproject successfully。
现在,任何地方我尝试C-x C-o,我得到的是:
-- Omni completion (^O^N^P) Pattern not found
我究竟做错了什么?
更新2:当我在模块级别键入C-x C-o C-n时,Vim显示一个完成弹出窗口,其中包含我项目中其他模块的一些模块级常量。但它只是常量(符号大写字母),完成仍然不工作在其他地方。
更新3:我发现C-x C-o在文件的顶部开始某种形式的完成,并完成pprint。打开pprint模块中所有内容的菜单和快速参考。但是,我自己的模块的导入都没有完成。
更新4,一年后:我放弃和学习Emacs。我一直到黑暗的一面,神秘的土地的阴谋和香料,我对你说,我找到了路。
更新5,两年后:我回到Vim。 Emacs是美丽的,但即使经过1。5年的Emacs,我仍然更快在Vim完成工作。我现在已经停止编写Python,但不能测试这些建议是否有效。
什么模块包含您要完成的符号?是在python stdlib吗?还是它是第三方模块?
确保模块/软件包在PYTHONPATH中。
在Vim,do:
:python import sys :python print sys.path
要添加模块的目录:
:python sys.path.append("/path/to/directory/")