Suporte ao Vim 8.0 Python

23

Estou tentando atualizar minha instalação do Vim para a versão 8.0, mas ele não suporta Python e Python 3 como na imagem abaixo.

(PS: Devido a esse problema, não posso usar o plug-in YCM (YouCompleteMe) agora.)

  1. Eu instalei o Vim 8.0 como nos seguintes comandos.

  2. Estou usando o Ubuntu 16.04 (Xenial Xerus).

Como posso lidar com esse problema?

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

Digite a descrição da imagem aqui

Hyun Ho Yeo
fonte
1
Parece que a versão do Vim foi compilada sem o suporte ao Python. Não há muito que você possa fazer sobre isso. Se você deseja executar a versão mais recente do Vim no Ubuntu, compilar é provavelmente a opção mais fácil.
Martin Tournoij 11/11
2
Sem python, sem ruby, sem perl, sem prancheta ... essa compilação é muito próxima de inútil. O que você ganha se instalar em vim-gtkvez de vim?
Romainl 11/11/16
1
@Carpetsmoker Como posso compilar sozinho? Você pode explicar um pouco específico ou me dando um link?
Hyun Ho Yeo
@romainl Existe o vim-gtk que suporta o vim 8.0?
Hyun Ho Yeo
Sim, naquele ppa.
romainl

Respostas:

14

O PPA pi-rho / dev agora suporta o Vim 8 e, como sempre, inclui suporte para 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

Ultimamente, o pi-rho/devPPA não atualizou as versões do Vim. Eu uso o jonathonf/backportsPPA agora:

$ 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

O PPA também contém versões mais recentes de vários outros pacotes.

muru
fonte
♦ Obrigado, usei o vim-nox como alternativa. Eu deveria tentar este.
Hyun Ho Yeo
como instalar o vim8? Eu adicionei o PPA mas executá sudo apt-get install vimme deixa vim7 sem pythin
Weima
@weima você fez um apt-get updatedepois de adicionar o PPA?
Andrei Bârsan
1
jonathonf / backports não tem mais vim constrói
Penghe Geng
2
@PengheGeng eles se mudaram para um PPA separado ( jonathonf/vim)
Muru
8

Da sua pergunta, parece que você instalou o vim-tiny 8.0, que é um tempo de execução do Vim muito mínimo sem plug-ins. Você pode confirmar isso usando o seguinte:

dpkg -l | grep vim

Você pode ter vários tempos de execução do Vim, mas a versão em execução vimserá a versão que você pode ver indicada aqui:

update-alternatives --list vim

Você pode verificar outras versões. Minha sugestão é que você decida entre as versões completas com suporte para GUI e escolha entre vim-gtk2/vim-gtk3pacotes ou vim-noxque seja uma versão completa, mas sem uma GUI.

Agora, IIRC, a versão completa do Vim no Debian / Ubuntu não vem com o Python 2 e o Python 3 ao mesmo tempo nas versões 7.x. Não sei como é o caso do Vim 8, porque uso neovimagora. Se este for o seu caso e você precisará de AMBOS os mecanismos Python suportados pelo Vim 8 (este não será o seu caso para uso YouCompleteMe; este funciona apenas com o suporte do Python 2), será necessário compilar a partir das fontes seu próprio Vim 8.0

Yonsy Solis
fonte
Solos Obrigado, instalei o vim-nox, no entanto, tentaria compilar a partir de fontes algum dia.
Hyun Ho Yeo
6

você deveria usar

sudo apt-get install vim-nox

em vez disso, para obter uma "versão enorme".

skywind3000
fonte
Eu quero usar o vim 8.0 ou posterior. Existe o vim.nox que suporta isso?
Hyun Ho Yeo
@HyunHoYeo olhares como vim-nox no Ubuntu 16.04 é vim 8.0 (você pode verificar após a instalação fazendo vim --versione eu fuiVIM - Vi IMproved 8.0 (2016 Sep 12, compiled Feb 05 2017 20:17:49)
jamescampbell
@jamescampbell Obrigado, atualizei o meu Ubuntu para a versão 16.04 e baixei-o.
Hyun Ho Yeo
5

Você deve instalar o vim a partir da fonte. Dessa forma, você tem controle sobre o que está incluído. Veja o seguinte para obter mais informações e passo a passo. É relativamente fácil.

https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
https://github.com/vim/vim
Xero Smith
fonte
Evite postar uma resposta apenas para link, pois isso poderá mudar no futuro, deixando as pessoas sem resposta para suas perguntas. Pelo menos inclua as partes essenciais da página vinculada.
EvergreenTree
5

Solução 1:

  • Instale o VIM Editor (instale qualquer um deles da variante vim):

    • vim-gtk3 : - Este pacote contém uma versão do vim compilada com uma GUI GTK3 e suporte para scripts com Lua, Perl, Python, Ruby e Tcl. Para instalar este pacote:

      sudo apt install vim-gtk3   
    • vim-gtk : - Este pacote contém uma versão do vim compilada com uma GUI GTK2 e suporte para scripts com Lua, Perl, Python, Ruby e Tcl. Para instalar este pacote:

      sudo apt install vim-gtk   
    • vim-nox : - editor vi aprimorado Como o vim-tiny, o vim-nox é uma instalação e suporte mínimos do vim para scripts com Lua, Perl, Python, Ruby e Tcl, mas sem GUI. Ele vem com suporte para mouse, mas sem suporte para área de transferência, IIRC. Para instalar este pacote:

      sudo apt install vim-nox
  • Defina o Vim como um editor padrão (assumindo que a variante instalada seja 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    

Solução 2:

Caso contrário, você pode compilar o Vim a partir do código fonte (assumindo que você esteja usando o sistema baseado em Debian)

Prepare seu sistema

  • Instalar

    sudo apt install libncurses5-dev \
    libgtk2.0-dev libatk1.0-dev \
    libcairo2-dev python-dev \
    python3-dev git
  • Remova o Vim se você já possui

    sudo apt remove vim vim-runtime gvim  

configurar e fazer

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 

Preparando o pacote deb usando o checkinstall

  • E instale esse pacote

    cd /usr/vim && sudo checkinstall
  • Ou, se você quiser apenas criar uma --install=noopção de uso de pacote com checkinstall

Definir o Vim como editor padrão

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   

Verifique se você está executando o novo binário do Vim procurando

vim --version | grep python

Referências:
- Construindo o Vim a partir da fonte
- checkinstall
- variantes do VIM

finn
fonte
+1 parasudo apt install vim-nox
Philippe Gachoud 22/04
1

Acabei de verificar, o vim-nox (v. 8.1) disponível no PPA foi compilado com o Python 3 (somente, não os dois, se você realmente precisar dos dois, aconselho a mudar para o Neovim).

Alex Fedotov
fonte
0

Isso é apenas para os caras do Windows que obtiveram a emissão semelhante:

No Windows de 64 bits, você DEVE instalar a mesma versão python de bits do seu VIM. etc.

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

Caso contrário, python2x.dll ou python3x.dll NÃO serão carregados.

Danniel Little
fonte
O OP estava usando um binário vim que foi compilado sem o Python. Além disso, ele está usando no Linux, não no Windows.
Herb Wolfe
@HerbWolfe sim, eu sei. Pode não ser adequado, mas eu o coloquei aqui apenas para alguns caras do Windows que acessaram este post como solução. Passei horas para resolver esse problema e quero que os outros se dediquem algum tempo. Mas obrigado por lembrar.
21118 Danniel Little