Vim 8.0 Python-Unterstützung

23

Ich versuche, meine Vim-Installation auf Version 8.0 zu aktualisieren, aber es werden weder Python noch Python 3 wie im folgenden Bild unterstützt.

(PS: Aufgrund dieses Problems kann ich das YCM-Plugin (YouCompleteMe) jetzt nicht verwenden.)

  1. Ich habe Vim 8.0 wie in den folgenden Befehlen installiert.

  2. Ich benutze Ubuntu 16.04 (Xenial Xerus).

Wie kann ich mit diesem Problem umgehen?

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

Geben Sie hier eine Bildbeschreibung ein

Hyun Ho Yeo
quelle
1
Es sieht so aus, als ob diese Version von Vim ohne Python-Unterstützung kompiliert wurde. Daran kann man nicht viel ändern. Wenn Sie die neueste Vim-Version unter Ubuntu ausführen möchten, ist es wahrscheinlich die einfachste Option, sie selbst zu kompilieren.
Martin Tournoij
2
Keine Python, kein Rubin, kein Perl, keine Zwischenablage ... dieser Build ist nahezu unbrauchbar. Was bekommen Sie , wenn Sie installieren vim-gtkstatt vim?
Romainl
1
@Carpetsmoker Wie kann ich es selbst kompilieren? Kannst du mir ein bisschen genauer erklären oder mir einen Link geben?
Hyun Ho Yeo
@romainl Gibt es vim-gtk, das vim 8.0 unterstützt?
Hyun Ho Yeo
Ja, in diesem ppa.
Romainl

Antworten:

14

Das pi-rho / dev-PPA unterstützt jetzt Vim 8 und bietet, wie immer, Unterstützung für 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

In pi-rho/devletzter Zeit hat die PPA Vim-Builds nicht aktualisiert. Ich benutze jonathonf/backportsjetzt die PPA:

$ 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

Die PPA enthält auch neuere Versionen mehrerer anderer Pakete.

muru
quelle
♦ Danke, ich habe alternativ vim-nox verwendet. Ich sollte es versuchen.
Hyun Ho Yeo
Wie installiere ich vim8? Ich habe die PPA hinzugefügt, aber die Ausführung sudo apt-get install vimbringt mich vim7 ohne Pythin
weima
@weima hast du apt-get updatenach dem Hinzufügen der PPA eine gemacht?
Andrei Bârsan
1
Jonathonf / Backports hat nicht mehr Vim Builds
Penghe Geng
2
@PengheGeng sie verschoben es auf eine separate PPA ( jonathonf/vim)
muru
8

Aus Ihrer Frage geht hervor, dass Sie vim-tiny 8.0 installiert haben, eine sehr minimale Vim-Laufzeit ohne Plugins. Sie können dies folgendermaßen bestätigen:

dpkg -l | grep vim

Sie können mehrere Vim-Laufzeiten haben, aber die Version, die ausgeführt vimwird, ist die Version, die Sie hier sehen können:

update-alternatives --list vim

Sie können andere Versionen überprüfen. Mein Vorschlag ist, dass Sie sich zwischen Vollversionen mit GUI-Unterstützung entscheiden und zwischen vim-gtk2/vim-gtk3Paketen oder vim-noxeiner Vollversion ohne GUI wählen können .

Nun, IIRC, die Vim-Vollversion in Debian / Ubuntu wird in 7.x-Versionen nicht gleichzeitig mit Python 2 UND Python 3 geliefert. Ich weiß nicht, wie der Fall mit Vim 8 ist, weil ich es neovimjetzt benutze . Wenn dies der Fall ist und Sie BEIDE Python-Engines benötigen, die von Vim 8 unterstützt werden (dies ist nicht Ihr Fall YouCompleteMe; dies funktioniert nur mit Python 2-Unterstützung), müssen Sie Ihr eigenes Vim aus Quellen kompilieren 8.0.

Yonsy Solis
quelle
Soils Danke, ich habe vim-nox installiert, aber ich würde versuchen, eines Tages aus Quellen zu kompilieren.
Hyun Ho Yeo
6

du solltest benutzen

sudo apt-get install vim-nox

stattdessen, um eine "Riesenversion" zu bekommen.

skywind3000
quelle
Ich möchte vim 8.0 oder höher verwenden. Gibt es vim.nox, das das unterstützt?
Hyun Ho Yeo
@HyunHoYeo sieht aus wie vim-nox in Ubuntu 16.04 ist vim 8.0 (Sie können nach , indem Sie überprüfen , installieren vim --versionund ich habeVIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 05 2017 20:17:49)
jamescampbell
@jamescampbell Danke, ich habe mein Ubuntu auf 16.04 aktualisiert und es heruntergeladen.
Hyun Ho Yeo
5

Sie sollten vim von der Quelle installieren. Auf diese Weise haben Sie die Kontrolle darüber, was enthalten ist. Weitere Informationen und eine schrittweise Anleitung finden Sie im Folgenden. Es ist relativ einfach.

https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
https://github.com/vim/vim
Xero Smith
quelle
Bitte vermeiden Sie das Posten einer Nur-Link-Antwort, da sich diese in Zukunft ändern könnte und die Menschen keine Antwort auf ihre Frage mehr haben. Fügen Sie mindestens die wesentlichen Teile der verlinkten Seite hinzu.
EvergreenTree
5

Lösung 1:

  • Installieren Sie den VIM-Editor (Installieren Sie eine der folgenden VIM-Varianten):

    • vim-gtk3 : - Dieses Paket enthält eine Version von vim, die mit einer GTK3-GUI kompiliert wurde und Skripterstellung mit Lua, Perl, Python, Ruby und Tcl unterstützt. Um dieses Paket zu installieren:

      sudo apt install vim-gtk3   
    • vim-gtk : - Dieses Paket enthält eine Version von vim, die mit einer GTK2-GUI kompiliert wurde und die Skripterstellung mit Lua, Perl, Python, Ruby und Tcl unterstützt. Um dieses Paket zu installieren:

      sudo apt install vim-gtk   
    • vim-nox : - Erweiterter vi-Editor Wie vim-tiny ist vim-nox eine minimale vim-Installation und unterstützt Skripte mit Lua, Perl, Python, Ruby und Tcl, jedoch ohne GUI. Es kommt mit Mausunterstützung, aber keine Zwischenablage-Unterstützung, IIRC. Um dieses Paket zu installieren:

      sudo apt install vim-nox
  • Vim als Standardeditor festlegen (vorausgesetzt, die installierte Variante ist 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    

Lösung 2:

Andernfalls können Sie Vim aus dem Quellcode kompilieren (vorausgesetzt, Sie verwenden ein Debian-basiertes System).

Bereiten Sie Ihr System vor

  • Installieren

    sudo apt install libncurses5-dev \
    libgtk2.0-dev libatk1.0-dev \
    libcairo2-dev python-dev \
    python3-dev git
  • Entfernen Sie Vim, wenn Sie bereits haben

    sudo apt remove vim vim-runtime gvim  

konfigurieren und machen

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 

Deb-Paket mit checkinstall vorbereiten

  • Und installieren Sie das Paket

    cd /usr/vim && sudo checkinstall
  • Oder wenn Sie nur ein Paket erstellen möchten, verwenden Sie die --install=noOption mit checkinstall

Legen Sie Vim als Standardeditor fest

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   

Stellen Sie sicher, dass Sie die neue Vim-Binärdatei ausführen, indem Sie nachsehen

vim --version | grep python

Referenzen:
- Erstellen von Vim aus dem Quellcode
- checkinstall
- VIM-Varianten

Finn
quelle
+1 fürsudo apt install vim-nox
Philippe Gachoud
1

Das soeben überprüfte vim-nox (v. 8.1) aus dem PPA wurde mit Python 3 kompiliert (nur, nicht beides, wenn Sie wirklich beides benötigen, würde ich empfehlen, auf Neovim zu wechseln).

Alex Fedotov
quelle
0

Dies gilt nur für Windows-Benutzer, die ein ähnliches Problem haben:

Unter Windows 64-Bit MÜSSEN Sie dieselbe Bit-Python-Version wie Ihr VIM installieren. etc.

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

Andernfalls wird python2x.dll oder python3x.dll NICHT geladen.

Danniel Little
quelle
OP verwendete eine VIM-Binärdatei, die ohne Python kompiliert wurde. Außerdem verwendet er es unter Linux, nicht unter Windows.
Herb Wolfe
@HerbWolfe ja, ich weiß. Es kann nicht richtig sein, aber ich habe es hier nur für einige Windows-Jungs, die diesen Beitrag zur Lösung getroffen. Ich habe Stunden damit verbracht, dieses Problem zu lösen, und möchte dies auch anderen mitteilen. Aber danke für die Erinnerung.
Danniel Little