工学1号馆

home

« | 返回首页 | »

vim:使用cscope

By Wu Yudong on December 29, 2015

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

No comments yet.
To verify that you are human, please fill in "七"(required)