Was ist der einfachste Weg, um Vim mit Python 3-Unterstützung zu bekommen?

19

Ich habe Ubuntu 14.04 installiert und Vim in seinen Repos ist ohne Python 3-Unterstützung kompiliert. Aus diesem Grund funktioniert das Python-Modus-Plugin nicht mit Python 3-Code. Was ist der einfachste Weg, um Vim mit Python 3-Unterstützung zu bekommen?

CrabMan
quelle

Antworten:

16

Es scheint, dass Sie auf Debian-basierten Systemen (zumindest) Ihren Kuchen nicht haben und ihn auch nicht essen können. Es ist entweder Python 2 oder Python 3. Aufgrund des Aufbaus der Python-Bibliotheken können Sie innerhalb einer Vim-Sitzung nur eine Variante verwenden. Sie können mit beidem erstellen, aber wenn Python 2 in Vim aufgerufen wird, kann Python 3 nicht in derselben Sitzung aufgerufen werden und umgekehrt. Auch unter Arch Linux wird Vim nur mit Python 2 ( vim, gvim) oder Python 3 ( vim-python3, gvim-python3) kompiliert .


Vor dem 16.04

So erstellen Sie das von den Repositorys bereitgestellte Vim neu:

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

Bearbeiten debian/rulesund ersetzen:

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

Mit:

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

Dann renne:

dpkg-buildpackage -us -uc

Zu Mittag essen. (Oder Tee, wenn Sie verwendet haben -j $(nproc).)

Jetzt wurden mehrere .debDateien im übergeordneten Verzeichnis erstellt. Um zu sehen, welche:

cd ..
ls vim*.deb

Zusammen mit der speziellen Variante Sie installieren möchten ( vim, vim-gnome, vim-gtk, etc.), werden Sie installieren müssen vim-common_*.deb, vim-runtime_*.debund für die GUI - Versionen vim-gui-common_*.deb. Zum Beispiel mit vim-gnomeund der aktuellen Version von vimin den Repositories:

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

Dann:

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

Die pi-rho / dev-PPA erstellt Vim auf diese Weise, sodass Sie die PPA verwenden können, anstatt sie manuell zu erstellen.


16.04

Ab 16.04 erstellt Ubuntu Vim mit Python 3-Unterstützung. Python 2 - Unterstützung wird bereitgestellt durch die -py2Pakete ( vim-nox-py2, vim-gnome-py2, etc.).


Verbunden:

muru
quelle
Auf diese Weise kompiliertes Vim gibt mir beim Versuch, Pymode-Funktionen zu laden, einen Fehler: Dieses Vim kann Folgendes nicht ausführen: py3 nach der Verwendung von: python. Als ich Gentoo anstelle von Ubuntu verwendete, verwendete vim Python 3 und dieses Problem bestand nicht.
CrabMan
@CrabMan Lesen Sie den ersten Absatz.
muru
@CrabMan Sie können versuchen, nur mit Python3 zu erstellen (im Wesentlichen Python3 und Python in den bereits vorhandenen Zeilen zu tauschen). Dann schlägt alles fehl, was versucht hat, python2 zu laden.
muru
YouCompleteMe nicht verfügbar: setzt voraus, dass Vim mit Python 2.x-Unterstützung kompiliert wurde. Ich denke, es ist eine der wichtigsten VIM-Erweiterungen, die ich verwende. Das ist also keine Option.
CrabMan
Soweit ich weiß, kann ich auch "py3 3" -Zeile in meine .vimrc-Datei einfügen. Dies hat den gleichen Effekt wie das Kompilieren von vim mit nur python3-Unterstützung.
CrabMan