發(fā)信人: neman (行勝于言), 信區(qū): VIM
標 題: Ctags with Vim 發(fā)信站: BBS 水木清華站 (Mon May 24 08:42:57 2004), 站內(nèi) usage: $ctags [-R] inc_dir/*.h include_dir/*.hpp src_dir/*.c example: $ ctags -R `find . -name "*.c"` `find . -name "*.h"` su; cd /usr/include; ctags --c-types=+p+x -sort -R 生成非常完整,巨大而有序的tags 各用戶在 ~/.vimrc中添加set tags= ./tags, tags, /usr/include/tags即可使用
[注1]+p開關(guān)會跳到變量聲明的地方而不是它的實現(xiàn),所以還是采用缺省值, 不要--c-types這個選項,或者只要+x(推薦),其它無所謂。 還有/usr/include并不是/usr/src/linux/include的一個符號鏈接, 所以如果是看內(nèi)核中一些變量的定義的話應(yīng)該到/usr/src/linux上面用ctags ctags瀏覽代碼 (有的命令說明可能不準確)
:set tags=/Dir/tags 設(shè)置需要的tags文件, 可以多個:set tags=/dir1/tags, /dir2/tags :tag xxx 轉(zhuǎn)到滿足查找代碼的定義處,簡寫為 :ta xxx :tag /^xxx 轉(zhuǎn)到以xxx為起始的tag處 other find tags :stag/ptag/ts/tj/pts/ptj /<pat> :tag /xxx 列出所有包含xxx的tag :tag 轉(zhuǎn)到前一個瀏覽過的tag處 vi -t xxx 直接定位到xxx的定義處 :tn / :tp 轉(zhuǎn)到下/上一個tag代碼處,可以使用:5tn的形式 :tr / :tl 轉(zhuǎn)到首/尾tag代碼處 <C-]>, <C-左鍵> 轉(zhuǎn)到光標所在函數(shù)或者變量的定義處 g+左鍵 (GUI) [注2] <C-T>, <C-右鍵> 回到跳轉(zhuǎn)前的代碼處(適用于任何跳轉(zhuǎn)) g+右鍵 (GUI) :tags 列出當(dāng)前tag棧的內(nèi)容 :ts xxx 列出所有匹配的代碼及其所屬文件,并提供選擇瀏覽 :sts xxx 列出匹配處提供選擇在新窗口中打開文件 :tj xxx 類似 :ts xxx,當(dāng)只有一個匹配時直接轉(zhuǎn)到代碼處 g] 與 :ts xxx 功能相同(tag為光標下的標識符) <C-w> g] 等價于 :sts xxx g <C-]> 等價于 :tj xxx :pt? xxx 提供上述命令(?為j,s)的預(yù)覽功能,退出窗口 :q! :t?! xxx 當(dāng)前文件的修改被丟棄轉(zhuǎn)到目標文件中 <C-w> } 在預(yù)覽窗口中顯示當(dāng)前光標下的tag :ptl / ptf / ptn /ptp 類似于 tl,tf,tn,tp :che 察看沒有找到的頭文件(checkpath) makeprg :set makeprg=gcc\ yourfile.c 為在線編譯設(shè)置 :make 在線編譯 :cn / :cN 移動到編譯的 下/上 一個error處 :stag xxx 查找xxx的聲明處并在新窗口中打開 :ta {ident} 跳轉(zhuǎn)到標識符定義處 gd 跳轉(zhuǎn)到局部標識符定義處 [注2] Ctrl-]碰巧是telnet的終端符,如果遠程編輯文件可能會遇到一些問題,
請參考在線幫助:h ^]。多數(shù)telnet都允許使用命令telnet -E hostname來打開 或關(guān)閉該脫字符,或者用telnet -e escape hostname來指定另外一個脫字符 來代替^],請man telnet參看-E -e的幫助。 --
祝所有我關(guān)心的人 幸福 快樂
祝所有關(guān)心我的人 快樂 幸福 當(dāng)回首往事時,后悔沒有去做的事總比后悔做了的事情多 ※ 來源:·BBS 水木清華站 smth.org·[FROM: 166.111.68.*] |
|