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: 查找指定的文本字元串