Respostas:
Parece que em sistemas baseados no Debian (pelo menos) você não pode comer seu bolo e comê-lo também. É Python 2 ou Python 3. Devido à forma como as bibliotecas Python são construídas , você pode usar apenas uma variante dentro de uma sessão do Vim. Você pode construir com ambos, mas se o Python 2 for chamado no Vim, o Python 3 não poderá ser chamado na mesma sessão e vice-versa. No Arch Linux também, o Vim é compilado apenas com um dos Python 2 ( vim
, gvim
) ou Python 3 ( vim-python3
, gvim-python3
).
Para reconstruir o Vim que os repositórios fornecem:
sudo apt-get build-dep vim
apt-get source vim
cd vim-* # it will be vim-7.4.something
Edite debian/rules
e substitua:
ALLINTERPFLAGS+=--enable-pythoninterp --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--disable-python3interp
Com:
ALLINTERPFLAGS+=--enable-pythoninterp=dynamic --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--enable-python3interp=dynamic --with-python3-config-dir=$(shell python3-config --configdir)
Então corra:
dpkg-buildpackage -us -uc
Almoçar. (Ou chá, se você usou -j $(nproc)
.)
Agora, vários .deb
arquivos serão criados no diretório pai. Para ver quais:
cd ..
ls vim*.deb
Junto com a variante particular que deseja instalar ( vim
, vim-gnome
, vim-gtk
, etc.), você terá de instalar vim-common_*.deb
, vim-runtime_*.deb
e para as versões GUI, vim-gui-common_*.deb
. Por exemplo, with vim-gnome
e a versão atual de vim
nos repositórios:
sudo dpkg -i vim-gnome_7.4.052-1ubuntu3_amd64.deb vim-common_7.4.052-1ubuntu3_amd64.deb vim-gui-common_7.4.052-1ubuntu3_all.deb vim-runtime_7.4.052-1ubuntu3_all.deb
Então:
$ vim --version | grep python
+cryptv +linebreak +python/dyn +viminfo
+cscope +lispindent +python3/dyn +vreplace
O PPA pi-rho / dev constrói o Vim dessa maneira, para que você possa usá-lo em vez de construí-lo manualmente.
A partir do 16.04, o Ubuntu cria o Vim com suporte ao Python 3. Apoio Python 2 é fornecido por os -py2
pacotes ( vim-nox-py2
, vim-gnome-py2
, etc.).
Palavras-chave: