我正在尝试将Vim安装升级到8.0版,但不支持Python和Python 3,如下图所示。

(PS:由于这个问题,我无法使用YCM (YouCompleteMe)插件。)


我按照以下命令安装了Vim 8.0。
我正在使用Ubuntu 16.04(Xenial Xerus)。

如何解决此问题?

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




评论

看起来该版本的Vim是在没有Python支持的情况下编译的。您不能为此做很多事情。如果要在Ubuntu上运行最新的Vim版本,则自己编译可能是最简单的选择。

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

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

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

是的,在那个ppa中。

#1 楼

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/dev PPA还没有。更新了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。我应该尝试这个。

–玄浩Ye
17年2月9日,下午1:47

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

–威玛
17年6月22日在10:55

@weima在添加PPA之后,您是否进行了apt-get更新?

– AndreiBârsan
17年7月4日在8:49

jonathonf / backports不再具有vim构建

–耿鹏和
18年8月2日,下午1:54

@PengheGeng他们将其移动到单独的PPA(jonathonf / vim)

–muru
18年8月2日在1:55

#2 楼

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

dpkg -l | grep vim


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

update-alternatives --list vim

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

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

评论


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

–玄浩Ye
17年2月9日,下午1:45

#3 楼

您应该使用

sudo apt-get install vim-nox

来获取“巨大版本”。

评论


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

–玄浩Ye
16年11月12日,下午3:26

@HyunHoYeo看起来像Ubuntu 16.04中的vim-nox是vim 8.0(您可以在安装后通过执行vim --version进行检查,我得到了VIM-Vi IMproved 8.0(2016年9月12日,编译于2017年2月5日20:17:49)

–詹姆斯·坎贝尔
17年2月8日在4:55

@jamescampbell谢谢,我将Ubuntu升级到16.04版本并下载了它。

–玄浩Ye
17年2月9日,下午1:43

#4 楼

解决方案1:



安装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,请删除Vim




配置并制作

sudo apt remove vim vim-runtime gvim  


使用checkinstall




并安装该软件包

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的--install=no选项创建程序包

将Vim设置为默认编辑器

cd /usr/vim && sudo 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
-checkinstall
-VI M个变种

评论


+1为sudo apt install vim-nox

– Philippe Gachoud
19年4月22日在13:20

#5 楼

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

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


评论


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

–EvergreenTree
17年1月6日在13:27

#6 楼

刚刚检查过,PPA中提供的vim-nox(v。8.1)已使用Python 3进行了编译(如果您确实需要两者,则不能同时使用两者,我建议改用Neovim)。

#7 楼

这仅适用于具有类似安全性的Windows人员:

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


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


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

评论


OP使用的vim二进制文件未经Python编译。另外,他在Linux而不是Windows上使用它。

–草药
18年6月29日在20:42

@HerbWolfe是的,我知道。可能不合适,但我只将其放在此处供某些Windows专家使用,以寻求解决方案。我花了数小时来解决这个问题,并希望与其他人在这个问题上花点时间。但是,谢谢您的提醒。

–丹尼尔·利特尔
18年7月17日在21:01