將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窗口中,可以使用下面的快捷鍵:
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