cscope提供交互式查询语言符号功能,如查询哪些地方使用某个变量或调用某个函数。
cscope已经是Vim的标准特性,默认都有支持,官方网址为http://cscope.sourceforge.net/。
1、在Vim下运行version查看Vim支持哪些特性,前面有前缀符号+的为支持。如果支持cscope(我的机器上的vim是支持的),则直接进入2),否则下载cscope源代码包编译安装。步骤同ctags安装。
2、确定Vim已支持cscope后,将文件http://cscope.sourceforge.net/cscope_maps.vim下载到~/.vim/plugin目录。
到这里,我们就可以开始使用cscope了。
(1)使用cscope需要生成cscope数据库文件。进入项目代码根目录运行命令:
cscope -Rbq -f path/xxx.out
注意:path为项目中的一个存在的文件夹
命令运行后会生成xxx.out文件,即cscope数据库文件。更多用法参考man cscope文档。
(2)进入项目代码根目录,在Vim下运行命令:
cs add path/xxx.out
此命令将cscope数据库载入Vim。
(3)cscope常用快捷键
Ctrl-\ s 查找所有当前光标所在符号出现过位置。
Ctrl-\ c 查找所有调用当前光标所在函数的函数。
按下快捷键查找结束后会在编辑区下方出现查找结果的列表,输入结果编号并回车,就能跳转到该查找结果在源代码中的相应位置。例如,我们将光标移到initial_pool_size变量定义的位置,即17行,然后按下”Ctrl-\ s”组合快捷键。
然后我们输入2,并回车,就能跳转到第2个查找结果。
为了界面更好看,可以把Cscope的查找结果输出到quickfix窗口,需要在~/.vimrc中加入下面这行:
set cscopequickfix=s-,c-,d-,i-,t-,e-
这样,通过快捷键查找某个符号后,会立即跳转到第一个找到的该符号出现的位置。如果你对这次默认跳转的位置不满意,在Vim命令行下运行cw命令,就能在编辑区下面quickfix窗口看到所有查找结果的列表,点击相应列表项就能跳转到相应位置。
Comments