2015-08-20 226 views
3

爲了在Vim中使用插件編寫C++,Clang_complete。
安裝完成後,會出現此錯誤:如何在VIM中指定Python解釋器版本?

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

你可能不希望(或至少不應該)設置python3作爲默認的Python解釋器VIM,因爲那麼一些(大部分)你的插件就會變得不兼容,如YouCompleteMeclang_complete本身,因爲他們沒有python3支持。那些支持python3讓你決定是否要通過添加到您.vimrc

let g:syntastic_python_python_exec = 'python3' 

解決方案中使用它通常插件::echo has('python')顯示0實際上是告訴你,VIM也許是不python2編譯。因此,首先檢查vim --version的輸出,你應該能夠看到你的編譯器構建的vim所針對的共享庫列表。你看到以下內容嗎? (如蟒蛇2.7):

-L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7 

如果不是(或者,如果你看到兩個-lpython2.x-lpython3.x我建議你從源代碼編譯VIM,特別是將兩者聯繫起來-lpython2.x這並不是說很難從源頭打造VIM。首先確保刪除所有當前的vim的安裝,例如使用​​你會怎麼做:

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

克隆VIM善變

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 

,你可能還需要對rubylua鏈接,如果你想,然後最後運行

make build 
make install 

Here是shell腳本,將自動整個過程爲你。這可能有點矯枉過正,但我​​認爲這是你應該如何處理這個問題,以防止未來的軟件包出現兼容性問題。

+0

感謝您的回答!我重新編譯我的vim 我的問題解決了。 但我有另一個問題,什麼'+ python/dyn + python3/dyn'的意思是, – Kai7

+0

這不是說我可以在vim中使用py或py3命令嗎? (注:我檢查了我原來的vim版本,它實際上沒有'-L/usr/lib/python2.7/config-x86_64-linux-gnu -lpython2.7')。 – Kai7

+0

這意味着vim是動態鏈接的到'python2'和'python3',但沒有專門用python標記編譯或默認選擇'python3'。如果您使用'sudo apt-get install vim'來安裝vim,就會發生這種情況。我可能是錯的,但以這種方式安裝vim可能實際上不顯示編譯器標誌。 – romeric