vim中taglist使用
2008-08-22 15:44
**:本節所用命令的幫助入口:
:help helptags
:help taglist.txt
想必用過source insight的人都記得這樣乙個功能:si能夠把當前檔案中的巨集、全域性變數、函式等tag顯示在symbol視窗,用滑鼠點上述tag,就跳到該tag定義的位置;可以按字母序、該tag所屬的類或scope,以及該tag在檔案中出現的位置進行排序;如果切換到另外乙個檔案,symbol視窗更新顯示這個檔案中的tag。
在vim中的taglist外掛程式所實現的就是上述類似的功能,有些功能比si弱,有些功能比si更強。而且,taglist外掛程式仍在不斷完善中!
要使用taglist外掛程式,必須滿足:
1. 開啟vim的檔案型別自動檢測功能;
2. 系統中裝了exuberant ctags工具,並且taglist能夠找到此工具(因為taglist需要呼叫它來生成tag檔案);
3. 你的vim支援system()呼叫;
plugin/taglist.vim – taglist外掛程式
doc/taglist.txt - taglist
幫助檔案
注:windows使用者需要把這個外掛程式解壓在你的$vim/vimfiles或$home/vimfiles目錄。
使用下面的命令生成幫助標籤(下面的操作在vim中進行):
:helptags ~/.vim/doc
生成幫助標籤後,你就可以用下面的命令檢視taglist的幫助了:
:help taglist.txt
taglist提供了相當多的功能,我的vimrc中這樣配置:
""""""""""""""""""""""""""""""
" tag list (ctags)
""""""""""""""""""""""""""""""
if mysys() == "windows"
"設定windows系統中ctags程式的位置
let tlist_ctags_cmd = 'ctags'
elseif mysys() == "linux"
"設定windows系統中ctags程式的位置
let tlist_ctags_cmd = '/usr/bin/ctags'
endif
let tlist_show_one_file = 1
"不同時顯示多個檔案的tag,只顯示當前檔案的
let tlist_exit_onlywindow = 1
"如果taglist視窗是最後乙個視窗,則退出vim
let tlist_use_right_window = 1
"在右側視窗中顯示taglist視窗
這樣配置後,當你輸入「:tlistopen」時,顯示如下視窗:
在螢幕右側出現的就是taglist視窗,你從中可以看到在main.c檔案中定義的所有tag:巨集、定義、變數、函式等;你也可以雙擊某個tag,跳到該tag定義的位置;你還可以把某一類的tag摺疊起來(使用了vim的折行功能),方便檢視,就像圖中macro和variable那樣。更多的功能,請檢視taglist的幫助頁,本文也會介紹一些常用功能。
下面介紹常用的taglist配置選項,你可以根據自己的習慣進行配置:
- 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視窗橫向顯示;
在taglist視窗中,可以使用下面的快捷鍵:
跳到游標下tag所定義的位置,用滑鼠雙擊此tag功能也一樣
o 在乙個新開啟的視窗中顯示游標下tag
顯示游標下tag的原型定義
u 更新taglist視窗中的tag
s 更改排序方式,在按名字排序和按出現順序排序間切換
x taglist視窗放大和縮小,方便檢視較長的tag
+ 開啟乙個摺疊,同zo
- 將tag摺疊起來,同zc
* 開啟所有的摺疊,同zr
= 將所有tag摺疊起來,同zm
[[ 跳到前乙個檔案
]] 跳到後乙個檔案
q 關閉taglist視窗
顯示幫助
可以用「:tlistopen」開啟taglist視窗,用「:tlistclose」關閉taglist視窗。或者使用「:tlisttoggle」在開啟和關閉間切換。在我的vimrc中定義了下面的對映,使用「,tl」鍵就可以開啟/關閉taglist視窗:
map tl :tlisttoogle
taglist外掛程式還提供了很多ex命令,你甚至可以用這些命令建立乙個taglist的會話,然後在下次進入vim時載入此會話。
taglist外掛程式還可以與winmanager外掛程式協同使用,這將在下篇文章中介紹。
[參考文件]
1. vim幫助檔案
2. 3. taglist幫助檔案
[尾記]
vim中taglist使用 比較詳細的
vim中taglist使用 本節所用命令的幫助入口 help helptags help taglist.txt 想必用過source insight的人都記得這樣乙個功能 si能夠把當前檔案中的巨集 全域性變數 函式等tag顯示在symbol視窗,用滑鼠點上述tag,就跳到該tag定義的位置 可以...
vim中taglist使用 比較詳細的
本節所用命令的幫助入口 help helptags help taglist.txt 想必用過source insight的人都記得這樣乙個功能 si能夠把當前檔案中的巨集 全域性變數 函式等tag顯示在symbol視窗,用滑鼠點上述tag,就跳到該tag定義的位置 可以按字母序 該tag所屬的類或...
vim中taglist的使用
今天看 突然想起來以前使用的taglist外掛程式,而我這個虛擬機器又沒裝,所以乾脆裝上好了!也花不了多少時間!這個外掛程式大部分的linux 老鳥都會裝,也都用過,所以請老鳥繞道!taglist是基於ctags的乙個vim外掛程式,使用它可以很方便的檢視 在vim 視窗旁以分割視窗形式顯示當前的 ...