本節(jié)所用命令的幫助入口:
:help helptags
:help taglist.txt
上篇文章介紹了在vim中如何使用tag文件,本文主要介紹如何使用taglist插件(plugin)。
想必用過SourceInsight的人都記得這樣一個功能:SI能夠把當(dāng)前文件中的宏、全局變量、函數(shù)等tag顯示在Symbol窗口,用鼠標(biāo)點上述tag,就跳到該tag定義的位置;可以按字母序、該tag所屬的類或scope,以及該tag在文件中出現(xiàn)的位置進(jìn)行排序;如果切換到另外一個文件,Symbol窗口更新顯示這個文件中的tag。
在vim中的taglist插件所實現(xiàn)的就是上述類似的功能,有些功能比SI弱,有些功能比SI更強。而且,taglist插件還在不斷完善中!
要使用taglist plugin,必須滿足:
在文章vimrc初步中,我們使用了vim自帶的示例vimrc,這個vimrc中已經(jīng)打開了文件類型檢測功能;在上篇文章中,我們也已用到了Exuberant ctags;system()調(diào)用在一般的vim版本都會支持(suse Linux發(fā)行版中出于安全考慮,關(guān)閉了此功能),所以我們已經(jīng)滿足了這三個條件。
現(xiàn)在我們到http://www.vim.org/scripts/script.php?script_id=273下載最新版本的taglist plugin,目前版本是4.3。
下載后,把該文件在~/.vim/目錄中解壓縮,這會在你的~/.vim/plugin和~/.vim/doc目錄中各放入一個文件:
plugin/taglist.vim – taglist插件
doc/taglist.txt - taglist幫助文件
注:windows用戶需要把這個插件解壓在你的$vim/vimfiles或$HOME/vimfiles目錄。
使用下面的命令生成幫助標(biāo)簽(下面的操作在vim中進(jìn)行):
:helptags ~/.vim/doc
生成幫助標(biāo)簽后,你就可以用下面的命令查看taglist的幫助了:
:help taglist.txt
Taglist提供了相當(dāng)多的功能,我的vimrc中這樣配置(更多配置的可參看/usr/share/vim/vim72/plugin/taglist):
""""""""""""""""""""""""""""""
" Tag list (ctags)
""""""""""""""""""""""""""""""
if MySys() == "windows" "設(shè)定windows系統(tǒng)中ctags程序的位置
let Tlist_Ctags_Cmd = 'ctags'
elseif MySys() == "linux" "設(shè)定linux系統(tǒng)中ctags程序的位置
let Tlist_Ctags_Cmd = '/usr/bin/ctags'
endif
let Tlist_Show_One_File = 1 "不同時顯示多個文件的tag,只顯示當(dāng)前文件的
let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一個窗口,則退出vim
let Tlist_Use_Right_Window = 1 "在右側(cè)窗口中顯示taglist窗口
這樣配置后,當(dāng)你輸入”:TlistOpen“時,顯示如下窗口:
在屏幕右側(cè)出現(xiàn)的就是taglist窗口,你從中可以看到在main.c文件中定義的所有tag:宏、定義、變量、函數(shù)等;你也可以雙擊某個tag,跳到該tag定義的位置;你還可以把某一類的tag折疊起來(使用了vim的折行功能),方便查看,就像上圖中macro和variable那樣。更多的功能,請查看taglist的幫助頁,本文也會介紹一些常用功能。
下面介紹常用的taglist配置選項,你可以根據(jù)自己的習(xí)慣進(jìn)行配置:
在taglist窗口中,可以使用下面的快捷鍵:
<CR> 跳到光標(biāo)下tag所定義的位置,用鼠標(biāo)雙擊此tag功能也一樣
o 在一個新打開的窗口中顯示光標(biāo)下tag
<Space> 顯示光標(biāo)下tag的原型定義
u 更新taglist窗口中的tag
s 更改排序方式,在按名字排序和按出現(xiàn)順序排序間切換
x taglist窗口放大和縮小,方便查看較長的tag
+ 打開一個折疊,同zo
- 將tag折疊起來,同zc
* 打開所有的折疊,同zR
= 將所有tag折疊起來,同zM
[[ 跳到前一個文件
]] 跳到后一個文件
q 關(guān)閉taglist窗口
<F1> 顯示幫助
可以用”:TlistOpen“打開taglist窗口,用”:TlistClose“關(guān)閉taglist窗口?;蛘呤褂?#8221;:TlistToggle“在打開和關(guān)閉間切換。在我的vimrc中定義了下面的映射,使用<F9>鍵就可以打開/關(guān)閉taglist窗口:
map <silent> <F9> :TlistToggle<cr>
Taglist插件還提供了很多命令,你甚至可以用這些命令創(chuàng)建一個taglist的會話,然后在下次進(jìn)入vim時加載此會話。