Obsługa Vim 8.0 Python

23

Próbuję zaktualizować moją instalację Vima do wersji 8.0, ale nie obsługuje ona zarówno Python, jak i Python 3, jak na poniższym obrazie.

(PS: Z powodu tego problemu nie mogę teraz używać wtyczki YCM (YouCompleteMe).)

  1. Zainstalowałem Vima 8.0 jak w poniższych poleceniach.

  2. Używam Ubuntu 16.04 (Xenial Xerus).

Jak poradzić sobie z tym problemem?

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

Wpisz opis zdjęcia tutaj

Hyun Ho Yeo
źródło
1
Wygląda na to, że ta wersja Vima została skompilowana bez obsługi języka Python. Niewiele można z tym zrobić. Jeśli chcesz uruchomić najnowszą wersję Vima na Ubuntu, to samodzielna kompilacja jest prawdopodobnie najłatwiejszą opcją.
Martin Tournoij,
2
Bez pytona, bez rubinu, bez perla, bez schowka… ta kompilacja jest bardzo bliska bezużyteczności. Co otrzymasz, jeśli zainstalujesz vim-gtkzamiast vim?
romainl
1
@Carpetsmoker Jak mogę go skompilować samodzielnie? Czy możesz wyjaśnić coś konkretnego lub podać link?
Hyun Ho Yeo,
@romainl Czy istnieje vim-gtk, który obsługuje vim 8.0?
Hyun Ho Yeo,
Tak, w tym ppa.
romainl,

Odpowiedzi:

14

Pi-rho / odchylenie PPA obsługuje vim 8, i jak zawsze musi obejmuje obsługę 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

Z opóźnieniem, pi-rho/devPPA nie był aktualizowany Vim buduje. Teraz korzystam z 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

PPA zawiera także nowsze wersje kilku innych pakietów.

muru
źródło
♦ Dzięki, użyłem vim-nox na przemian. Powinienem spróbować tego.
Hyun Ho Yeo
jak zainstalować vim8? dodałem PPA, ale wykonanie sudo apt-get install vimdaje mi vim7 bez pythina
weima
@weima zrobiłeś apt-get updatepo dodaniu PPA?
Andrei Bârsan
1
jonathonf / backports nie ma już kompilacji vima
Penghe Geng
2
@PengheGeng przenieśli go do osobnego PPA ( jonathonf/vim)
muru
8

Z twojego pytania wynika, że ​​zainstalowałeś vim-tiny 8.0, który jest bardzo minimalnym środowiskiem uruchomieniowym Vima bez wtyczek. Możesz to potwierdzić za pomocą:

dpkg -l | grep vim

Możesz mieć kilka środowisk uruchomieniowych Vima, ale wersja uruchomiona wtedy vimbędzie wersją, którą możesz zobaczyć, wskazaną tutaj:

update-alternatives --list vim

Możesz sprawdzić inne wersje. Moja sugestia polega na tym, że decydujesz pomiędzy pełnymi wersjami z obsługą GUI i możesz wybierać między vim-gtk2/vim-gtk3pakietami lub vim-noxpełną wersją, ale bez GUI.

Teraz IIRC, pełna wersja Vima w Debian / Ubuntu, nie jest dostarczana jednocześnie z Python 2 i Python 3 w wersji 7.x. Nie wiem, jak wygląda sprawa z Vimem 8, ponieważ używam neovimteraz. Jeśli tak jest w twoim przypadku i będziesz potrzebował OBIEKTY silników Pythona obsługiwanych przez Vima 8 (nie będzie to twój przypadek użycia YouCompleteMe; ten działa tylko z obsługą Python 2), wtedy będziesz musiał skompilować ze źródeł własnego Vima 8.0

Yonsy Solis
źródło
Gleby Dzięki, zainstalowałem vim-nox, ale kiedyś spróbuję skompilować ze źródeł.
Hyun Ho Yeo
6

powinieneś użyć

sudo apt-get install vim-nox

zamiast tego, aby uzyskać „ogromną wersję”.

skywind3000
źródło
Chcę używać vima 8.0 lub nowszego. Czy istnieje vim.nox, który to obsługuje?
Hyun Ho Yeo,
@HyunHoYeo wygląda jak vim-nox w Ubuntu 16.04 to vim 8.0 (możesz to sprawdzić po instalacji wykonując vim --versioni mamVIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 05 2017 20:17:49)
jamescampbell
@jamescampbell Dzięki, zaktualizowałem moje Ubuntu do wersji 16.04 i pobrałem je.
Hyun Ho Yeo
5

Powinieneś zainstalować vima ze źródła. W ten sposób masz kontrolę nad zawartością. Zobacz następujące informacje, aby uzyskać więcej informacji i krok po kroku. To jest stosunkowo łatwe.

https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
https://github.com/vim/vim
Xero Smith
źródło
Unikaj publikowania odpowiedzi tylko z linkiem, ponieważ mogą one ulec zmianie w przyszłości, pozostawiając ludziom brak odpowiedzi na ich pytanie. Przynajmniej uwzględnij niezbędne części z połączonej strony.
EvergreenTree,
5

Rozwiązanie 1:

  • Zainstaluj VIM Editor (zainstaluj dowolny z nich z wariantu vim):

    • vim-gtk3 : - Ten pakiet zawiera wersję vima skompilowaną z graficznym interfejsem GTK3 i wsparciem dla skryptów z Lua, Perl, Python, Ruby i Tcl. Aby zainstalować ten pakiet:

      sudo apt install vim-gtk3   
    • vim-gtk : - Ten pakiet zawiera wersję vima skompilowaną z graficznym interfejsem użytkownika GTK2 oraz wsparcie dla skryptów z Lua, Perl, Python, Ruby i Tcl. Aby zainstalować ten pakiet:

      sudo apt install vim-gtk   
    • vim-nox : - ulepszony edytor vi Podobnie jak vim-tiny, vim-nox to minimalna instalacja vim i obsługa skryptów z Lua, Perl, Python, Ruby i Tcl, ale bez GUI. Pochodzi z obsługą myszy, ale bez obsługi schowka, IIRC. Aby zainstalować ten pakiet:

      sudo apt install vim-nox
  • Ustaw Vima jako domyślny edytor (zakładając, że zainstalowanym wariantem jest 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    

Rozwiązanie 2:

W przeciwnym razie możesz skompilować Vima z kodu źródłowego (zakładając, że używasz systemu opartego na Debianie)

Przygotuj swój system

  • zainstalować

    sudo apt install libncurses5-dev \
    libgtk2.0-dev libatk1.0-dev \
    libcairo2-dev python-dev \
    python3-dev git
  • Usuń Vima, jeśli już go masz

    sudo apt remove vim vim-runtime gvim  

skonfiguruj i dokonaj

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 

Przygotowanie pakietu deb przy użyciu checkinstall

  • I zainstaluj ten pakiet

    cd /usr/vim && sudo checkinstall
  • Lub, jeśli chcesz po prostu utworzyć --install=noopcję użycia pakietu za pomocą checkinstall

Ustaw Vima jako domyślny edytor

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   

Sprawdź, czy korzystasz z nowego pliku binarnego Vima, patrząc

vim --version | grep python

Odniesienia:
- Budowanie Vima ze źródła
- checkinstall
- Warianty VIM

Fin
źródło
+1 zasudo apt install vim-nox
Philippe Gachoud
1

Właśnie sprawdzone, vim-nox (wer. 8.1) dostępny z PPA został skompilowany z Pythonem 3 (tylko nie oba, jeśli naprawdę potrzebujesz obu, radzę przejść na Neovim).

Alex Fedotov
źródło
0

Dotyczy to tylko osób z Windows, które uzyskały podobny problem:

W 64-bitowym systemie Windows MUSISZ zainstalować tę samą bitową wersję Pythona, co twój VIM. itp.

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

W przeciwnym razie python2x.dll lub python3x.dll NIE zostaną załadowane.

Danniel Little
źródło
OP używał pliku binarnego vim, który został skompilowany bez Pythona. Dodatkowo używa go w systemie Linux, a nie Windows.
Herb Wolfe
@HerbWolfe tak, wiem. To może nie być właściwe, ale umieściłem to tutaj tylko dla niektórych facetów z Windows, którzy trafili na ten post w celu rozwiązania. Spędziłem godziny, aby rozwiązać ten problem i chciałem poświęcić trochę czasu tym samym innym. Ale dziękuję za przypomnienie.
Danniel Little