Gui*_*eba 6 python vim autocomplete omnicomplete
如果我输入vim命令行
:python import os;print os.getenv('PYTHONPATH')
Run Code Online (Sandbox Code Playgroud)
我得到一条路径如果我关闭vim并在同一个终端上做
echo $PYTHONPATH
Run Code Online (Sandbox Code Playgroud)
我得到另一个完全不同的路径为什么这样,vim在哪里获得这条路径?这是相关的,因为自动完成无法找到模块,因此它不起作用.我知道这是因为如果我尝试再次来自vim cli
:python import django
Run Code Online (Sandbox Code Playgroud)
它失败但如果我退出vim并输入
python
>>> import django
Run Code Online (Sandbox Code Playgroud)
没有显示错误!这里发生了什么?我正在使用virtualenv并且我检查了激活源并且没有更改PYTHONPATH.我试过这个没有virtualenv,同样的问题.
更新:用于在编译之前配置Vim源的行
./configure --prefix = $ {HOME}/apps/vim73 --with-features = huge --enable-gui = gnome2 --enable-pythoninterp --enable-rubyinterp --enable-multibyte --with-python-配置-DIR =/usr/lib中/ python2.6的/配置
PYTHONPATH
这是一个转移注意力的事情:这不是 virtualenv 用来配置自身的东西。virtualenv 的工作原理是添加一个前缀,PATH
指向备用可执行文件的位置python
,从而覆盖系统python
。
Vim 的问题是 Python 嵌入不查看 Python 可执行文件或PATH
:它查找并加载libpython
库,而 virtualenv 不会虚拟化该库。这意味着 Vim 将始终初始化系统 Python,无论任何 virtualenv 如何。
然而,一切并没有丢失:Vim 在自己的 Python 初始化之后仍然可以运行 virtualenv 的初始化脚本。Jeremy Cantrell 编写了一个 Vim 插件来帮助自动化此操作,这应该可以解决您的问题:
归档时间: |
|
查看次数: |
3377 次 |
最近记录: |