將vim 改造成功能強大的IDE系列之二
『外掛程式介紹』
Taglist是vim的一個外掛程式,提供原始碼符號的結構化視圖。
:(直接使用了別人的圖片。在我機器上也差不多~)
『下載和安裝』
1)從http://www.vim.org/scripts/script.php?script_id=273下載安裝包,也可以從http://vim-taglist.sourceforge.net/index.html下載。
2)進入~/.vim目錄,將Taglist安裝包解壓,解壓後會在~/.vim目錄中產生幾個新子目錄,如plugin和doc(安裝其它外掛程式時,可能還會建立autoload等其它目錄)。
3)進入~/.vim/doc目錄,在Vim下運行"helptags ."命令。此步驟是將doc下的協助文檔加入到Vim的說明主題中,這樣我們就可以通過在Vim中運行“help taglist.txt”查看taglist協助。
4)開啟設定檔~/.vimrc,加入以下幾行:
let Tlist_Show_One_File=1 "不同時顯示多個檔案的tag,只顯示當前檔案的 let Tlist_Exit_OnlyWindow=1 "如果taglist視窗是最後一個視窗,則退出vim let Tlist_Ctags_Cmd="/usr/bin/ctags" "將taglist與ctags關聯
到此,安裝已經完成。
『準系統使用方法』
在Vim命令列下運行":Tlist"就可以開啟Taglist視窗,再次運行":Tlist"則關閉。
左右視窗切換Ctrl+ww
在taglist視窗中,可以使用下面的快速鍵:
<CR> 跳到游標下tag所定義的位置,用滑鼠雙擊此tag功能也一樣
o 在一個新開啟的視窗中顯示光線標下tag
<Space> 顯示光線標下tag的原型定義
u 更新taglist視窗中的tag
s 更改排序方式,在按名字排序和按出現順序排序間切換
x taglist視窗放大和縮小,方便查看較長的tag
+ 開啟一個摺疊,同zo
- 將tag摺疊起來,同zc
* 開啟所有的摺疊,同zR
= 將所有tag摺疊起來,同zM
[[ 跳到前一個檔案
]] 跳到後一個檔案
q 關閉taglist視窗
<F1> 顯示協助
但是!這些大部分可以被滑鼠取代!!快速鍵是浮雲~~
提示:
如果滑鼠在Vim 裡面點擊無效,請在~/.vimrc下加入這句話:
set mouse=a " always use mouse
『常用配置選項』
- Tlist_Ctags_Cmd選項用於指定你的Exuberant ctags程式的位置,如果它沒在你PATH變數所定義的路徑中,需要使用此選項設定一下;
-
如果你不想同時顯示多個檔案中的tag,設定Tlist_Show_One_File為1。預設為顯示多個檔案中的tag;
-
設定Tlist_Sort_Type為”name”可以使taglist以tag名字進行排序,預設是按tag在檔案中出現的順序進行排序。按tag出現的範圍(即所屬的namespace或class)排序,已經加入taglist的TODO
List,但尚未支援;
-
如果你在想taglist視窗是最後一個視窗時退出VIM,設定Tlist_Exit_OnlyWindow為1;
-
如果你想taglist視窗出現在右側,設定Tlist_Use_Right_Window為1。預設顯示在左側。
-
在gvim中,如果你想顯示taglist菜單,設定Tlist_Show_Menu為1。你可以使用Tlist_Max_Submenu_Items和Tlist_Max_Tag_Length來控制功能表條目數和所顯示tag名字的長度;
-
預設情況下,在雙擊一個tag時,才會跳到該tag定義的位置,如果你想單擊tag就跳轉,設定Tlist_Use_SingleClick為1;
-
如果你想在啟動VIM後,自動開啟taglist視窗,設定Tlist_Auto_Open為1;
-
如果你希望在選擇了tag後自動關閉taglist視窗,設定Tlist_Close_On_Select為1;
-
當同時顯示多個檔案中的tag時,設定Tlist_File_Fold_Auto_Close為1,可使taglist只顯示當前檔案tag,其它檔案的tag都被摺疊起來。
-
在使用:TlistToggle開啟taglist視窗時,如果希望輸入焦點在taglist視窗中,設定Tlist_GainFocus_On_ToggleOpen為1;
-
如果希望taglist始終解析檔案中的tag,不管taglist視窗有沒有開啟,設定Tlist_Process_File_Always為1;
- Tlist_WinHeight和Tlist_WinWidth可以設定taglist視窗的高度和寬度。Tlist_Use_Horiz_Window為1設定taglist視窗橫向顯示;
使用方法:在~/.vimrc檔案中,用類似上文提到的格式加入要設定的選項。
比如,設定單擊tag就跳到tag定義的位置,就在檔案中加入這句話:
let Tlist_Use_SingleClick=1
『閱讀說明』
1)Vim存在多個設定檔vimrc,比如/etc/vimrc,此檔案影響整個系統的Vim。還有~/.vimrc,此檔案隻影響本使用者的Vim。而且~/.vimrc檔案中的配置會覆蓋/etc/vimrc中的配置。這裡我們只修改~/.vimrc檔案。
2)Vim的外掛程式(plugin)安裝在Vim的runtimepath目錄下,你可以在Vim命令列下運行"set rtp“命令查看。這裡我們選擇安裝在~/.vim目錄,沒有就建立一個。
3)當本文說”在Vim命令列下運行cmdxx命令“時,意思是指在Vim的命令列模式下運行cmdxx命令,即在Vim的正常模式下通過輸入冒號":"進入命令列模式,然後緊接著輸入命令cmdxx。在後文描述中都會省略冒號":"輸入。
4)如果沒有說明“在Vim命令列下運行某命令”,則是在shell中執行該命令。
5)如果命令中間被空白符間隔或有與本文容易混淆的字元,我會用雙引號將命令與本文區分。所以讀者在實際操作時,不要輸入命令最前面和最後面引號。
6)本文關於組合快速鍵的描述,形如a-b形式的快速鍵表示同步選取a鍵和b鍵,而形如"a-b c"形式的快速鍵,則表示先同步選取a鍵和b鍵,然後放開ab鍵,再按下c鍵。
7) 本人使用的系統是Ubunt 11.10 ,Vim版本是Vi IMproved 7.3