一、cscope安装
sudo apt-get install cscope
二、创建cscope数据库
在需要建立cscope索引的源码目录下,运行下面这个命令即可生成cscope索引。
cscope -Rbq
创建数据库的各个参数含义如下:
-R
:递归解析所有的子目录。
-b
:仅构建交叉引用(cross-reference)文件,即数据库,然后退出,而不会进入交互界面。
-q
:通过倒排索引加速符号的查找过程。该选项会导致cscope额外产生cscope.in.out和cscope.po.out两个文件。
而后在当前目录下会产生三个文件,cscope.out
、cscope.in.out
和cscope.po.out
三、上手使用查找操作
需要首先声明的是:cscope命令都以:cscope
(或者简写为:cs
)开头。:
表示这些命令均在vim的一般模式下执行。
1、在当前目录下打开终端,输入vim
,
然后再输入下面命令,以建立与数据库的连接。
:cs add ./cscope.out
当然也可以使用
:cs show
查看是否建立连接。
2、查找
我们建立数据库的目录就是为了方便查找某个函数、变量等,然后跳转到那里。常用参数如下:
s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
g: 查找函数、宏、枚举等定义的位置,类似ctags所提供的功能
d:查找本函数调用的函数
c: 查找调用本函数的函数
t: 查找指定的字符串
e: 查找egrep模式,相当于egrep功能,但查找速度快多了
f: 查找并打开文件,类似vim的find功能 i: 查找包含本文件的文件
比如我们要查找AlgorithmLink_laneDetectCreate
出现的地方,可以用下面这个命令。其中f
是find
缩写。
:cs f s AlgorithmLink_laneDetectCreate
输入数字和回车是因为有多个地方符合条件!
四、一些有用的设置
这里先来解决一个自己的疑惑:vim安装的时候在/ect/vimrc已经可以进行vim的文件配置了,为什么还要~/.vimrc呢?
在目录 /etc/vim/下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录HOME下,都可以自己建立私有的配置文件(仅对这个用户有效),命名为:“.vimrc”。例如,对于当前用户/home/clay目录下,通常已经存在一个.vimrc文件。
1、输入vim ~/.vimrc
,
然后添加如下参数,
set cscopequickfix=s-,c-,d-,i-,t-,e-
这样通过:cs find xxx查找某个符号后,会立即跳转到第一个找到该符号出现的位置。
当然啦,上面手动添加cscope也是比较烦的,可以直接在
~/.vimrc
中加入cs add cscope.out
,自动添加数据库!
2、在使用cscope时,可以输入:cw
来打开quickfix窗口,来显示所有结果出现的位置。
在quickfix窗口切换不同的匹配项,可以输入:cs cn
切换到下一个匹配项,:cs cp
切换到上一个匹配项。
拓展
①、VIM撤销操作:需要从编辑状态用键盘上的Esc键切换到“一般模式”在一般模式中,按下一次字母U
键就可以撤销一次上次的输入。