Поддержка Vim 8.0 Python

23

Я пытаюсь обновить установку Vim до версии 8.0, но она не поддерживает Python и Python 3, как показано на рисунке ниже.

(PS: Из-за этой проблемы я не могу сейчас использовать плагин YCM (YouCompleteMe).)

  1. Я установил Vim 8.0 как в следующих командах.

  2. Я использую Ubuntu 16.04 (Xenial Xerus).

Как я могу справиться с этой проблемой?

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

Введите описание изображения здесь

Хён Хо Йео
источник
1
Похоже, эта версия Vim была скомпилирована без поддержки Python. Не много вы можете с этим поделать. Если вы хотите запустить последнюю версию Vim в Ubuntu, то, вероятно, самый простой вариант - скомпилировать ее самостоятельно.
Мартин Турной
2
Нет python, нет ruby, нет perl, нет буфера обмена ... эта сборка очень близка к бесполезной. Что вы получите, если вы установите vim-gtkвместо vim?
romainl
1
@Carpetsmoker Как я могу скомпилировать его самостоятельно? Можете ли вы объяснить немного конкретнее или дать мне ссылку?
Хён Хо Йео
@romainl Есть ли vim-gtk, который поддерживает vim 8.0?
Хён Хо Йео
Да, в этом PPA.
romainl

Ответы:

14

Пи-ро / DEV PPA теперь поддерживает Vim 8, и , как и всегда, включает в себя поддержку 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

В последнее время pi-rho/devPPA не обновлял сборки Vim. Я использую 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 также содержит более новые версии нескольких других пакетов.

Мур
источник
♦ Спасибо, я использовал Vim-Nox в качестве альтернативы. Я должен попробовать это.
Hyun Ho Yeo
как установить vim8? я добавил PPA, но выполнение sudo apt-get install vimзаставляет меня vim7 без pythin
Вейма
@weima ты сделал apt-get updateпосле добавления PPA?
Андрей Барсан,
1
У jonathonf / backports больше нет сборок vim
Penghe Geng
2
@PengheGeng они переместили его в отдельный PPA ( jonathonf/vim)
Muru
8

Из вашего вопроса видно, что вы установили vim-tiny 8.0, который является минимальным временем выполнения Vim без плагинов. Вы можете подтвердить это, используя это:

dpkg -l | grep vim

У вас может быть несколько сред выполнения Vim, но версия, запущенная вами, vimбудет той версией, которую вы видите, указанной здесь:

update-alternatives --list vim

Вы можете проверить другие версии. Я предлагаю вам выбрать между полными версиями с поддержкой графического интерфейса, и вы можете выбирать между vim-gtk2/vim-gtk3пакетами или vim-noxполной версией, но без графического интерфейса.

Теперь, IIRC, полная версия Vim в Debian / Ubuntu не поставляется с Python 2 и Python 3 одновременно в версиях 7.x. Я не знаю, как обстоят дела с Vim 8, потому что я использую neovimсейчас. Если это так и вам нужно, и вам понадобятся оба движка Python, поддерживаемые Vim 8 (это не будет вашим случаем для использования YouCompleteMe; этот работает только с поддержкой Python 2), тогда вам нужно будет скомпилировать из исходных кодов свой собственный Vim 8,0.

Йонси Солис
источник
Почва Спасибо, я установил vim-nox, однако когда-нибудь попробую скомпилировать из исходников.
Hyun Ho Yeo
6

ты должен использовать

sudo apt-get install vim-nox

вместо этого, чтобы получить "огромную версию".

skywind3000
источник
Я хочу использовать Vim 8.0 или более поздней версии. Есть ли vim.nox, который это поддерживает?
Хён Хо Йео
@HyunHoYeo выглядит так, будто vim-nox в Ubuntu 16.04 - это vim 8.0 (вы можете проверить после установки, выполнив, vim --versionи я получилVIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 05 2017 20:17:49)
jamescampbell
@jamescampbell Спасибо, я обновил Ubuntu до версии 16.04 и скачал ее.
Hyun Ho Yeo
5

Вы должны установить vim из исходного кода. Таким образом, вы можете контролировать то, что включено. См. Ниже для получения дополнительной информации и пошаговое руководство. Это относительно легко.

https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
https://github.com/vim/vim
Ксеро Смит
источник
Пожалуйста, избегайте публикации ответа только по ссылке, так как он может измениться в будущем, оставляя людей без ответа на свой вопрос. По крайней мере, включите основные части со связанной страницы.
EvergreenTree
5

Решение 1:

  • Установите VIM Editor (установите любой из них в варианте vim):

    • vim-gtk3 : - Этот пакет содержит версию vim, скомпилированную с графическим интерфейсом GTK3, и поддержку сценариев с Lua, Perl, Python, Ruby и Tcl. Чтобы установить этот пакет:

      sudo apt install vim-gtk3   
    • vim-gtk : - Этот пакет содержит версию vim, скомпилированную с графическим интерфейсом GTK2, и поддержку сценариев с Lua, Perl, Python, Ruby и Tcl. Чтобы установить этот пакет:

      sudo apt install vim-gtk   
    • vim-nox : - расширенный редактор vi Как и vim-tiny, vim-nox - это минимальная установка vim и поддержка сценариев с Lua, Perl, Python, Ruby и Tcl, но без графического интерфейса. Он поставляется с поддержкой мыши, но без поддержки буфера обмена, IIRC. Чтобы установить этот пакет:

      sudo apt install vim-nox
  • Установить Vim как редактор по умолчанию (при условии, что установленный вариант 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    

Решение 2:

В противном случае вы можете скомпилировать Vim из исходного кода (при условии, что вы используете систему на основе Debian)

Подготовьте вашу систему

  • устанавливать

    sudo apt install libncurses5-dev \
    libgtk2.0-dev libatk1.0-dev \
    libcairo2-dev python-dev \
    python3-dev git
  • Удалите Vim, если у вас уже есть

    sudo apt remove vim vim-runtime gvim  

настроить и сделать

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 с помощью checkinstall

  • И установить этот пакет

    cd /usr/vim && sudo checkinstall
  • Или, если вы хотите просто создать --install=noвариант использования пакета с checkinstall

Установить Vim в качестве редактора по умолчанию

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   

Убедитесь, что вы используете новый бинарный файл Vim, посмотрев

vim --version | grep python

Ссылки:
- Сборка Vim из исходного кода
- checkinstall
- варианты VIM

финн
источник
+1 заsudo apt install vim-nox
Филипп Гачу
1

Только что проверил, vim-nox (v. 8.1), доступный из PPA, был скомпилирован с Python 3 (только не оба, если вам действительно нужны оба, я бы посоветовал переключиться на Neovim).

Алекс Федотов
источник
0

Это только для парней Windows, которые получили аналогичный вопрос:

В 64-битной Windows вы ДОЛЖНЫ установить ту же версию Python, что и ваш VIM. и т.п.

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

В противном случае python2x.dll или python3x.dll НЕ будут загружены.

Даниэль Литтл
источник
OP использовал двоичный файл vim, который был скомпилирован без Python. Кроме того, он использует его в Linux, а не в Windows.
Херб Вулф
@ HerbWolfe да, я знаю. Это может быть не правильно, но я поместил это здесь только для некоторых парней Windows, которые ударили этот пост для решения. Я потратил часы, чтобы решить эту проблему, и хочу, чтобы те же другие некоторое время занялись этим Но спасибо за напоминание.
Данниэль Литтл