vim自動補全外掛配置

Sun_Shine_999發表於2018-01-11

一、autocomplpop程式碼(普通變數函式)的自動彈出

(1)下載:http://www.vim.org/scripts/script.php?script_id=1879 
(2)安裝:
   先解壓:unzip vim-autocomplpop.zip
   同其他指令碼外掛的安裝方法一致,將解壓後的檔案autoload,doc,plugin拷貝到~/.vim/ 下的相應目錄裡,重新開啟vim即可使用。

此時:
(1)只有輸入兩個字元,才會提示,並且提示內容沒有顏色
(2)只提示之前出現過的字串,並且不能自動提示結構類。

解決第一個問題:
在vimrc中新增內容:
sudo vim /etc/vim/vimrc

"autocomplpop外掛,一個字母即可補全  
let g:acp_behaviorKeywordLength = 1  
let g:AutoComplPop_MappingDriven = 1  
"color  
hi Pmenu guibg=#444444  
hi PmenuSel ctermfg=7 ctermbg=4 guibg=#555555 guifg=#ffffff  

(2)解決第二個問題我們就需要安裝ctags工具和OmniCppComplete外掛。 ctags是用來對檔案做標記的工具,OmniCppComplete是在c和c++語言範疇內,對上述智慧補全的增強版。

二、 ctags

1、安裝ctags

1) sudo apt-get install ctags 或者
2) 在http://ctags.sourceforge.net/ 下載原始碼包之後,解壓縮生成原始碼目錄
進入原始碼目錄執行./configure & make & make install

2、vim中ctags簡單使用

1)生成tags檔案
在原始碼根目錄下執行ctags -R命令來為程式原始碼生成標籤檔案,其-R選項表示遞迴操作,同時為子目錄也生成標籤檔案,vim利用生成的標籤檔案,可以進行檢索,並在不同的檔案、元素之間來回切換。
也可以用ctags file_name1.c filename2.c filename3.h來產生ctags檔案或者ctags .c .h

2)欄位補全(比如可以提示結構成員,前提還要安裝OmniCppComplete)
為了使得欄位補全有效,在生成tags時需要一些額外的引數,推薦的c++引數主要是:

ctags -R --c++-kinds=+px --fields=+iaS --extra=+q
其中:
選項c++-kinds 用於指定C++語言的 tags記錄型別,  --c-kinds用於指定c語言的,  通用格式是  --{language}-kinds
選項 fileds 用於指定每條標記的擴充套件欄位域
extra 選項用於增加額外的條目:   f表示為每個檔案增加一個條目,  q為每個類增加一個條目

3)指定tags檔案位置
在vim命令列中輸入或者修改.vimrc檔案 set tags=./tags(當前路徑下的tags檔案)

4)跳轉到指定函式
在變數或函式處 ctrl+] 來跳轉到變數或者函式定義的地方。ctrl+t返回到跳轉前的位置。
或者使用命令:tag func_name 來跳轉到變數或者函式定義的地方。
ctags不會生成區域性變數的索引。
:tags會列出查詢/跳轉過程

3、ctags的侷限性
tags檔案只能檢視函式,類或變數的定義,而沒有被呼叫資訊。
如果要知道一個函式在什麼地方被使用,需要使用cscope工具。
新增的tags最好是source code的索引,對於include標頭檔案索引沒有效果

三、c/c++程式碼(類的 . , ->, :: 操作符)的自動補全 OmniCppComplete

配合ctags即可提示類成員:ctags -R –c++-kinds=+px –fields=+iaS –extra=+q

   下載:http://www.vim.org/scripts/script.php?script_id=1520
   安裝:
   先解壓:unzip omnicppcomplete-0.41.zip
   同其他指令碼外掛的安裝方法一致,將解壓後的檔案autoload,doc,after拷貝到~/.vim/ 下的相應目錄裡:

四、taglist

taglist外掛是以vim指令碼的形式存在,因此只需要將其下載下來放到相應的目錄即可。taglist基於ctags才能發揮作用,因此要確保安裝了ctags。

1、安裝taglist

1)從http://vim-taglist.sourceforge.net/index.html 下載taglist安裝包。
2)進入~/.vim目錄,將taglist安裝包解壓,將解壓後的/doc和/plugin目錄複製到.vim目錄下
3)開啟配置檔案~/.vimrc,加入以下兩行:
let Tlist_Show_One_File=1
let Tlist_Exit_OnlyWindow=1
到此安裝已經完成。
在vim命令列下執行:Tlist開啟Taglist視窗,
執行:Tlist或者q關閉Taglist視窗,

我們可以通過ctrl+w快捷鍵或者滑鼠點選在Taglist視窗和編輯區之間切換焦點,在Taglist視窗選選擇某個符號並回車,就可以跳轉到該符號定義的位置。

2、其他一些選項可在~/.vimrc指令碼中新增。

如:
“設定ctags路徑
let Tlist_Ctags_Cmd = ‘/usr/bin/ctags’
“啟動vim後自動開啟taglist視窗
let Tlist_Auto_Open = 1
“不同時顯示多個檔案的tag,僅顯示一個
let Tlist_Show_One_File = 1
“taglist為最後一個視窗時,退出vim
let Tlist_Exit_OnlyWindow = 1
“taglist視窗顯示在右側,預設為左側
let Tlist_Use_Right_Window =1
“設定taglist視窗大小
“let Tlist_WinHeight = 100
let Tlist_WinWidth = 40
“設定taglist開啟關閉的快捷鍵F8
noremap :TlistToggle
“更新ctags標籤檔案快捷鍵設定
noremap :!ctags -R

相關文章