Ubuntu 16.04 VIM sem suporte a python!


22

Embora as notas de versão do Ubuntu 16.04 mencionem isso:

O pacote VIM padrão foi criado no python3 em vez do python2.

No entanto, depois que eu instalei o vim com o seguinte comando:

sudo apt-get install vim

E verificado:

vim --version

Mostrou:

-python
-python3

Isso é um bug? Como obtenho o vim com suporte ao Python?

Respostas:


27

Se você deseja suporte ao Python 3 no vim, instale o vim-noxpacote ( sudo apt install vim-nox), veja a edição abaixo .

No entanto, se você ainda precisar do suporte ao Python 2, instale o vim-nox-py2pacote ( sudo apt install vim-nox-py2).

Editar : vimfoi atualizado recentemente para corrigir esse problema, e você não precisa mais instalar o vim-noxpacote para obter suporte ao Python 3.


1
sim, eu fiz isso ... mas por que o pacote vim não suporta python?
Saprativa Bhattacharjee

O Ubuntu dividiu o suporte ao Python do pacote principal em dois outros pacotes: um que suporta o Python 2 e outro que suporta o Python 3. Depois de instalar um dos pacotes acima, você poderá usar o vim com o suporte do Python 2/3.
precisa saber é o seguinte

1
não é surpreendente que o próprio pacote vim não suporte nenhum pythons? as notas de versão mencionam o contrário. wiki.ubuntu.com/XenialXerus/ReleaseNotes
Saprativa Bhattacharjee

@ saiarcot895 Isso aparentemente funciona para mim. Mas onde você desenterrou essas informações? Existe um wiki do Ubuntu documentando como eles distribuem coisas?
qweruiop

2
Só queria acrescentar que, após a instalação, vim-nox-py2eu precisava executar sudo update-alternatives --set vim /usr/bin/vim.nox-py2. Eu acredito que, por favor, corrija-me de outra forma, sem esses vimpontos vim.tinyou algum pacote que não tenha suporte a python.
DBS

3

Em 17.10-18.10, é difícil obter uma cópia do vim com suporte para python2 e python3. A configuração do PPA do pi-rho possui esses pacotes para versões anteriores, mas nada ainda para 17.10 e posterior.

Isto é o que eu fiz para obter os pacotes pi-rho em execução:

  1. desinstalar todos os pacotes vim (isso o forçará a desinstalar "ubuntu-minimal")
  2. faça o download dos pacotes vim daqui que terminam em "~ z"
  3. faça o download dos pacotes perl-modules-5.24 , libgdbm3 e libperl5.24
  4. instale-os usando o dpkg: vá para o diretório de download e faça 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. reinstale o "ubuntu-minimal": sudo apt install ubuntu-minimal
  6. bloquear a versão vim
    • abra o gerenciador de pacotes sinápticos e realce os pacotes vim que você acabou de instalar. Vá para Package -> "Lock Version"
    • também pode ser necessário "reter" os pacotes sudo apt-mark holdpara cada um desses pacotes (por exemplo sudo apt-mark hold vim-common vim-gnome)


1

No Ubuntu 17.10 , compilar é a solução que funcionou para mim:

Inspirado diretamente por essa essência , fiz o seguinte:

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

Não se esqueça de adaptar os ./configureparâmetros para ter todos os outros recursos necessários.

Agora você pode abrir o vim e executar o comando :echo has('python')para confirmar que o python 2 está ativado.


1

Instalando vim-nox-py2e depois executando

sudo update-alternatives --config vim

trabalhou para mim.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.