Ubuntu 16.04 VIM bez obsługi języka Python!


22

Chociaż informacje o wersji Ubuntu 16.04 wspominają, że:

Domyślny pakiet VIM został zbudowany na python3 zamiast python2.

Jednak po zainstalowaniu vima za pomocą następującego polecenia:

sudo apt-get install vim

I sprawdzone:

vim --version

To pokazało:

-python
-python3

Czy to błąd? Jak uzyskać vim z obsługą Python?

Odpowiedzi:


27

Jeśli chcesz obsługiwać Python 3 w vimie, zainstaluj vim-noxpakiet ( sudo apt install vim-nox) patrz edycja poniżej .

Jeśli jednak nadal potrzebujesz obsługi języka Python 2, zainstaluj vim-nox-py2pakiet ( sudo apt install vim-nox-py2).

Edycja : vimzostał niedawno zaktualizowany w celu rozwiązania tego problemu i nie trzeba już instalować vim-noxpakietu, aby uzyskać obsługę języka Python 3.


1
tak, zrobiłem to ... ale dlaczego pakiet vim nie obsługuje Pythona?
Saprativa Bhattacharjee

Ubuntu podzielił obsługę Pythona z pakietu głównego na dwa inne pakiety: jeden obsługujący Python 2 i drugi obsługujący Python 3. Po zainstalowaniu jednego z powyższych pakietów powinieneś być w stanie używać vim z obsługą Python 2/3.
saiarcot895 30.04.16

1
czy nie jest zaskakujące, że sam pakiet vim nie obsługuje żadnego z pytonów? w informacjach o wersji podano inaczej. wiki.ubuntu.com/XenialXerus/ReleaseNotes
Saprativa Bhattacharjee

@ saiarcot895 To najwyraźniej działa dla mnie. Ale gdzie wykopałeś te informacje? Czy istnieje wiki Ubuntu dokumentująca, w jaki sposób rozpowszechniają różne rzeczy?
qweruiop

2
Chciałem tylko dodać, że po instalacji vim-nox-py2musiałem uruchomić sudo update-alternatives --set vim /usr/bin/vim.nox-py2. Uważam, proszę popraw mnie inaczej, bez tych vimpunktów vim.tinylub jakiegoś takiego pakietu, który nie ma wsparcia dla Pythona.
DBS

3

W 17.10-18.10 trudno jest uzyskać kopię vima z obsługą zarówno python2, jak i python3. Konfiguracja PPA przez pi-rho ma takie pakiety dla poprzednich wydań, ale nic jeszcze dla 17.10 i późniejszych.

Oto, co zrobiłem, aby uruchomić pakiety pi-rho:

  1. odinstaluj wszystkie pakiety vim (to zmusi cię do odinstalowania „ubuntu-minimal”)
  2. pobierz stąd pakiety vim , które kończą się na „~ z”
  3. pobierz pakiety perl-moduły-5.24 , libgdbm3 i libperl5.24
  4. zainstaluj je za pomocą dpkg: przejdź do katalogu pobierania i wykonaj sudo dpkg -i libgdbm3_1.8.3-14_amd64.deb libperl5.24_5.24.1-2ubuntu1.1_amd64.deb perl-modules-5.24_5.24.1-2ubuntu1.1_all.deb vim*.deb
  5. zainstaluj ponownie „ubuntu-minimal”: sudo apt install ubuntu-minimal
  6. zablokuj wersję vima
    • otwórz menedżera pakietów synaptycznych i zaznacz właśnie zainstalowane pakiety vim. Idź do Pakiet -> „Zablokuj wersję”
    • konieczne może być również „zatrzymanie” pakietów sudo apt-mark holddla każdego z tych pakietów (np. sudo apt-mark hold vim-common vim-gnome)


1

W Ubuntu 17.10 kompilacja jest rozwiązaniem, które działało dla mnie:

Bezpośrednio zainspirowany tą istotą , zrobiłem następujące:

sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-gui-common
sudo apt-get install checkinstall
sudo rm -rf /usr/local/share/vim /usr/bin/vim
cd /tmp && git clone https://github.com/vim/vim
cd vim/src
make distclean
cd ..
./configure --enable-multibyte --enable-perlinterp=dynamic --enable-pythoninterp=dynamic --with-python-config-dir=/usr/lib/python2.7/config-x86_64-linux-gnu --enable-cscope --enable-gui=auto --with-features=huge --with-x --enable-fontset --enable-largefile --disable-netbeans --with-compiledby="put your name here" --enable-fail-if-missing
make
sudo make install
sudo ln -s /usr/local/bin/vim /usr/bin/vim

Nie zapomnij dostosować ./configureparametrów, aby mieć wszystkie inne potrzebne funkcje.

Teraz możesz otworzyć vima i uruchomić polecenie, :echo has('python')aby potwierdzić, że masz włączony Python 2.


1

Instalowanie, vim-nox-py2a następnie uruchamianie

sudo update-alternatives --config vim

pracował dla mnie.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.