小白兔跳跳跳~~ 用vim看程式的好工具 taglist

taglist是我倒戈vim的重要因素一點也不為過。因為我以前只用joe,vi是FreeBSD預設灌好的。

但是在寫論文模擬時,面對幾十萬行的程式,常要在各檔案間跳來跳去,這時學弟緯哥給我一個推薦就是taglist這個vim plugin

這東西需要ctags的幫忙,透過ctags先建好所有的tag list,然後透過taglist做導覽的工作。所以,安裝好後,你就可以在各程式裡面當小白兔跳來跳去。

哦~ 這個function是做什麼?我跳~~~

哦~ 這變數當初宣告是什麼?我跳~~~

哦~ 這隻程式其他function在哪?我展開 我跳~~~

當初在追802.11的流程時,就這樣跳呀跳的看802.11。後來寫程式,就真的非常的依賴 vim+taglist。

這是他執行時的畫面,左手邊是這檔案的Function 跟一些宣告的變數,右手邊就是一般我們在用的vim,所以在使用的時候,可以看到左邊所在的Function,也可以透過左邊的畫面,透過鍵盤快速的選定要去的地方跳過去。

圖片 6.png

這樣的功能看起來並沒什麼了不起啊?沒錯,重點是接下來要說的兩個最常用的熱鍵:

ctrl + ]

ctrl + T

ctrl+]就是跳到目前游標所在的變數或是函式的宣告,而,ctrl+T則是跳回原來跳出來的點。神奇的地方在他可以跨檔案,甚至跨目錄的切換。端看你當初在做tag時的範圍有多高嘍。所以,我常在看程式的時候,一層層跳到超遠的地方去,然後再一層層跳回來。要是在以前沒這plugin幫忙,我都是要另外再開一個視窗,透過grep去找我要的函式跟變數,通常找一兩層就已經滿頭大汗了。

這麼好用的工具要怎麼安裝呢?這工具是一個plugin,所以不需要將vim重新編譯,所以如果你用的是別人已經架好的站台,也可以輕鬆的使用。先去抓回taglist,網頁在:http://www.vim.org/scripts/script.php?script_id=273

選好合適vim的版本,抓下來是一個zip檔,解開後放家目錄下的 .vim/

基本上這樣就安裝完畢了,不過為了要好使用,通常大家ㄉ建議在做兩個熱鍵,所以,打開家目錄下的 .vimrc 加入下列兩行。

nnoremap <silent> <f6> :TlistToggle<cr>

nnoremap <silent> <f7> :wincmd p<cr>

這兩行意思分別是F6鍵開起左手邊的視窗,F7鍵是在左右視窗中切換。很多人是設定為F12,F11,但因為我用的是Mac,F12,F11都有額外功能,所以我改用F6,F7。

到這邊算是安裝完成,現在只要在你要的程式目錄下,執行:

$~ ctags *

然後,再用vim開啟這目錄下你要的程式,就ok了。就這麼簡單。

1 則留言

  1. 想請教一下

    1. 當使用者重新登入/登出,是否要重新下一次ctags?
    2. 當檔案有變更修改過,或者更新過,是否要重新下一次ctags?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *