¿Cuál es la forma más fácil de obtener Vim con soporte para Python 3?

19

Tengo Ubuntu 14.04 instalado y Vim en sus repositorios está compilado sin el soporte de Python 3. Debido a eso, el complemento de modo python no puede funcionar con el código Python 3. ¿Cuál es la forma más fácil de obtener Vim con soporte para Python 3?

Cangrejo
fuente

Respuestas:

16

Parece que en los sistemas basados ​​en Debian (al menos) no puedes tener tu pastel y comerlo también. Es Python 2 o Python 3. Debido a cómo se construyen las bibliotecas de Python , solo puede usar una variante dentro de una sesión de Vim. Usted puede construir con ambos, pero si Python 2 se le llama en Vim, a continuación, Python 3 no puede ser llamado en la misma sesión, y viceversa. También en Arch Linux, Vim solo se compila con Python 2 ( vim, gvim) o Python 3 ( vim-python3, gvim-python3).


Antes del 16.04

Para reconstruir el Vim que proporcionan los repositorios:

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

Editar debian/rulesy reemplazar:

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

Con:

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

Entonces corre:

dpkg-buildpackage -us -uc

Almorzar. (O té si lo usaste -j $(nproc)).

Ahora, .debse habrán creado varios archivos en el directorio principal. Para ver cuál:

cd ..
ls vim*.deb

Junto con la variante particular que desea instalar ( vim, vim-gnome, vim-gtk, etc.), usted tiene que instalar vim-common_*.deb, vim-runtime_*.deby para las versiones GUI, vim-gui-common_*.deb. Por ejemplo, con vim-gnomey la versión actual de vimen los repositorios:

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

Luego:

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

El PPA pi-rho / dev construye Vim de esta manera, por lo que puede usar el PPA en lugar de construirlo manualmente.


16.04

A partir del 16.04, Ubuntu construye Vim con soporte para Python 3. 2 apoyo Python es proporcionada por los -py2paquetes ( vim-nox-py2, vim-gnome-py2, etc.).


Relacionado:

muru
fuente
Vim compilado de esta manera me da un error al intentar cargar funciones de pymode: Este Vim no puede ejecutar: py3 después de usar: python. Cuando estaba usando Gentoo en lugar de Ubuntu, vim usaba Python 3 y este problema no existía.
CrabMan
@CrabMan Lee el primer párrafo.
muru
@CrabMan Lo que puedes probar es construir solo con Python3 (esencialmente intercambiando python3 y python en las líneas que ya existían). Entonces, cualquier cosa que haya intentado cargar python2 fallará.
muru
YouCompleteMe no está disponible: requiere Vim compilado con soporte para Python 2.x. Creo que es una de las extensiones vim más importantes que uso, por lo que no es una opción.
CrabMan
Además, por lo que entiendo, puedo incluir la línea "py3 3" en mi .vimrc y tendrá el mismo efecto que compilar vim con solo el soporte de python3.
CrabMan