如何在VIM中指定Python解释器版本?

时间:2015-08-20 09:22:43

标签: python c++ vim plugins autocomplete

为了在Vim中使用插件编写C ++,Clang_complete 安装后,会发生此错误:

Error detected while processing function <SNR>14_ClangCompleteInit..<SNR>14_initClangCompletePython:
clang_complete: No python support available.
Cannot use clang library
Compile vim with python support to use libclang

但我的vim同时支持python和python3。 +python/dyn +python3/dyn
然后我检查我的python解释器:

:echo has('python')      # output is 0
:echo has('python3')     # output is 1

所以,我认为原因是默认情况下我的vim动态加载python3解释器 我可以更改python解释器吗?或者设置python的默认动态加载版本?

2 个答案:

答案 0 :(得分:2)

您可能不希望(或者至少不应该)将 public boolean delete(int id) { boolean deleted = false; try{ EntityManager em = HibernateSpatialJPA.createEntityManager(); em.getTransaction().begin(); Query query = em.createQuery("delete SavegeojsonEntity s where s.id = :id"); query.setParameter("id", id); int result = query.executeUpdate(); em.getTransaction().commit(); if(result > 0){ deleted = true; } } catch (Exception ex){ ex.printStackTrace(); } return deleted; } 设置为vim的默认python解释器,因为您的某些(大部分)插件将变得不兼容,例如{{1} }和python3本身,因为他们没有YouCompleteMe支持。通常支持clang_complete的插件可让您通过添加到python3

python3

解决方案来决定是否要使用它显示.vimrc的{​​{1}}实际上告诉您vim可能未使用let g:syntastic_python_python_exec = 'python3' 进行编译。因此,首先检查:echo has('python')的输出,您应该能够看到编译器已构建vim的共享库列表。你看到以下了吗? (例如对于python 2.7):

0

如果没有(或者你同时看到python2vim --version我建议你从源代码编译vim,将它专门链接到-L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 。从源代码构建vim并不困难。首先确保删除所有当前的vim安装,例如使用-lpython2.x你要执行的操作:

-lpython3.x

clone vim mercurial

-lpython2.x

然后使用以下标记运行aptitude

sudo apt-get remove --purge vim vim-runtime vim-gnome vim-tiny vim-common vim-gui-common

您可能还想链接hg clone https://code.google.com/p/vim/ cd vim ./configure如果您愿意,最后运行

 ./configure --with-features=huge \
        --enable-cscope \
        --enable-pythoninterp \
        --enable-largefile \
        --with-python-config-dir=/usr/lib/python2.7/config 

Here是shell脚本,它将为您自动完成整个过程。有点矫枉过正,但我​​认为这是你应该如何解决这个问题,以免与未来的软件包出现兼容性问题。

答案 1 :(得分:0)

" .gvimrc

let &pythonthreedll='C:\...\python37.dll'
let &pythonthreehome='C:\...\Python37'

检查:

:py3 print('hello')

VIM应该与Python匹配(我的意思是64位,32位)

windows vim x64 download