簡潔:YouCompleteMe號稱Vim的自動補全神器,該項目在github的地址:YouCompleteMe;以下在Ubuntu14.04平台配置完成
插件安裝操作:
1、確保Vim版本至少是7.4.273,並且支持python2腳本;vim版本升級:sudo add-apt-repository ppa:fcwu-tw/ppa; sudo apt-get update; sudo apt-get install vim
操作系統字符編碼必須設置為UTF-8
:
查詢語系命令:locale
在Ubuntu14.04中修改語系的方法:
打開文件/etc/default/locale
,修改變量LANG:
中文:LANG="zh_CN.UTF-8"
英文:LANG="en_US.UTF-8"
在CentOS7.0中修改語系的命令行方法:
修改為中文:localectl set-locale LANG=zh_CN.utf8
修改為英文:localectl set-locale LANG=en_US.UTF-8
或者打開文件/etc/locale.conf
修改LANG=zh_CN.utf8
修改后重啟即可
2、下載最新版的libclang。Clang是一個開源編譯器,能夠編譯C/C++/Objective-C/Objective-C++。Clang提供的libclang庫是用於驅動YCM對這些語言的語義補全支持。YCM需要版本至少為3.6的libclang,但是理論上3.2+版本也行。也可以使用系統libclang,如果確定是3.3版本或者更高。sudo apt-get install libclang-dev
;首先要確保你已經安裝類cmake。如果沒有,請按如下安裝:sudo apt-get install cmake
;其次需要確保你有一些 Python 頭文件。如果沒有,請按如下安裝:sudo apt-get install python-dev
3、編譯YCM需要的ycm_support_libs庫。YCM的C++引擎通過這些庫來獲取更快的補全速度。需要cmake,如果未安裝,安裝之:sudo apt-get install build-essential cmake(也可以下載安裝http://www.cmake.org/cmake/resources/software.html)。確保python頭文件已安裝:sudo apt-get install python-dev
。
4、假設你已經通過Vundle裝好YCM了,那么它應該位於~/.vim/bundle/YouCompleteMe
;如果~/.vim/沒有bundle文件夾,執行命令:git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
。
5、手動安裝YouCompleteMe。切換至 ~/.vim/bundle
手動下載YouCompleteMe,輸入如下命令:git clone https://github.com/Valloric/YouCompleteMe.git
; 手動下載完后檢查倉庫的完整性,切換到 YouCompleteMe 目錄下,輸入如下命令:git submodule update --init --recursive
6、編譯YCM,如果需要對C-family的語義支持: cd ~/.vim/bundle/YouCompleteMe; ./install.sh --clang-completer
;如果不需要對C-family的語義支持:cd ~/.vim/bundle/YouCompleteMe; ./install.sh
;如果需要支持C#,添加 --omnisharp-complete。如果需要支持Go添加--gocode-completer
編譯clang+llvm時內存要大於1.5G,否則會報錯: g++: internal compiler error: Killed (program cc1plus) Please submit a full bug report
主要原因大體上是因為內存不足,臨時使用交換分區來解決:
sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile
編譯完成后釋放交換空間:
sudo swapoff /swapfile
sudo rm /swapfile
7、接着再次打開 .vimrc 配置YCM,添加內容如下:
filetype off " required!
set rtp+=~/.vim/bundle/vundle/
call vundle#rc()
Plugin 'Valloric/YouCompleteMe'
filetype plugin indent on " required!
let g:ycm_global_ycm_extra_conf='~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py'
8、為了補全,我們還需要在 .ycm_extra_conf.py 文件中進行配置,vim ~/.vim/bundle/YouCompleteMe/third_party/ycmd/cpp/ycm/.ycm_extra_conf.py
;添加信息如下:
'-isystem',
'/usr/include',
'-isystem',
'/usr/include/c++/4.8.4',
'-isystem',
'/usr/include/c++/4.9.2',
'-isystem',
'/usr/include',
'/usr/include/x86_64-linux-gnu/c++',
實際上以上是vim自動補全時搜索路徑,如果自動補全的內容位於/usr/local/include
里面,則添加以下信息:
'-isystem',
'/usr/local/include',
根據實際的/usr/include/c++/
中的文件夾名稱(即C++版本號)修改:
'-isystem',
'/usr/include/c++/4.8.4',
'-isystem',
'/usr/include/c++/4.9.2',
添加結果如下:
下載並安裝ctags,下載地址:http://ctags.sourceforge.net/
完工。
如果遇到Error detected while processing function <SNR>20_ActivateBuffer
這種錯誤,請打開vim ~/.vim/plugin/bufexplorer.vim
將第95行注釋掉。
參考:
http://blog.csdn.net/yangkuanqaz85988/article/details/48886367
http://www.linuxidc.com/Linux/2015-07/120352.htm
http://blog.jobbole.com/58978/