Jak najłatwiej uzyskać Vim z obsługą Python 3?

19

Mam zainstalowany Ubuntu 14.04, a Vim w jego repozytoriach jest kompilowany bez obsługi Python 3. Z tego powodu wtyczka trybu python nie może współpracować z kodem Python 3. Jak najłatwiej uzyskać Vim z obsługą Python 3?

CrabMan
źródło

Odpowiedzi:

16

Wydaje się, że w systemach opartych na Debianie (przynajmniej) nie możesz mieć swojego ciasta i jesz. Jest to albo Python 2 lub Python 3. Ze względu na sposób budowania bibliotek Python , możesz używać tylko jednego wariantu w sesji Vima. Państwo może budować z obu, ale jeśli Python 2 jest nazywany w vim, to Python 3 nie można nazwać w tej samej sesji, i vice versa. Również w Arch Linux Vim jest kompilowany tylko z jednym z Python 2 ( vim, gvim) lub Python 3 ( vim-python3, gvim-python3).


Przed 16.04

Aby odbudować Vima, który zapewniają repozytoria:

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

Edytuj debian/rulesi zamień:

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

Z:

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

Następnie uruchomić:

dpkg-buildpackage -us -uc

Jeść lunch. (Lub herbata, jeśli ją użyłeś -j $(nproc).)

Teraz .debw katalogu nadrzędnym zostanie utworzonych wiele plików. Aby zobaczyć, które:

cd ..
ls vim*.deb

Wraz ze szczególnym wariantem chcesz zainstalować ( vim, vim-gnome, vim-gtk, itd.), Będziesz musiał zainstalować vim-common_*.deb, vim-runtime_*.debi dla wersji GUI vim-gui-common_*.deb. Na przykład za pomocą vim-gnomei bieżącej wersji vimrepozytoriów:

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

Następnie:

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

Pi-rho / dev PPA buduje Vima w ten sposób, aby można było korzystać z PPA zamiast ręcznie go buduje.


16.04

Począwszy od 16.04, Ubuntu buduje Vima z obsługą Python 3. Python 2 wsparcie udzielane jest przez tych -py2pakietów ( vim-nox-py2, vim-gnome-py2, itd.).


Związane z:

muru
źródło
Vim skompilowany w ten sposób daje mi błąd podczas próby załadowania funkcji pymode: Ten Vim nie może wykonać: py3 po użyciu: python. Kiedy korzystałem z Gentoo zamiast Ubuntu, vim używał Pythona 3 i ten problem nie istniał.
CrabMan
@CrabMan Przeczytaj pierwszy akapit.
muru
@CrabMan Możesz spróbować zbudować tylko przy pomocy Python3 (zasadniczo zamieniając Python3 i Python w linie, które już istniały). Wtedy wszystko, co spróbuje załadować Python2, zawiedzie.
muru
YouCompleteMe niedostępny: wymaga Vima skompilowanego z obsługą Python 2.x. Myślę, że to jedno z najważniejszych rozszerzeń vima, którego używam, więc nie jest to opcja.
CrabMan
O ile rozumiem, mogę po prostu dołączyć wiersz „py3 3” do mojego .vimrc i będzie to miało taki sam efekt jak kompilacja vima z obsługą tylko python3.
CrabMan