Ctags
Ctags用來產生原始碼每一tag(函數名或識別子)所在位置,執行Ctags會產生名為tags的檔案,Vim參考此檔便可知道每一tag的資訊。因此,只要將游標移至函數名或識別子上,按Ctrl+
]就可以跳至函數或識別子定義的地方。如欲返回,則按Ctrl+t即可。
Cscope
使用Cscope可搜尋tag、搜尋哪些地方呼叫某一函數、搜尋某一檔案與利用正規表達式搜尋相關字串等等功能 (在Vim底下按":cs"會秀出Usage Tip)。
範例示範 (Step by Step,假設欲Trace Linux核心原始碼)
1. 至Cscope官網下載cscope_maps.vim,並將之複製到~/.vim/plugin/。如此便能於啟動Vim時,自動載入cscope產生出來的檔案 (cscope.out)。
2. 至/usr/src/linux-source-版本編號,執行ctags與cscope兩個檔案。
- adrian@adrian-desktop:~# cd /usr/src/linux-source-2.6.20
adrian@adrian-desktop:/usr/src/linux-source-2.6.20# ctags -R && cscope -R (ctags產生tags檔,cscope產生cscope.out) --> 如欲離開cscope,按Ctrl+D即可。
3. 隨便編輯一個.c檔,如init/main.c
adrian@adrian-desktop:/usr/src/linux-source-2.6.20# vim init/main.c
假設在init/main.c想要觀看get_option這個識別子定義的地方,將游標移到該識別子上,再按Ctrl+]。如欲知道哪些地方呼叫該識別子,將游標移到該識別子上,按Ctrl+\,再按c即可。Ctrl+\,再按s則搜尋該識別子出現的地方。