cscope Home Page:http://cscope.sourceforge.net/
在vim中,使用Cscope来快速 查找函数的定义,查找函数的原型,很方便。我做简单的主要功能介绍,详细参考官网;
1.安装sudo apt-get install cscope。
首先,让vim支持cscope,在~/.vimrc中加入:
" cscope-related setting "
set cscopequickfix=s-,c-,d-,i-,t-,e-
nmap <C-_>s :cs find s <C-R>=expand("<cword>") <CR><CR>
nmap <C-_>g :cs find g <C-R>=expand("<cword>") <CR><CR>
nmap <C-_>c :cs find c <C-R>=expand("<cword>") <CR><CR>
nmap <C-_>t :cs find t <C-R>=expand("<cword>") <CR><CR>
nmap <C-_>e :cs find e <C-R>=expand("<cword>") <CR><CR>
nmap <C-_>f :cs find f <C-R>=expand("<cfile>") <CR><CR>
nmap <C-_>i :cs find i ^<C-R>=expand("<cfile>") <CR>$<CR>
nmap <C-_>d :cs find d <C-R>=expand("<cword>") <CR><CR>
后面的是快捷键 的设置:ctrl+空格 再按s相当于cs find s以此类推
2.cscope使用
建立cscope使用的索引文 件
在你需要浏览源码的根目录下(如你想用cscope看linux源码)使用下面命令:
#: cscope -Rbkq<回车>
R 表示把所有子目录里的文件也建立索引
b 表示cscope不启动自带的用户界面,而仅仅建立符号数据库
q生成cscope.in.out和cscope.po.out文件,加快 cscope的索引速度
k在生成索引文件时,不搜索/usr/include目录
在源码根目录下打开任意.c文件,使用如下命令:
Ctrl+]将跳到光标所在变量或函数的定义处 Ctrl+T返回
:cs find s ---- 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
:cs find g ---- 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
:cs find d ---- 查找本函数调用的函数
:cs find c ---- 查找调用本函数的函数
:cs find t ---- 查找指定的字符串
:cs find e ---- 查找egrep模式,相当于egrep功能,但查找速度快多了
:cs find f ---- 查找并打开文件,类似vim的find功能
:cs find i ---- 查找包含本文件的文件
命令也可以且按銉来实现:
Ctrl+空格 再按 s 表示:cs find s命令
同理实现cs find + g,d,c,t,e,f,i命令
下列是各键的含义
s --- symbol 符号
g --- globals 全局变量
c --- calls 调用自己的
t --- text 文本引用
e --- egrep 做egrep 搜索
f --- file 打开在光标处的文件
i --- includes 查找include所在光标处文件名的文件
d --- called 查找本函数调用的所有函数实现
打开quick fix窗口 :cw
ctags 查找源码的用法,超级方便
步骤:
1,现在源码目录中运行指令
$ ctags –R * ($ 为Linux系统Shell提示符)
2,用vi进入编辑环境,
Ctrl + ]查找查询
Ctrl + T返回上一步
:tar XX 查找文件XX