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

由于UltiSnips依赖于Python,所以有时候你安装完UltiSnips再重新打开Vim时会弹出一个窗口提示”UltiSnips requires py >= 2.7 or py3”,出现这种情况的原因主要有两种,一种是Vim本身不支持Python,这种情况下你需要重新编译Vim打开对Python的支持,一般来说你从包管理器和官网获取的Vim都是支持Python,另外一种情况就是Vim使用的Python版本和你系统安装的Python版本不匹配,这也是本文的重点,这种情况多发生在Windows上,因为Linux上你从包管理器中安装的Vim和Python是严格匹配的,而在Windows上即使你是从官网下载的Vim而且有+python/dyn和+python3/dyn仍然可能提示你”UltiSnips requires py >= 2.7 or py3”,原因就是你安装的Python和Vim不匹配,因为Windows下Vim只有32位而Python既有32位也有64位,当你安装的是64位的Python时就会出现上面的情况。下面介绍两种解决方案

使用vim-snipmate替代UltiSnips

vim-snipmate和UltiSnips一样能提供代码片段补全功能,而且它们也都依赖于vim-snippets提供的代码片段。相较于UltiSnips,它不需要Python的支持,安装完成以后直接就能通过就能进行补全,不过它依赖于vim-addon-mw-utilstlib
如果你使用的是Vundle管理器,可以在vimrc中写入

Plugin ‘MarcWeber/vim-addon-mw-utils’
Plugin ‘tomtom/tlib_vim’
Plugin ‘garbas/vim-snipmate’

保存并退出后,重新打开Vim并执行:PluginInstall
如果你使用的是Pathogen,依次执行下列指令即可

% cd ~/.vim/bundle
% git clone https://github.com/tomtom/tlib_vim.git
% git clone https://github.com/MarcWeber/vim-addon-mw-utils.git
% git clone https://github.com/garbas/vim-snipmate.git

更换Python版本

就像上面提到的Vim和Python版本必须严格匹配,因此卸载掉64位的Python然后重新安装32位的就可以了,这里推荐使用Python2,因为vim-autoformatYouCompleteMe都是在Python2下工作得比较正常,这样就又能继续在ycm的补全中调用UltiSnips了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值