vim 针对 python 的万能补全 对于 python 自带的模块库都能够正常使用全能补全,但一些自定义的模块却不行,这是
因为vim当前进程需要找到相应模块并做导入分析获取补全用的词汇,对于部分自定义的模块存放的路径 vim 它不知道要从
这里找,所以补全功能会失效,此是就和 python 的path环境变量相关。 有几种方式可以解决此问题.
1.通过修改 PYTHONPATH 环境变量: PYTHONPATH=$HOME/libs/python ,将模块存放的目录赋给变量PYTHONPATH,多个目录中间用冒号隔开,
如果在终端下使用 vim 可以修改 ~/.bashrc 文件 ,如果是用 gvim 可以修改 ~/.profile 文件,这样就可以默认打开 vim 就会启用设
置好的 PYTHONPATH 变量 .
2.在 vim 启动设定文件里添加修改 PYTHONPATH 的代码: 修文件 ~/.vimrc 添加下面行
let $PYTHONPATH .= ":/home/gnolux/develop/python/google_appengine:/home/gnolux/develop/python/google_appengine/lib/webob"
3.使用 python 本身的特定加载方式:
可以在 .local/lib/python2.6/site-packages 目录下添加以 .pth 为扩展名的文件,文件内客每行是一个模块的目录,python 启动时会自动
查找这个目录下所有.pth 文件,并解析文件内容,将目录添加为模块搜索路径.
第一种方法操作比较麻烦,而且如果想生效还需要重启终端,第二种方式对于项目比较小的通过手工添加也可以接受,推荐使用第三种方法,对于
模块很多的情况下,我们可以用命令的方式,自动将相关目录添加到 pth 文件里,如下:
find ~/.local/lib -type d -print > ~/.local/lib/python2.6/site-packages/python_path.pth
将 .local/lib 目录下所有目录添加到 path.pth 文件,因为我都把自已的模块或第三方模块放在 lib 目录下,详细可以查一下 find 命令帮助