解决Vim"UltiSnips requires py >= 2.7 or py3"

写在前面

       由于UltiSnips依赖于Python,所以有时候你安装完UltiSnips再重新打开Vim时会弹出一个窗口提示”UltiSnips requires py >= 2.7 or py3”。
       出现这种情况的原因可能有两种,一种是系统虽然有python,但是vim还不能支持python;另一种情况是vim虽然支持python,但是python版本达不到安装UltiSnips的要求。
       由于我使用的阿里云的云服务器centos7,系统中的python本身就是python2.7以上,当我使用vim --version | grep python发现python和python3前面均显示减号(这张图是我弄好了之后截的图,原本两个python前面全是减号)
图片1
为了让vim可以支持python3,我搜索了很多博客,说是要重新编译vim,但是我试了很多次都没有解决我的问题,最后费了大半天劲才弄好,写一篇博客记录我解决的方法。

1.下载最新版vim源码

下载地址.
1.1 在centos7中,使用git下载,

git clone https://github.com/vim/vim ~/vim

1.2 下载完成后,进入vim文件夹下src文件夹

cd ~/vim/src

1.3 找到自己系统中python3的安装路径,并找到lib文件夹,然后在shell中输入以下命令。没有安装python3,可以参考https://www.cnblogs.com/simuhunluo/p/7704765.html

export LDFLAGS='-L/usr/local/python3.6.9/lib -Wl,-rpath,/usr/local/python3.6.9/lib'

注意:由于我的python3不是官方的CPython,lib并不在系统的/usr/lib和/usr/local/lib. 所以要指定.我最开始使用的时候没有加这个命令,导致python3一直装不上。
1.4 vim配置

./configure --with-features=huge --enable-pythoninterp --enable-python3interp  --enable-rubyinterp --with-python3-config-dir=/usr/local/python3.6.9/lib/python3.6/config-3.6m-x86_64-linux-gnu --with-python-config-dir=/usr/lib64/python2.7/config --enable-multibyte --enable-cscope --prefix=/usr/local/vim/
./configure参数参数说明
–with-features=huge支持最大特性
–enable-pythoninterp打开对python编写的插件的支持
–enable-python3interp打开对python3编写的插件的支持
–enable-rubyinterp打开对ruby编写的插件的支持
–with-python3-config-dir指定python3配置文件路径
–with-python-config-dir指定python2配置文件路径
–enable-multibyte打开多字节支持,可以在Vim中输入中文
–enable-cscope打开对cscope的支持
–prefix指定将要安装到的路径(自行创建)

注意: /usr/lib64/python2.7/config/是自己机子的python的安装路径,所以要根据实际情况来指定python的路径,还有要指定到config这个文件夹, 而且config文件下必须要有config.c这个文件, 否则也不会编译成功。如果自带的python2.7的config文件夹中没有config.c,可以使用yum install python-devel命令来生成。

1.5 安装vim

sudo make
sudo make install

执行完毕,没有错误即可。有错误自行查找解决。
输入vim --version|grep python即可看到下图样子
图片2

2 重新安装插件

2.1 先删除ultisnips文件夹

cd ~/.vim/bundle/
rm -rf ultisnips

进入.vimrc文件,输入

:PluginInstall

安装插件即可。
说明:我安装的是python3.6.9, 安装ultisnips后发现使用vim编辑文本的时候有时候还是会报ultisnips出现模块导入的错误。如果能让vim支持python2还是最好,不会再出现导入模块的错误。
文中都是我个人的理解,如有错误的地方欢迎下方评论告诉我,我及时更正,大家共同进步

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值