在Fedora 24中的vim上启用python3

牧师

我已经安装了vim,并使用进行了配置+python3/dyn如果我跑步,vim --noplugin我可以使用py3但是,启用我的插件后,出现以下错误:

E837: This Vim cannot execute :py3 after using :python
E263: Sorry, this command is disabled, the Python library could not be loaded.

我怀疑其中一个插件加载了python2,因此定义了正在使用的python版本(类似于此vim-bootstrap问题)。问题是我不知道哪个。

我如何在我的vim版本中使用python3?


已安装柱塞

Vundle安装了以下插件:

 60 " let Vundle manage Vundle, required
 61 Plugin 'gmarik/Vundle.vim'
 62 "Bundle 'Valloric/YouCompleteMe'
 63 Plugin 'tmhedberg/SimpylFold'
 64 Plugin 'vim-scripts/indentpython.vim'
 65 Plugin 'scrooloose/syntastic'
 66 Plugin 'scrooloose/nerdtree'
 67 Plugin 'jistr/vim-nerdtree-tabs'
 68 Plugin 'kien/ctrlp.vim'
 69 Plugin 'tpope/vim-fugitive'
 70 Plugin 'nvie/vim-flake8'
 71 "Plugin 'Lokaltog/powerline', {'rtp': 'powerline/bindings/vim/'}
 72 Plugin 'vim-airline/vim-airline'
 73 Plugin 'vim-airline/vim-airline-themes'
 74 Bundle 'klen/python-mode'
 75 Plugin 'jmcantrell/vim-virtualenv'

尝试将Python3设置为默认/首选版本

我试图通过运行以下命令使python3成为首选:

alternatives --install /usr/bin/python python /usr/bin/python3.5 2
alternatives --install /usr/bin/python python /usr/bin/python2.7 1

vim(或其中一个插件)仍然使用python2.7,并且出现与上述相同的错误。

我的vim版本

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jun  2 2016 10:02:17)
Included patches: 1-1868
Modified by <[email protected]>
Compiled by <[email protected]>
Huge version without GUI. 
乔什·布罗布斯特(Josh Brobst)

问题是,仅has('python')当在if-语句中执行时,当使用python / dyn和python3 / dyn编译vim时,python3不可用。最简单的解决方案可能就是添加类似

if exists('py2') && has('python')
elseif has('python3')
endif

在Vundle加载任何内容之前,将其添加到您的.vimrc。然后,如果您需要使用python 2,则可以使用来启动vim vim --cmd 'let py2 = 1'

另外,我浏览了您的插件,并设法找到了3个has('python')之前做过的插件has('python3')

  1. YouCompleteMe:我知道您已经对此进行了注释,但这是我偶然发现此问题的方式,因此可能会导致此处出现其他人。在YouCompleteMe线36 /插件/ youcompleteme.vim,化妆python3 GET检查第一:elseif !has( 'python3' ) && !has( 'python' )

  2. python-mode:如果您在python-mode / plugin / pymode.vim中查看,在第275行附近有“具有” if语句,您会注意到实际上可以设置一个全局变量g:_uspy来强制使用某个版本。因此,可以将g:_uspy = ':py3'.vimrc放在Vundle的内容之前,也可以在pymode.vim中编辑if语句。

  3. vim-virtualenv:与YCM一样,颠倒vim-virtualenv / plugin / virtualenv.vim第10行上if语句的条件。

当然,如果您这样做,实际上只需要修复已加载的第一个即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章