vim代碼進階 cscope & ctags 簡單上手

現在我也是小白,剛入門這是一些簡單的用法,更多高級用法,快捷鍵這些暫時沒測試,先能用起來再說吧。

先說一下這兩個軟件的特點

ctags: 可以搜索到一些函數,變量的定義位置,並且可以快速的跳入跳出,非常方便。

cscope: 功能更強大點,可以搜索到函數的調用可被調用的情況。但是在一些簡單操作上感覺沒有ctags方便。

 

軟件安裝

apt-get install cscope
apt-get install ctags

跳轉到源碼根目錄

先建立cscope索引,再建立 ctags 庫。

cd /work/src

cscope -Rbq
ls -lh cscope.*

ctags -R
ls -lh tags

添加兩個庫到 vim 中

vim ~/.vimrc

在末尾添加如下信息

" cscope 配置 quickfix 窗口 "
set cscopequickfix=s-,c-,d-,i-,t-,e-
" 添加 cscope 索引 "
cs add /work/src/cscope.out /work/src/kernel
" 添加 ctags 庫 "
set tags=/work/src/tags

使用方法:

ctags比較簡單容易上手

在vim命令模式輸入
ts 函數/變量   列出所有的函數和變量的定義和聲明位置。然後輸入序號跳轉到指定的位置。
:ts                  返回索引列表 以及所在的文件名
:tp                 上一個位置
:tn                 下一個位置
Ctrl+]             跳轉到光標所在位置 函數/變量 所在位置
Ctrl+t             返回上一次的位置

cscope比較複雜些

在vim命令模式輸入
:cs find c|d|e|f|g|i|s|t name 

    0或者s  —— 查找這個C符號
    1或者g  —— 查找這個定義
    2或者d  —— 查找被這個函數調用的函數(們)
    3或者c  —— 查找調用這個函數的函數(們)
    4或者t  —— 查找這個字符串
    6或者e  —— 查找這個egrep匹配模式
    7或者f  —— 查找這個文件
    8或者i  —— 查找#include這個文件的文件(們)
    
按下回車後vim會自動跳轉到第一個符合要求的地方, 並且在命令欄顯示有多少符合要求的結果
如果想看其他的結果, 可以用下面的命令打開QuickFix窗口:

:cw

然後通過下面指令慢慢挑選了。
 
:cc                顯示詳細錯誤信息 ( :help :cc )
:cp                跳到上一個錯誤 ( :help :cp )
:cn                跳到下一個錯誤 ( :help :cn )
:cl                列出所有錯誤 ( :help :cl )
:cw                如果有錯誤列表,則打開quickfix窗口 ( :help :cw )
:col               到前一箇舊的錯誤列表 ( :help :col )
:cnew              到後一個較新的錯誤列表 ( :help :cnew ) 

其它高級用法快捷鍵配置,有機會在測試。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章