天天看點

taglist用法

1.taglist

注意:taglist依賴于ctags,是以要先裝ctags,否則taglist裝了也沒法用!

(1)将taglist_45.zip解壓得到的兩個檔案夾:doc和plugin 放到 ~/.vim檔案夾裡面,如果主目錄下沒有這個隐藏的檔案夾,就建一個。

(2)

plugin/taglist.vim – taglist插件

doc/taglist.txt - taglist幫助檔案

(3)常用快捷鍵

ctrl+ww    在清單和源檔案中切換

ctrl + ]     檢視函數定義

ctrl + o     傳回上一級檔案。

gf             檢視頭檔案

gd        轉到目前光标所指的局部變量的定義處。

*        轉到目前光标所在單詞的下一次出現的地方。

#        轉到目前光标所在的單詞的上一次出現的地方。

<CR>          跳到光标下tag所定義的位置,用滑鼠輕按兩下此tag功能也一樣   

o             在一個新打開的視窗中顯示光标下tag   

<Space>       顯示光标下tag的原型定義   

u             更新taglist視窗中的tag   

s             更改排序方式,在按名字排序和按出現順序排序間切換  

x             taglist視窗放大和縮小,友善檢視較長的tag    

+             打開一個折疊,同zoctags常用快捷鍵ctags常用快捷鍵   

-             将tag折疊起來,同zc   

*             打開所有的折疊,同zR   

=             将所有tag折疊起來,同zM   

[[            跳到前一個檔案  

]]            跳到後一個檔案 

q             關閉taglist視窗  

taglist 視窗ENTER 

2.ctags

(1)安裝ctags : sudo apt-get install ctags

(2)使用

ctags -R      對目前目錄下的檔案遞歸産生tags檔案。

ctags file.c

(3)在.vimrc檔案中添加配置

:TlistToggle 或 :Tlist     顯示函數清單

在.vimrc檔案中加上鍵盤映射

map <F8> :Tlist<CR>

這樣我就可以使用快捷鍵F8直接進入tlist模式了。這裡注意<F8>和 : 之間有空格的。

在.vimrc下加入一下兩行

set tags=tags;

set autochdir

這樣使用tags時可以首先在目前目錄下查找tags檔案,如果沒有則轉到父目錄查找。依次向上。

檢視幫助檔案

:help helptags

:help taglist.txt

3.cscope

(1)仔細閱讀了cscope的手冊後發現,原來cscope在産生索引檔案時,隻搜尋類型為 C, lex和yacc的檔案(字尾名為.c, .h, .l, .y),

C++的檔案根本沒有生成索引。不過按照手冊上的說明,cscope支援c++和Java語言的檔案。

于是按照cscope手冊上提供的方法,先産生一個檔案清單,然後讓cscope為這個清單中的每個檔案都生成索引。

為了友善使用,編寫了下面的腳本來更新cscope和ctags的索引檔案:

 #!/bin/sh  

find  . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files  

cscope  -bkq -i cscope.files  

ctags  -R     

 -R : 在生成索引檔案時,搜尋子目錄樹中的代碼

 -b : 隻生成索引檔案,不進入cscope的界面

 -k : 在生成索引檔案時,不搜尋 / usr / include目錄

 -q : 生成cscope . in . out和cscope . po . out檔案,加快cscope的索引速度

将這個腳本儲存到/usr/local/bin/cscopes.sh,以後就可以在源代碼目錄下使用sudo bash cscope.sh指令直接生成索引拉!

(2)cscope常用快捷鍵:

先按 ctrl+\ 然後  

c: 查找該函數被調用的位置  

d: 查找該函數調用了哪些函數  

e: 查找指定的正規表達式 f: 查找指定的檔案  

g: 查找指定辨別符的定義位置  

i: 查找該檔案在哪些地方被包含  

s: 查找指定辨別符的使用位置  

t: 查找指定的文本字元串