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則搜尋該識別子出現的地方。
3 則留言:
vim with ctags is good, I usually use ctrl+] and ctrl+i and ctrl+o to travel backward or forward of each point. :tnext to travel to next point if ctags resolves more than one points.
http://linux.byexamples.com
Hi, Surface:
Thanks for providing the great useful tips. XDD......
有個"網路兼職"機會替自己加薪,增加存款!
給自己一個機會深入瞭解吧!
免費索取在家網路兼職資料 。
http://joe80411.weebly.com/
祝~天天都是有美好的一天˙快樂與您同在
PS:謝謝您的閱讀。如果您不感興趣,很抱歉打擾您!!
張貼留言