我已经安装了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引导问题.)。问题是我不知道是哪一个。
如何在我的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成为首选的选择:
alternatives --install /usr/bin/python python /usr/bin/python3.5 2
alternatives --install /usr/bin/python python /usr/bin/python2.7 1vim (或其中一个插件)仍然使用python2.7,并且我得到了与上面相同的错误。
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jun 2 2016 10:02:17)
Included patches: 1-1868
Modified by <bugzilla@redhat.com>
Compiled by <bugzilla@redhat.com>
Huge version without GUI. 发布于 2016-08-28 09:10:08
问题是,只要在if-语句中执行has('python'),就会导致python3在使用python/dyn和python 3/dyn编译python3时不可用。最简单的解决方案可能只是添加以下内容
if exists('py2') && has('python')
elseif has('python3')
endif在Vundle加载任何东西之前,发送到您的.vimrc。然后,如果您需要使用python 2,则可以使用vim --cmd 'let py2 = 1'启动vim。
或者,我查看了您的插件,并设法找到了在has('python')之前执行has('python3')的3个插件:
elseif !has( 'python3' ) && !has( 'python' )。g:_uspy来强制使用某个版本。所以,要么将g:_uspy = ':py3'放在.vimrc中的Vundle之前,要么在pymode.vim中编辑if-语句。当然,如果您这样做的话,您只需要修复加载的第一个。
发布于 2017-02-02 09:33:30
假设你安装了python 3..。
与其运行:python,不如使用:python3或:py3
在Vim中尝试这段代码,它将在python 3中运行。
:python3 print("Hello world")欲了解更多信息:
:help python3https://unix.stackexchange.com/questions/305415
复制相似问题