天天看點

vim c++補全

弄了個vim對c++的補全,主要參考自:

http://vim.wikia.com/wiki/c%2b%2b_code_completion

首先确定vim編輯.cc或者.cpp檔案時目前自動補全函數,在指令模式下輸入

:set omnifunc?

如果得到的結果為:omnifunc=ccomplete#complete,說明有必要進行以下的操作以實作針對c++的自動補全

1

 首先安裝omnicppcomplete,參見:

安裝的過程很簡單,與大多數vim插件一樣,cd到~/.vim/目錄解壓所下載下傳的檔案即可

2在~/.vim/目錄下建立tags子目錄

3建立stdc++

對應的tags:

a)首先下載下傳經高手修改定制的libstdc++頭檔案,可以到這裡下載下傳:

并将其解壓到~/.vim/tags

b) 運作以下指令

4按照步驟3為其他庫建立tags,我選擇了opengl

與 fltk,下面為opengl對應的指令, fltk類似

5修改~/.vimrc檔案

在其中加入以下内容:

注:我自己的.vimrc與上文不太一樣,因為我嫌ctrl與f12離得太遠不好操作,将健映射改為:

nmap <silent> <leader>uc :!ctags -r --c++-kinds=+p

--fields=+ias --extra=+q .<cr>

另外我的.vimrc檔案裡原來還有以下内容:

"上面的映射都是在插入模式下的映射,解釋如下:

"- 如果下拉菜單彈出,回車映射為接受目前所選項目,否則,仍映射為回車;

"- 如果下拉菜單彈出,ctrl-j映射為在下拉菜單中向下翻頁。否則映射為ctrl-x ctrl-o;

"- 如果下拉菜單彈出,ctrl-k映射為在下拉菜單中向上翻頁,否則仍映射為ctrl-k;

"- 如果下拉菜單彈出,ctrl-u映射為ctrl-e,即停止補全,否則,仍映射為ctrl-u;

6檢驗

用vim打開cpp檔案,輸入

std::

将得到std命名空間的所有标示符,按ctrl+n或者ctrl+p選擇

繼續輸入std::vector vi,然後輸入

vi.

vim将自動提示其成員