Quelle est la manière la plus simple d'obtenir Vim avec le support Python 3?

19

J'ai Ubuntu 14.04 installé et Vim dans son référentiel est compilé sans le support de Python 3. Pour cette raison, le plugin en mode python ne peut pas fonctionner avec le code Python 3. Quelle est la manière la plus simple d'obtenir Vim avec le support Python 3?

CrabMan
la source

Réponses:

16

Il semble que sur les systèmes basés sur Debian (au moins), vous ne pouvez pas avoir votre gâteau et le manger aussi. Il s'agit de Python 2 ou Python 3. En raison de la façon dont les bibliothèques Python sont construites , vous ne pouvez utiliser qu'une seule variante dans une session Vim. Vous pouvez construire avec les deux, mais si Python 2 est appelé dans Vim, alors Python 3 ne peut pas être appelé dans la même session, et vice versa. Sur Arch Linux également, Vim n'est compilé qu'avec l'un de Python 2 ( vim, gvim) ou Python 3 ( vim-python3, gvim-python3).


Avant le 16.04

Pour reconstruire le Vim fourni par les référentiels:

sudo apt-get build-dep vim
apt-get source vim
cd vim-*  # it will be vim-7.4.something

Modifiez debian/ruleset remplacez:

ALLINTERPFLAGS+=--enable-pythoninterp --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--disable-python3interp

Avec:

ALLINTERPFLAGS+=--enable-pythoninterp=dynamic --with-python-config-dir=$(shell python-config --configdir)
ALLINTERPFLAGS+=--enable-python3interp=dynamic --with-python3-config-dir=$(shell python3-config --configdir)

Exécutez ensuite:

dpkg-buildpackage -us -uc

Déjeuner. (Ou du thé si vous en avez utilisé -j $(nproc).)

Maintenant, plusieurs .debfichiers auront été créés dans le répertoire parent. Pour voir lequel:

cd ..
ls vim*.deb

Avec la variante particulière que vous souhaitez installer ( vim, vim-gnome, vim-gtk, etc.), vous devrez installer vim-common_*.deb, vim-runtime_*.debet pour les versions de l' interface graphique, vim-gui-common_*.deb. Par exemple, avec vim-gnomeet la version actuelle de vimdans les référentiels:

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

Alors:

$ vim --version | grep python
+cryptv          +linebreak       +python/dyn      +viminfo
+cscope          +lispindent      +python3/dyn     +vreplace

Le PPA pi-rho / dev construit Vim de cette façon, vous pouvez donc utiliser le PPA au lieu de le construire manuellement.


16.04

À partir du 16.04, Ubuntu construit Vim avec le support Python 3. Le support de Python 2 est fourni par les -py2paquets ( vim-nox-py2, vim-gnome-py2, etc.).


En relation:

muru
la source
Vim compilé de cette façon me donne une erreur lors de la tentative de chargement des fonctions pymode: Ce Vim ne peut pas exécuter: py3 après avoir utilisé: python. Lorsque j'utilisais Gentoo au lieu d'Ubuntu, vim utilisait python 3 et ce problème n'existait pas.
CrabMan
@CrabMan Lisez le premier paragraphe.
muru
@CrabMan Ce que vous pouvez essayer est de construire uniquement avec Python3 (en échangeant essentiellement python3 et python dans les lignes qui existaient déjà). Ensuite, tout ce qui a tenté de charger python2 échouera.
muru
YouCompleteMe non disponible: nécessite Vim compilé avec le support Python 2.x. Je pense que c'est l'une des extensions vim les plus importantes que j'utilise, donc ce n'est pas une option.
CrabMan
Aussi loin que je comprends, je peux simplement inclure la ligne "py3 3" dans mon .vimrc et cela aura le même effet que la compilation de vim avec juste le support de python3.
CrabMan