Soporte de Python de Vim 8.0

23

Estoy tratando de actualizar mi instalación de Vim a la versión 8.0, pero no es compatible con Python y Python 3 como se muestra en la imagen a continuación.

(PD: Debido a este problema, no puedo usar el complemento YCM (YouCompleteMe) ahora).

  1. Instalé Vim 8.0 como en los siguientes comandos.

  2. Estoy usando Ubuntu 16.04 (Xenial Xerus).

¿Cómo puedo manejar este problema?

sudo add-apt-repository ppa:jonathonf/vim
sudo apt update
sudo apt install vim

Ingrese la descripción de la imagen aquí

Hyun Ho Yeo
fuente
1
Parece que esa versión de Vim fue compilada sin el soporte de Python. No hay mucho que puedas hacer al respecto. Si desea ejecutar la última versión de Vim en Ubuntu, compilarlo usted mismo es probablemente la opción más fácil.
Martin Tournoij
2
Sin python, sin ruby, sin perl, sin portapapeles ... esa construcción es muy inútil. ¿Qué obtienes si instalas en vim-gtklugar de vim?
romainl
1
@Carpetsmoker ¿Cómo puedo compilarlo yo mismo? ¿Puedes explicarme un poco específico o darme un enlace?
Hyun Ho Yeo
@romainl ¿Hay vim-gtk que admite vim 8.0?
Hyun Ho Yeo
Sí, en ese ppa.
romainl

Respuestas:

14

El PPA pi-rho / dev ahora es compatible con Vim 8 y, como siempre lo ha sido, incluye soporte para Python / Python3:

$ vim --version | grep python
+cryptv          +linebreak       +python/dyn      +vreplace
+cscope          +lispindent      +python3/dyn     +wildignore
$ apt-cache policy vim   
vim:
  Installed: 2:8.0.0134-1ubuntu1~ppa1~x
  Candidate: 2:8.0.0134-1ubuntu1~ppa1~x
  Version table:
 *** 2:8.0.0134-1ubuntu1~ppa1~x 500
        500 http://ppa.launchpad.net/pi-rho/dev/ubuntu xenial/main amd64 Packages
        100 /var/lib/dpkg/status
     2:7.4.1689-3ubuntu1.2 500

Últimamente, el pi-rho/devPPA no ha actualizado las compilaciones de Vim. Yo uso el jonathonf/backportsPPA ahora:

$ vim --version | grep python
+comments          +libcall           -python            +vreplace
+conceal           +linebreak         +python3           +wildignore
$ apt-cache policy vim-gnome
vim-gnome:
  Installed: 2:8.0.1542-0york1~16.04
  Candidate: 2:8.0.1542-0york1~16.04
  Version table:
 *** 2:8.0.1542-0york1~16.04 500
        500 http://ppa.launchpad.net/jonathonf/vim/ubuntu xenial/main amd64 Packages
        500 http://ppa.launchpad.net/jonathonf/vim/ubuntu xenial/main i386 Packages
        100 /var/lib/dpkg/status
     2:7.4.1689-3ubuntu1.2 500
        500 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
     2:7.4.1689-3ubuntu1 500
        500 http://jp.archive.ubuntu.com/ubuntu xenial/main amd64 Packages

El PPA también contiene versiones más recientes de varios otros paquetes.

muru
fuente
♦ Gracias, usé vim-nox alternativamente. Debería probar este.
Hyun Ho Yeo
¿Cómo instalar vim8? agregué el PPA pero la ejecución sudo apt-get install vimme da vim7 sin pythin
weima
@weima, ¿hiciste un apt-get updatedespués de agregar el PPA?
Andrei Bârsan
1
jonathonf / backports ya no tiene vim builds
Penghe Geng
2
@PengheGeng lo trasladaron a un PPA separado ( jonathonf/vim)
muru
8

Según su pregunta, parece que ha instalado vim-tiny 8.0, que es un tiempo de ejecución de Vim muy mínimo sin complementos. Puede confirmar esto usando esto:

dpkg -l | grep vim

Puede tener varios tiempos de ejecución de Vim, pero la versión que se ejecute cuando lo haga vimserá la versión que puede ver indicada aquí:

update-alternatives --list vim

Puedes consultar otras versiones. Mi sugerencia es que usted decida entre versiones completas con soporte para GUI, y puede elegir entre vim-gtk2/vim-gtk3paquetes o vim-noxque sea una versión completa, pero sin una GUI.

Ahora, IIRC, la versión completa de Vim en Debian / Ubuntu no viene con Python 2 Y Python 3 al mismo tiempo en las versiones 7.x. No sé cómo es el caso con Vim 8, porque lo uso neovimahora. Si este es el caso para usted y va a necesitar AMBOS motores Python compatibles con Vim 8 (este no será su caso de uso YouCompleteMe; este solo funciona con soporte de Python 2), entonces deberá compilar desde las fuentes su propio Vim 8.0.

Yonsy Solis
fuente
Gracias, instalé vim-nox, sin embargo, algún día trataría de compilar a partir de fuentes.
Hyun Ho Yeo
6

Deberías usar

sudo apt-get install vim-nox

en cambio, para obtener una "gran versión".

skywind3000
fuente
Quiero usar vim 8.0 o posterior. ¿Hay vim.nox que apoya eso?
Hyun Ho Yeo
@HyunHoYeo parece que vim-nox en Ubuntu 16.04 es vim 8.0 (puede verificar después de la instalación haciendo vim --versiony obtuve)VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 05 2017 20:17:49)
jamescampbell
@jamescampbell Gracias, actualicé mi Ubuntu a la versión 16.04 y lo descargué.
Hyun Ho Yeo
5

Debe instalar vim desde la fuente. De esa manera, tienes control sobre lo que está incluido. Consulte lo siguiente para obtener más información y un tutorial paso a paso. Es relativamente facil.

https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
https://github.com/vim/vim
Xero Smith
fuente
Evite publicar una respuesta de solo enlace, ya que podría cambiar en el futuro, dejando a las personas sin respuesta a su pregunta. Al menos incluya las partes esenciales de la página vinculada.
EvergreenTree
5

Solución 1:

  • Instale VIM Editor (instale cualquiera de ellos de la variante vim):

    • vim-gtk3 : - Este paquete contiene una versión de vim compilada con una GUI GTK3 y soporte para secuencias de comandos con Lua, Perl, Python, Ruby y Tcl. Para instalar este paquete:

      sudo apt install vim-gtk3   
    • vim-gtk : - Este paquete contiene una versión de vim compilada con una GUI GTK2 y soporte para secuencias de comandos con Lua, Perl, Python, Ruby y Tcl. Para instalar este paquete:

      sudo apt install vim-gtk   
    • vim-nox : - editor vi mejorado Al igual que vim-tiny, vim-nox es una instalación mínima de vim y soporte para secuencias de comandos con Lua, Perl, Python, Ruby y Tcl pero sin GUI. Viene con soporte para mouse, pero sin soporte para portapapeles, IIRC. Para instalar este paquete:

      sudo apt install vim-nox
  • Establezca Vim como editor predeterminado (suponiendo que la variante instalada sea vim-gtk3 )

    sudo update-alternatives --install /usr/bin/editor editor /usr/bin/vim.gtk3 1   
    sudo update-alternatives --set editor /usr/bin/vim.gtk3   
    sudo update-alternatives --install /usr/bin/vi vi /usr/bin/vim.gtk3 1  
    sudo update-alternatives --set vi /usr/bin/vim.gtk3   
    sudo update-alternatives --install /usr/bin/vi vim /usr/bin/vim.gtk3 1  
    sudo update-alternatives --set vim /usr/bin/vim.gtk3    

Solución 2:

De lo contrario, puede compilar Vim desde el código fuente (suponiendo que esté utilizando un sistema basado en Debian)

Prepara tu sistema

  • Instalar

    sudo apt install libncurses5-dev \
    libgtk2.0-dev libatk1.0-dev \
    libcairo2-dev python-dev \
    python3-dev git
  • Elimina Vim si ya tienes

    sudo apt remove vim vim-runtime gvim  

configurar y hacer

cd /usr && sudo git clone https://github.com/vim/vim.git && cd vim  

sudo ./configure --with-features=huge \
--enable-multibyte \
--enable-pythoninterp=yes \
--with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu/ \  # pay attention here check directory correct
--enable-python3interp=yes \
--with-python3-config-dir=/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/ \  # pay attention here check directory correct
--enable-gui=gtk2 \
--enable-cscope \ 
--prefix=/usr/local/

sudo make VIMRUNTIMEDIR=/usr/local/share/vim/vim81 

Preparando el paquete deb usando checkinstall

  • E instalar ese paquete

    cd /usr/vim && sudo checkinstall
  • O, si solo desea crear una --install=noopción de uso de paquete con checkinstall

Establecer Vim como editor predeterminado

sudo update-alternatives --install /usr/bin/editor editor /usr/local/bin/vim 1
sudo update-alternatives --set editor /usr/local/bin/vim
sudo update-alternatives --install /usr/bin/vi vi /usr/local/bin/vim 1
sudo update-alternatives --set vi /usr/local/bin/vim   

Verifique que está ejecutando el nuevo binario de Vim mirando

vim --version | grep python

Referencias:
- Construyendo Vim desde la Fuente
- checkinstall
- Variantes VIM

finlandés
fuente
+1 parasudo apt install vim-nox
Philippe Gachoud
1

Recién comprobado, el vim-nox (v. 8.1) disponible del PPA había sido compilado con Python 3 (solo, no ambos, si realmente necesita ambos, le aconsejaría cambiar a Neovim).

Alex Fedotov
fuente
0

Esto es solo para los usuarios de Windows que obtuvieron la emisión similar:

En Windows de 64 bits, DEBE instalar la misma versión de Python que su VIM. etc.

32bit vim => 32bit python
64bit vim => 64bit python

De lo contrario, python2x.dll o python3x.dll NO se cargarán.

Danniel Little
fuente
OP estaba usando un binario vim que fue compilado sin Python. Además, lo está usando en Linux, no en Windows.
Herb Wolfe
@HerbWolfe sí, lo sé. Puede que no sea apropiado, pero lo puse aquí solo para algunos tipos de Windows que accedieron a esta publicación para encontrar una solución. Pasé horas para resolver este problema y quiero compartir el mismo tiempo con otros. Pero gracias por el recordatorio.
Danniel Little