日常生活小技巧 -- vim 中 ctags 的安裝和使用

聚優致成發表於2017-08-14

 ctags 主要是用來建立 Vim 可以使用的 tag 索引檔案的。

一、下載安裝

Ubuntu下 執行 sudo apt-get install ctags

二、建立索引檔案

在你想要建立索引檔案的資料夾目錄下執行:

sudo ctags -R *


然後可以發現該目錄下多了一個 tags ,它就是索引檔案


三、設定索引檔案位置

但是 vim 裡現在還不知道 tags 檔案的位置,你需要設定一下。

# vi /root/.vimrc 
//在檔案最後新增 tags 位置
set tags=/home/tarena/project/tags


如果不設定索引檔案位置,然後執行 ctrl+] 則會出現錯誤:

E433: 沒有 tag 檔案
E426: 找不到 tag: XXXXX

四、使用方法

vi -t tagname    跳轉到標籤tagname定義的地方



:ta tagname    跳轉到標籤tagname定義的地方



:tags    檢視到達當前位置所經過的標籤路徑


五、跳轉快捷鍵

ctrl+]    跳轉至游標所在物件定義之處
ctrl+t    返回跳轉前位置

六、其他快捷鍵

ctrl+g  或者 :f    檢視當前檔名和所在行號



shift+8    查詢游標所在處的物件

然後按快鍵鍵 N 向後查詢,按 shift+N 為向前查詢



想了解更多,參看:C語言再學習 -- 常用快捷鍵

七、輔助軟體 taglist

參看:vim外掛taglist的安裝和使用

taglist 提供了原始碼的結構化瀏覽功能,可將原始碼中定義的類、函式、變數等以樹結構顯示,層次關係可一目瞭然,而且於快速定位並檢視。前提是必須要安裝 ctags。

(1)下載

下載:Click on the package to download.

(2)安裝

解壓到 ~/.vim 目錄下

# unzip taglist_46.zip

 

進入doc目錄 開啟 vim 在命令模式下輸入 helptags .


可以看到 doc 資料夾下多了一個 tags


這一步的作用是為了匯入 taglist.txt 這個幫助檔案,那麼後面便可以使用 help taglist.txt 來詳細檢視手冊。

比如現在再開啟 vim,在命令模式下輸入 help taglist.txt,可以看到幫助手冊。



到此安裝完成。

(3)使用

使用 vim 開啟一個檔案,然後在命令模式下輸入 Tlist,可以看到有如下這種介面了。

關閉介面同樣是在命令模式下輸入 Tlist

ctrl+ww    切換左右視窗。

在左側介面選擇要跳轉的函式,回車即可跳轉到右邊的函式對應位置


(4)快捷鍵

taglist視窗中可使用的快捷鍵:

<CR>          跳到游標下tag所定義的位置,用滑鼠雙擊此tag功能也一樣(但要在vimrc檔案中開啟此項功能)
o             在一個新開啟的視窗中顯示游標下tag
<Space>       顯示游標下tag的原型定義
u             更新taglist視窗中的tag
s             更改排序方式,在按名字排序和按出現順序排序間切換
x             taglist視窗放大和縮小,方便檢視較長的tag
+             開啟一個摺疊,同zo
-             將tag摺疊起來,同zc
*             開啟所有的摺疊,同zR
=             將所有tag摺疊起來,同zM
[[            跳到前一個檔案
]]            跳到後一個檔案
q            關閉taglist視窗
<F1>         顯示幫助
其他一些設定選項可在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 <F8> :TlistToggle<CR>

"更新ctags標籤檔案快捷鍵設定
noremap <F6> :!ctags -R<CR>



相關文章