2013年4月15日 星期一

CTags 使用

Trace C Code 的Ctags,
沒辦法誰叫 source insight 這麼貴.(攤手)

要下載pacakge的可以參考這篇文章

CTags man page: 教你怎麼用指令
最常用的就是 ctags -R -f .tags. 在當前目錄以下的所有檔案建立tag

流程就分成兩步,
1. 把所有的想建立tag的 c,h 檔案都path都寫到 .tags, 這個tagfile可以自己命名. 重點是下一部產生的 .tags
2. 用ctags.exe讀取剛剛產生的tagfile,產出ctag format的檔案.
在 Sublime Text 選擇建立rebuild tags, 這樣就可以把source code跟tag建立起來了

1)建立source

# find ./ -path './drviers/iav2' -prune -o -path './drivers/gpu' -prune -o -name "*.[ch]"  -print > tag_source

2)產生 tags 檔, 

sublime text 2 只接受 .tags 的格式,
# ctags -L tag_source -f .tags
=> -L, 讀取含有檔案列表的文字檔
=> -f, 產出 tags 檔案

PS: .tags 檔案要存放在當前工作目錄下,要不然Sublime Text 會找不到

PS:
解釋這裡 find 的用法
-prune ,忽略不看的意思
-path, 跟 -name很類似,但是這個是用來指定目錄路徑
-o , -or 的意思,用來作邏輯表示
-name, 找檔名符合我們的表示
"*.[ch]", 任何是以  '.c' 或 '.h'結尾的檔案
整串組合起來的意思是
find .
=> 找尋當前目錄下所有的檔案,
-path './drivers/iav2 ' -prune -o
-path './drivers/gpu'  -prune -o
=>其中目錄路徑為./drivers/iav2或./drivers/gpu都省略不看
-name "*.[ch]
=>其它的剩餘目錄中如果有檔案結尾是.c或.h的
-print
=>全部列印出來

# find ./ -path './drviers/iav2' -prune -o -path './drivers/gpu' -prune -o -name "*.[ch]"  -print
=> 找尋當前目錄下所有的檔案,其中目錄路徑為./drivers/iav2或./drivers/gpu都省略不看,其它的剩餘目錄中如果有檔案結尾是.c或.h的全部列印出來

1 則留言:

  1. Ctag 的Windows exe 可以從這裡找到
    http://sourceforge.net/projects/ctags/files/ctags/5.8/ctags58.zip/download?use_mirror=nchc

    回覆刪除