如何在VIM中指定Python解释器版本?
问题内容:
为了用插件在Vim中编写C ++,Clang_complete。
安装后,会发生此错误:
Error detected while processing function <SNR>14_ClangCompleteInit..<SNR>14_initClangCompletePython:
clang_complete: No python support available.
Cannot use clang library
Compile vim with python support to use libclang
但是我的vim支持python和python3。+python/dyn +python3/dyn
然后我检查我的python解释器:
:echo has('python') # output is 0
:echo has('python3') # output is 1
因此,我认为原因是默认情况下我的vim动态加载python3解释器。
我可以更改python解释器吗?或设置默认的python动态加载版本?
问题答案:
您可能不想(或至少不应该)设置python3
为vim的默认python解释器,因为那样,您的某些(大多数)插件将变得不兼容,例如YouCompleteMe
和clang_complete
本身不兼容,因为它们没有python3
支持。通常情况下,确实支持的插件可python3
让您通过添加到自己的插件中来决定是否要使用它.vimrc
let g:syntastic_python_python_exec = 'python3'
解决方案: 在:echo has('python')
表现0
实际上是告诉你,VIM也许不是编译python2
。因此,首先检查的输出,vim --version
您应该能够看到编译器针对其构建vim的共享库的列表。你看到以下吗?(例如,对于python 2.7):
-L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7
如果没有(或如果您看到这两个-lpython2.x
和-lpython3.x
我建议你编译VIM从源代码,特别是将两者联系起来-lpython2.x
,这并不难打造VIM从源代码。首先使用一定要删除所有当前Vim安装,比如aptitude
你会做:
sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common
克隆病毒
hg clone https://code.google.com/p/vim/
cd vim
然后./configure
使用以下标志运行:
./configure --with-features=huge \
--enable-cscope \
--enable-pythoninterp \
--enable-largefile \
--with-python-config-dir=/usr/lib/python2.7/config
您可能还想链接到ruby
,lua
如果需要,最后运行
make build
make install
这是Shell脚本,它将为您自动完成整个过程。这可能有点过大,但是我认为这是您应该如何处理,以免在将来的程序包中出现兼容性问题。