cscope是Linux世界最流行的源代码交叉索引工具。vim和emacs也都提供有对应的配制文件。

在源代码的最上层目录执行cscope -Rbq,就可在当前目录生成针对c语言的数据库。

-R是递归搜索所有子目录

-b是不进入cscope的命令行

-q是生成加快索引速度的cscope.in.out和cscope.po.out

-k是针对浏览内核代码提供的,即不索引到/usr/include中。因为内核不使用这些头文件。

因为vim会在环境变量CSCOPE_DB不存在的情况下,加载当前目录的数据库。

尽量不要使用环境变量CSCOPE_DB,这是多年使用后的经验。因为当在多个工程间切换,就需要手动

修改变量值,尽管可以通过脚本实现快速切换,由此带来的复杂度,也是得不偿失。

 

所以我所说的最简单的办法就是在含有数据库的当前目录中启动vim,数据库就会被加载。

每个工程的数据库都保存在该工程的最上层目录,这也就避免了多个工程间切换的过程。

当然上面所有都是建立在配制好的vim和cscope环境的基础上的。

如何配制可参考官方提供的详细的中文说明

实际上只有一步,就是下载cscope_maps.vim,放到$HOME/.vim/plugin中,目录不存在就自己创建。

 

$ mkdir -p $HOME/.vim/plugin

 

然后就可以使用该配制文件里定义的快捷键进行索引了。

 

官方定义的快捷键有CTRL-空格,与中文用户常用输入法SCIM和ibus都冲突。

所以我修改了一下,使用CTRL-[,有兴趣的可以试试