1. 程式人生 > >vim程式碼進階 cscope & ctags 簡單上手

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 ) 

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