Vim自動補全神器YouCompleteMe的配置


簡潔: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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM