用vim替代source insight(ctags+taglist+) V im tags 的使用ctag 檔案的製作 不講究的話,可以在所解開的 source code 目錄下,下以下指令:
ctags -R *
這樣會有 source code 目錄下產生一個 tags 這個檔(可以使用 -f 選項來指定檔案名),裡頭就包含了整個 source code 的所有檔案的 tags 資訊,包括其下所有的子目錄下的檔案。ctags 已盡可能的做到聰明掃描檔案的能力,會忽略和程式碼無關的檔案。當然 ctags 還有許多精細的參數可以使用,請 man ctags 。 請注意,ctags 預設會將輸出檔排序,因此不必自行另外去排序。有排序有一個好處,那就是 V im 會去使用 binary search 的方式去搜尋,這樣會比較快。
一般的 tag 使用 如果就照上一節的方式產生 tag files,那麼只要在 source code 目錄下由 vim 去開啟檔案的話,會自動載入 tags 這個檔案,無需另行載入,否則要由 :set tags=your.tags 來指定 tags 檔。然後就是照一般使用 V im 線上說明一樣,遊標移到識別字或函數名上,按 Ctrl+] ,要回到原處就按 Ctrl+T 。 請注意,V im 啟動時,工作目錄(vim 啟動時的所在目錄)名為 tags 的檔案會自動載入,$VIMRUNTIME/doc 及 $HOME/.vim/doc 目錄下的 tags 檔也會自動載入。而且,凡是載入的 tags 檔裡頭所有標誌文字都可以使用補全鍵來補全,別忘了這個好用的功能。 在分類樹中自由使用tag
編輯vim的設定檔案(_vimrc或.vimrc),添加兩行
set tags=tags;
set autochdir
注意第一個命令裡的分號是必不可少的。這個命令讓vim首先在目前的目錄裡尋找tags檔案,如果沒有找到tags檔案,或者沒有找到對應的目標,就到父目錄中尋找,一直向上遞迴。因為tags檔案中記錄的路徑總是相對於tags檔案所在的路徑,所以要使用第二個設定項來改變vim的目前的目錄。 使用這兩個技巧後,就可以在分類樹中自由的瀏覽來源程式了。 讓你的vim能夠查看函數列表(taglist)
圖形介面下的很多編輯軟體都可以列出當前編輯檔案中的函數列表,以便在編輯的時候能夠快速的跳轉。vim雖然沒有直接提供這種功能,但配合適當的工具和設定,可以完美的實現! 首先還是安裝,vim不用裝了,ubuntu中內建,用到的ctags需要自己安裝一下,不要用舊的那個ctags,新的叫Exuberant Ctags ,apt安裝即可:apt-get install exuberant-ctags。 然後按照vim.org上的安裝說明 ,下載taglist_45.zip,解壓到home目錄下的.vim子目錄中: ~/.vim$ unzip /home/fwolf/taglist_45.zip Archive: /home/fwolf/taglist_45.zip inflating: plugin/taglist.vim inflating: doc/taglist.txt 進入$HOME/.vim/doc目錄,開啟VIM 運行“helptags .”命令,注意後面的點不要拉了,這是為了產生ctags協助檔案的索引,然後才能正常使用協助。(原來vi協助中的ctrl+]進入連結、ctrl+T返回也是這麼來的) 現在,再啟動vim,tags功能就可以用了:
大概用法: 在使用vim的時候,使用:Tlist命令切換函數列表的開、關。 按住ctrl鍵然後按兩下w鍵在正常編輯地區和tags地區中切換。 在tags地區中,把游標移動到變數、函數名稱上,然後敲斷行符號,就會自動在正常編輯地區中定位到指定內容了,很方便的。 常用的幾項.vimrc設定: “禁止自動改變當前Vim視窗的大小 let Tlist_Inc_Winwidth=0 “把方法列表放在螢幕的右側 let Tlist_Use_Right_Window=1 “讓當前不被編輯的檔案的方法列表自動摺疊起來, 這樣可以節約一些螢幕空間 let Tlist_File_Fold_Auto_Close=1 |