经过长时间的使用pyenv-virtualenv、vim和jedi设置,我终于让它运行起来了。希望能对你有所帮助。
首先,在~/.vimrc文件中的Vundle块中添加jedi-vim插件:
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
...
Plugin 'davidhalter/jedi-vim'
call vundle#end()
接下来,我在 ~/.vimrc 中添加了以下 Python3 代码,以便单独搜索并添加 pyenv/virtualenv 目录中的包。不幸的是,没有 activate_this.py 脚本可以自动完成此操作。
py3 << EOF
import os.path
import sys
import vim
import jedi
if 'VIRTUAL_ENV' in os.environ:
base = os.environ['VIRTUAL_ENV']
site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')
prev_sys_path = list(sys.path)
import site
site.addsitedir(site_packages)
sys.real_prefix = sys.prefix
sys.prefix = base
new_sys_path = []
for item in list(sys.path):
if item not in prev_sys_path:
new_sys_path.append(item)
sys.path.remove(item)
sys.path[:0] = new_sys_path
EOF
请确保您的本地 Python 环境能够运行 import jedi 和 import vim 命令。您可以在终端中使用以下命令进行安装:
pip3 -install jedi and
pip3 -install vim
最后,我在vimrc文件中设置了以下值:
set omnifunc=jedi
let g:jedi
在启动vim之前,请确保您已使用pyenv activate切换到您的pyenv环境。只有这样,自动完成才能正常工作。