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支持的情况下编译的。您不能为此做很多事情。如果要在Ubuntu上运行最新的Vim版本,则自己编译可能是最简单的选择。
马丁·图尔诺伊

2
没有python,没有ruby,没有perl,没有剪贴板……这种构建几乎是无用的。如果安装vim-gtk而不是安装,会得到什么vim
romainl

1
@Carpetsmoker我如何自己编译?您能解释一下具体内容还是给我链接?
玄浩Ye

@romainl是否有支持vim 8.0的vim-gtk?
Ho河Ye

是的,在那个ppa中。
romainl

Answers:


14

PI-rho沸石的/ 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/backports现在使用PPA:

$ 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。我应该尝试这个。
Ho河洋

如何安装vim8?我添加了PPA,但是执行sudo apt-get install vim使我获得了没有pythin的vim7
weima

apt-get update在添加PPA之后,@ weima做了吗?
AndreiBârsan'7

1
jonathonf / backports不再具有vim构建
Penghe Geng

2
@PengheGeng他们将其移至单独的PPA(jonathonf/vim
大师

8

从您的问题看来,您已经安装了vim-tiny 8.0,这是没有插件的非常小的Vim运行时。您可以使用以下方法进行确认:

dpkg -l | grep vim

您可以有多个Vim运行时,但是运行时所运行的版本vim将是您可以在此处看到的版本:

update-alternatives --list vim

您可以检查其他版本。我的建议是,您在支持GUI的完整版本之间做出决定,并且可以在vim-gtk2/vim-gtk3软件包之间进行选择,也可以选择vim-nox是完整版本,但没有GUI。

现在,IIRC(Debian / Ubuntu中的Vim完整版)在7.x版本中不再同时提供Python 2和Python 3。我不知道Vim 8的情况如何,因为我neovim现在使用。如果您是这种情况,并且您将需要Vim 8支持的两种Python引擎(这不是您的用例YouCompleteMe;仅适用于Python 2支持),那么您将需要从源代码中自己编译Vim 8.0。


土壤谢谢,我安装了vim-nox,但是有一天我会尝试从源代码进行编译。
Ho河洋

6

你应该使用

sudo apt-get install vim-nox

相反,获得“巨大版本”。


我想使用vim 8.0或更高版本。有vim.nox支持吗?
玄浩Ye

@HyunHoYeo看起来像Ubuntu 16.04中的vim-nox是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版本并下载了它。
Ho河

5

您应该从源代码安装vim。这样,您可以控制其中包含的内容。有关更多信息和逐步说明,请参见以下内容。这是相对容易的。

https://github.com/Valloric/YouCompleteMe/wiki/Building-Vim-from-source
https://github.com/vim/vim

请避免发布仅链接的答案,因为将来可能会更改它,从而使人们无法回答他们的问题。至少包括链接页面中的基本部分。
EvergreenTree

5

解决方案1:

  • 安装VIM编辑器(安装vim变体中的任何一个):

    • vim-gtk3:-该软件包包含一个用GTK3 GUI编译的vim版本,并支持使用Lua,Perl,Python,Ruby和Tcl编写脚本。为了安装此软件包:

      sudo apt install vim-gtk3   
    • vim-gtk:-该软件包包含一个用GTK2 GUI编译的vim版本,并支持使用Lua,Perl,Python,Ruby和Tcl编写脚本。为了安装此软件包:

      sudo apt install vim-gtk   
    • vim-nox:-增强的vi编辑器与vim-tiny一样,vim-nox是最小的vim安装程序,并支持使用Lua,Perl,Python,Ruby和Tcl编写脚本,但不提供GUI。它带有鼠标支持,但不支持剪贴板,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 

使用checkinstall准备Deb软件包

  • 并安装该软件包

    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 forsudo apt install vim-nox
Philippe Gachoud,


0

这仅适用于获得类似肯定性的Windows人员:

在Windows 64位上,必须安装与VIM相同的python版本。等等

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

否则,将不会加载python2x.dll或python3x.dll。


OP使用的是未使用Python编译的vim二进制文件。此外,他在Linux而不是Windows上使用它。
赫尔·沃尔夫

@HerbWolfe是的,我知道。可能不合适,但我只将其放在此处供某些Windows专家使用,以寻求解决方案。我花了几个小时来解决这个问题,并希望与其他人在这个问题上花点时间。但是,谢谢您的提醒。
丹尼尔·利特尔
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.