O problema é que simplesmente executar has('python')
em uma instrução if faz com que python3 fique indisponível quando o vim foi compilado com python / dyn e python3 / dyn. A solução mais simples é provavelmente adicionar algo como
if exists('py2') && has('python')
elseif has('python3')
endif
para o seu .vimrc antes que o Vundle carregue alguma coisa. Então, se você precisar usar o python 2, basta iniciar o vim com vim --cmd 'let py2 = 1'
.
Alternativamente, examinei seus plug-ins e consegui encontrar 3 que fazem has('python')
antes de has('python3')
:
-
YouCompleteMe: Eu sei que você comentou isso, mas é como eu me deparei com essa pergunta para que possa levar alguém aqui. Na linha 36 de YouCompleteMe / plugin / youcompleteme.vim, faça python3 ser checado primeiro:
elseif !has( 'python3' ) && !has( 'python' )
. -
python-mode: Se você olhar em python-mode / plugin / pymode.vim, por volta da linha 275 há o "has" if-statement, você notará que pode realmente definir uma variável global
g:_uspy
para forçar uma certa versão a ser usada. Então, coloqueg:_uspy = ':py3'
em seu .vimrc antes do material do Vundle ou edite a declaração if em pymode.vim. -
vim-virtualenv: Mesma transação que YCM, inverta as condições da instrução if na linha 10 do vim-virtualenv / plugin / virtualenv.vim.
É claro que você só precisa consertar o primeiro que está carregado, se você fizer dessa maneira.