我在我的YouCompleteMe
安装了UltiSnips
和neovim
插件。通常,一切都很好。
但我在我的python开发中使用MiniConda
,MiniConda
就像virtualenv
,我有一个名为parser
的虚拟python env,当我用source activate parser
激活这个virtualenv时,出了点问题:
YouCompleteMe unavailable: requires Vim compiled with Python 2.x support
UltiSnips requires py >= 2.7 or py3
Press ENTER or type command to continue
所以问题是neovim
无法正常找到python,我很困惑为什么virtualenv
影响neovim
?
正如@Alex在评论中提到的那样,pip install neovim
解决了这个问题。
如果Neovim在你的$PATH
上发现python,它会假设这是Python 2(同样对于python3被视为Python 3)。如果你从一个使用Python 3的激活的Conda env的shell启动Neovim,你会遇到问题,因为conda env暴露了一个名为python的二进制文件,但它实际上是3而不是2.因此,你将拥有使用设置g:python_host_prog
的Neovim选项指向有效的Python 2,你必须在其中安装pip所需的neovim客户端。
可能的解决方案(我使用anaconda测试了自己):
# neovim init.vim file cmd
# runs python3 for neovim from a specific env
# should resolve the need for neovim in each new python env when using nvim
# add the following to your init.vim file
let g:python3_host_prog = '/path/to/anaconda3/bin/python'
将其添加到.vimrc
或ginit.vim
(neovim GUI配置文件)中。