如何在linux vim中解决"需要python 2.x支持",并且在我的系统中有python 2.6.6

Fir*_*mky 9 python linux vim

[root@localhost bin]# python -V
Python 2.6.6
[root@localhost bin]# ./vim
UltiSnips requires py >= 2.6 or any py3
YouCompleteMe unavailable: requires Vim compiled with  Python 2.x support
Run Code Online (Sandbox Code Playgroud)

我在centos 6.4和fedora 20中尝试过它.这是同样的问题.我是新编码员,我真的不知道为什么会这样.

Hie*_*ieu 18

在Ubuntu/Lubuntu 16.04中,我成功安装了 vim-gnome-py2

sudo apt-get install vim-gnome-py2
Run Code Online (Sandbox Code Playgroud)

vim --version | grep python安装后:

$ vim --version | grep python
+cryptv          +linebreak       +python          +vreplace
+cscope          +lispindent      -python3         +wildignore
Run Code Online (Sandbox Code Playgroud)

您可能需要删除其他软件包,如vim-gnome,vim-gtk,vim-nox...以避免冲突.

  • 正如@neoben指出的,运行`sudo update-alternatives --set vim/usr/bin/vim.gnome-py2`可以代替删除其他冲突的包 (7认同)

小智 17

使用Debian 8,安装vim-nox帮助了我.

apt-get install vim-nox
Run Code Online (Sandbox Code Playgroud)


dyl*_*nmc 12

Neovim?任何人?

设置neovim和ycm

安装

例如,在拱门上 yaourt -S python-neovim

基本上,你需要python支持.

设置neovim

mkdir -p ~/.config/nvim/bundle/Vundle.vim/
cp ~/.vimrc ./init.vim
git clone https://github.com/VundleVim/Vundle.vim.git
git clone 
nvim ~/.config/nvim/init.vim # edit nvim init file (using nvim, **of course** :)
Run Code Online (Sandbox Code Playgroud)

使用vundle管理YCM:

希望你还在你的内心~/.config/nvim/init.vim...添加这些行以添加VundleYou Complete Me(YCM)插件:

set nocompatible
filetype off
set rtp+=~/.config/nvim/bundle/Vundle.vim
call vundle#begin('~/.config/nvim/bundle')
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe'
call vundle#end()
filetype plugin indent on
Run Code Online (Sandbox Code Playgroud)

注意
所有上述行都是必需的(除了Plugin 'vundleVim/Vundle.vim'告诉vundle管理自己的更新).

现在在nvim/vim中运行这些命令,以(1)获取当前文件,(2)使用vundle安装所有插件.

:so %
:PluginInstall
Run Code Online (Sandbox Code Playgroud)

最后一步:编译YCM

我们需要YCM的最后一步.(通常,您不需要使用插件来执行此操作,因为他们将使用vimL或其他东西.但是,YCM需要更快一点的东西,所以我们需要做更多的事情.)

cd ~/.config/nvim/bundle/YouCompleteMe/
python2 install.py
Run Code Online (Sandbox Code Playgroud)

全部完成!
:)

在vim中设置

MEH

如果你坚持,只需将所有vundle的东西放入~/.vim/bundle/其中然后再使用

set nocompatible
filetype off
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin('~/.vim/bundle')
Plugin 'VundleVim/Vundle.vim'
Plugin 'Valloric/YouCompleteMe' " if on arch, I recommend installing vim-youcompleteme-git
call vundle#end()
filetype plugin indent on
Run Code Online (Sandbox Code Playgroud)

你的〜/ .vimrc里面.需要注意的差别set rtp+=call vundle#begin在vim和nvim ......,它们指向不同的目录.


jaz*_*zpi 8

看起来你没有使用Python支持安装vim.

您可以通过运行来检查vim --version.

如果-python在输出中看到一个字符串,则意味着您没有使用Python支持安装它.+python意味着它安装了Python支持.

要解决此问题,请在程序包管理器中找到一个包,该程序包使用Python支持安装它(请参阅其他答案)或下载源代码并使用Python支持进行编译.(运行configure脚本--enable-pythoninterp=yes.如果要启用Python 3支持,请使用--enable-python3interp=yes)


neo*_*ben 5

我解决了安装具有python2解释器支持的vim-gnome-py2的问题

sudo apt-get install vim-gnome-py2
Run Code Online (Sandbox Code Playgroud)

并使用update-alternatives将其作为默认替代方案

sudo update-alternatives --set vim /usr/bin/vim.gnome-py2
Run Code Online (Sandbox Code Playgroud)

安装vim-gnome-py2还不够


rom*_*inl 1

消息中解释了发生的情况:您的 vim 不是使用 python 支持构建的。解决方案也相当明显:安装支持 python 的 vim。

使用你的包管理器安装最大的可用版本,我认为是“vim 增强型”。希望您的包管理器能够处理依赖关系。