Supporto per Vim 8.0 Python


23

Sto cercando di aggiornare la mia installazione di Vim alla versione 8.0, ma non supporta sia Python che Python 3 come l'immagine qui sotto.

(PS: a causa di questo problema, non posso usare il plug-in YCM (YouCompleteMe) ora.)

  1. Ho installato Vim 8.0 come nei seguenti comandi.

  2. Sto usando Ubuntu 16.04 (Xenial Xerus).

Come posso gestire questo problema?

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

Inserisci qui la descrizione dell'immagine


1
Sembra che quella versione di Vim sia stata compilata senza il supporto di Python. Non puoi fare molto al riguardo. Se vuoi eseguire l'ultima versione di Vim su Ubuntu, compilarla da solo è probabilmente l'opzione più semplice.
Martin Tournoij,

2
Nessun pitone, nessun rubino, nessun perl, nessun blocco per appunti ... quella build è quasi inutile. Cosa ottieni se installi vim-gtkinvece di vim?
romainl

1
@Carpetsmoker Come posso compilarlo da solo? Puoi spiegarmi un po 'specifico o darmi un link?
Hyun Ho Yeo,

@romainl Esiste vim-gtk che supporta vim 8.0?
Hyun Ho Yeo,

Sì, in quel ppa.
Romainl,

Risposte:


14

Il PPA pi-rho / dev ora supporta Vim 8 e, come sempre, include il supporto per 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

Di recente, il pi-rho/devPPA non ha aggiornato build Vim. Ora uso il jonathonf/backportsPPA:

$ 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

Il PPA contiene anche versioni più recenti di numerosi altri pacchetti.


♦ Grazie, ho usato vim-nox in alternativa. Dovrei provare questo.
Hyun Ho Yeo,

come installare vim8? ho aggiunto il PPA ma l'esecuzione sudo apt-get install vimmi fa venire Vim7 senza Pythin
weima il

@weima l'hai fatto apt-get updatedopo aver aggiunto il PPA?
Andrei Bârsan,

1
jonathonf / backports non ha più build vim
Penghe Geng

2
@PengheGeng l'hanno spostato in un PPA separato ( jonathonf/vim)
muru,

8

Dalla tua domanda sembra che tu abbia installato vim-tiny 8.0 che è un runtime Vim molto minimale senza plugin. Puoi confermare usando questo:

dpkg -l | grep vim

Puoi avere diversi runtime di Vim, ma la versione in esecuzione quando lo fai vimsarà la versione che puoi vedere indicata qui:

update-alternatives --list vim

Puoi controllare altre versioni. Il mio suggerimento è di decidere tra le versioni complete con supporto per la GUI e di poter scegliere tra vim-gtk2/vim-gtk3pacchetti o vim-noxche è una versione completa, ma senza una GUI.

Ora, IIRC, la versione completa di Vim in Debian / Ubuntu non viene fornita con Python 2 E Python 3 contemporaneamente nelle versioni 7.x. Non so come sia il caso con Vim 8, perché lo uso neovimora. Se questo è il tuo caso e hai bisogno di ENTRAMBI i motori Python supportati da Vim 8 (questo non sarà il tuo caso d'uso YouCompleteMe; questo funziona solo con il supporto Python 2), dovrai compilare da fonti il ​​tuo Vim 8.0.


Suoli Grazie, ho installato vim-nox, tuttavia un giorno proverei a compilare da fonti.
Hyun Ho Yeo,

6

dovresti usare

sudo apt-get install vim-nox

invece, per ottenere una "versione enorme".


Voglio usare vim 8.0 o successivo. Esiste vim.nox che lo supporta?
Hyun Ho Yeo,

@HyunHoYeo sembra che vim-nox in Ubuntu 16.04 sia vim 8.0 (puoi controllare dopo l'installazione facendo vim --versione ho ottenutoVIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 05 2017 20:17:49)
jamescampbell

@jamescampbell Grazie, ho aggiornato Ubuntu alla versione 16.04 e l'ho scaricato.
Hyun Ho Yeo,

5

Dovresti installare vim dal sorgente. In questo modo, hai il controllo su ciò che è incluso. Vedere di seguito per ulteriori informazioni e una procedura dettagliata. È relativamente facile.

https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
https://github.com/vim/vim

Si prega di evitare di pubblicare una risposta solo link in quanto potrebbe cambiare in futuro, lasciando le persone senza risposta alla loro domanda. Almeno includere le parti essenziali dalla pagina collegata.
EvergreenTree

5

Soluzione 1:

  • Installa VIM Editor (installa uno di essi con la variante vim):

    • vim-gtk3 : - Questo pacchetto contiene una versione di vim compilata con una GUI GTK3 e supporto per gli script con Lua, Perl, Python, Ruby e Tcl. Per installare questo pacchetto:

      sudo apt install vim-gtk3   
    • vim-gtk : - Questo pacchetto contiene una versione di vim compilata con una GUI GTK2 e supporto per lo scripting con Lua, Perl, Python, Ruby e Tcl. Per installare questo pacchetto:

      sudo apt install vim-gtk   
    • vim-nox : - editor vi migliorato Come vim-tiny, vim-nox è un'installazione vim minima e supporto per gli script con Lua, Perl, Python, Ruby e Tcl ma senza interfaccia grafica. Viene fornito con supporto per mouse, ma senza supporto per appunti, IIRC. Per installare questo pacchetto:

      sudo apt install vim-nox
  • Imposta Vim come editor predefinito (supponendo che la variante installata sia 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    

Soluzione 2:

Altrimenti, puoi compilare Vim dal codice sorgente (supponendo che stai usando un sistema basato su Debian)

Prepara il tuo sistema

  • Installare

    sudo apt install libncurses5-dev \
    libgtk2.0-dev libatk1.0-dev \
    libcairo2-dev python-dev \
    python3-dev git
  • Rimuovi Vim se ne hai già

    sudo apt remove vim vim-runtime gvim  

configura e crea

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 

Preparare il pacchetto deb usando checkinstall

  • E installa quel pacchetto

    cd /usr/vim && sudo checkinstall
  • Oppure, se si desidera semplicemente creare --install=noun'opzione di utilizzo del pacchetto con checkinstall

Imposta Vim come editor predefinito

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   

Verifica che stai eseguendo il nuovo binario Vim guardando

vim --version | grep python

Riferimenti:
- Creazione di Vim dalla sorgente
- checkinstall
- Varianti VIM


+1 persudo apt install vim-nox
Philippe Gachoud,

1

Appena verificato, il vim-nox (v. 8.1) disponibile dal PPA era stato compilato con Python 3 (solo, non entrambi, se davvero avessi bisogno di entrambi ti consiglierei di passare a Neovim).


0

Questo è solo per i ragazzi di Windows che hanno avuto il problema simile:

Su Windows a 64 bit, DEVI installare la stessa versione di pitone bit del tuo VIM. eccetera.

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

Altrimenti python2x.dll o python3x.dll NON verranno caricati.


OP utilizzava un binario vim compilato senza Python. Inoltre, lo sta usando su Linux, non su Windows.
Herb Wolfe,

@HerbWolfe sì, lo so. Potrebbe non essere corretto, ma l'ho messo qui solo per alcuni ragazzi di Windows che hanno colpito questo post per soluzione. Ho impiegato ore a risolvere questo problema e volevo dedicare un po 'di tempo ad altri. Ma grazie per avermelo ricordato.
Danniel Little,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.