How to specify Python interpreter version in VIM?
You probably don't want to (or at least should not) set python3
as the default python interpreter for vim, as then some (most of) your plugins will become incompatible, such as YouCompleteMe
and clang_complete
itself, because they do not have python3
support. Normally plugins that do support python3
let you decide if you want to use it by adding to your .vimrc
let g:syntastic_python_python_exec = 'python3'
Solution: the :echo has('python')
showing 0
is actually telling you that vim is perhaps not compiled with python2
. So first check the output of vim --version
and you should be able to see a list of shared libraries that your compiler has built vim against. Do you see the following? (e.g. for python 2.7):
-L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7
If not (or if you see both -lpython2.x
and -lpython3.x
I suggest you compile vim from source, linking it specifically to -lpython2.x
. It is not that difficult to build vim from source. First make sure to remove all your current vim installation, for instance using aptitude
you'd do:
sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common
clone vim mercurial
hg clone https://code.google.com/p/vim/
cd vim
and then run ./configure
with the following flags:
./configure --with-features=huge \
--enable-cscope \
--enable-pythoninterp \
--enable-largefile \
--with-python-config-dir=/usr/lib/python2.7/config
you might also want to link against ruby
and lua
if you want, and then finally run
make build
make install
Here is shell script that will automate the whole process for you. This might be a bit of an overkill, but I think this is how you should handle this to not run with compatibility issues with your future packages.