vim自動補全插件YouCompleteMe

前言python

Valloric/YouCompleteMe能夠說是vim安裝最複雜的插件之一,可是一旦裝好,卻又是很是好用的。YouCompleteMe簡稱ycmlinux

在安裝摺騰的過程當中,我再一次的體會到,除了官網教程,百度上的教程都是辣雞,都是坑!c++

 

安裝準備:git

1.確保已經安裝好build-essential 和 cmake 。ycm是編譯型補全插件,這兩個工具是編譯ycm用的。typescript

sudo apt-get install build-essential cmake

2.確保已經安裝好了python-dev 和 python3-devnpm

sudo apt-get install python-dev python3-dev

3.下載ycmvim

咱們使用vundle插件下載ycm。vundle是管理vim插件的vim插件,安裝很簡單,安裝vundle的教程另附了,你們也能夠自行上網搜索。工具

在vimrc裏增長以下語句,讓ycm添加到vundle的管理列表中:ui

Bundle 'Valloric/YouCompleteMe'
Bunlde 'SirVer/ultisnips'
Bundle 'honza/vim-snippets'

注意!!這裏有2個天坑, 'SirVer/ultisnips' 和 'honza/vim-snippets' 這兩個插件在ycm安裝文檔中沒有說明的!我是去了ultisnips的git上纔看到。若是不安裝,就會在進入vim的時候報OnBufferRead的錯!spa

 

而後在vim裏執行,下載並安裝列表中的插件。固然了,這裏包含了咱們剛增長的ycm。這個過程比較漫長,能夠須要十來分鐘,耐心等待吧。

:BundleInstall

4.編譯ycm

上面的步驟只是把ycm下載下來了,可是尚未編譯。使用以下命令編譯ycm。如下的例子,只添加對C++補全的支持。

cd ~/.vim/bundle/YouCompleteMe
./install.py --clang-completer

 對其餘語言的支持有,你們能夠按需求添加。若是想所有語言都安裝,可使用./install.py --all

C# support: install Mono and add --omnisharp-completer 
Go support: install Go and add --gocode-completer 
TypeScript support: install Node.js and npm then install the TypeScript SDK with npm install -g typescript.
JavaScript support: install Node.js and npm and add --tern-completer 
Rust support: install Rust and add --racer-completer

5.配置工程

若是上面順利的話,你已經完成了ycm的安裝。最後在vimrc中添加以下快捷鍵方便使用。

let g:UltiSnipsExpandTrigger="<tab>"
let g:UltiSnipsJumpForwardTrigger="<c-b>"
let g:UltiSnipsJumpBackwardTrigger="<c-z>"
" If you want :UltiSnipsEdit to split your window.
let g:UltiSnipsEditSplit="vertical"

 

對於每個工程,咱們能夠自定義.ycm_extra_conf.py ,這個文件能夠定義自動補全的各類細節,例如搜索什麼目錄等等,均可以在裏面進行設置。

ycm是依賴clang實現補全的,若是須要c++補全,須要在.ycm_exrea_conf.py文件中添加響應的c++文件路徑。

c++文件路徑詳情能夠經過如下命令查詢

echo |clang -std=c++11 -stdlib=libc++ -v -E -x c++ -

如下是在.ycm_exrea_conf.py添加內容的例子

'-isystem','/usr/local/include',

'-isystem','/usr/lib/gcc/x86_64-linux-gnu/4.8/include',

'-isystem','usr/include/x86_64-linux-gnu',

'-isystem','usr/include',

相關文章
相關標籤/搜索