Cscope具备纯正的Unix血统,它最先是由贝尔实验室为PDP-11计算机开发的,后来成为商用的AT&T Unix发行版的组成部分。直到2000年4月,这个工具才由SCO公司以BSD license开源发行。html
Cscope的主页在http://cscope.sourceforge.net/,若是你的计算机上没有cscope,你能够在此处下载它,在写本文时,它的最新版本是15.8b。mac中能够用homebrew一键安装。正则表达式
一、cscope的用法很简单,首先须要为你的代码生成一个cscope数据库。在你的项目根目录运行:数据库
cscope -Rbqk
二、这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。其中cscope.out是基本的符号索引,后两个文件是使用"-q"选项生成的,能够加快cscope的索引速度。vim
三、在缺省状况下,cscope在生成数据库后就会进入它本身的查询界面,咱们通常不用这个界面,因此使用了"-b"选项。若是你已经进入了这个界面,按CTRL-D退出。函数
四、Cscope在生成数据库中,在你的项目目录中未找到的头文件,会自动到/usr/include目录中查找。若是你想阻止它这样作,使用"-k"选项。工具
五、-R表示索引子目录。R是递归的首字符简写。ui
在vim中使用cscope:spa
一、要在vim中使用cscope的功能,须要在编译vim时选择"+cscope"。vim的cscope接口先会调用cscope的命令行接口,而后分析其输出结果找到匹配处显示给用户。.net
二、在vim中使用cscope很是简单,首先调用"cscope add"命令添加一个cscope数据库,而后就能够调用"cscope find"命令进行查找了。命令行
三、vim支持8种cscope的查询功能,以下:
四、 例如,咱们想在vim 7.0的源代码中查找调用do_cscope()函数的函数,咱们能够输入:":cs find c do_cscope",回车后发现没有找到匹配的功能,可能并无函数调用do_cscope()。咱们再输入":cs find s do_cscope",查找这个C符号出现的位置,如今vim列出了这个符号出现的全部位置。
五、咱们还能够进行字符串查找,它会双引号或单引号括起来的内容中查找。还能够输入一个正则表达式,这相似于egrep程序的功能,但它是在交叉索引数据库中查找,速度要快得多。
六、vim提供了一些选项能够调整它的cscope功能:
七、vim的手册中给出了使用cscope的建议方法,使用命令":help cscope-suggestions"查看。
八、Using Cscope on large projects (example: the Linux kernel):http://cscope.sourceforge.net/large_projects.html
九、the vim+cscope tutorial:http://cscope.sourceforge.net/cscope_vim_tutorial.html
十、cscope提供一组命令,能够在vim里面更换连接,就是能够更换不一样的cscope.out文件。
:cs show //显示当前链接 :cs reset //从新初始化链接 :cs kill {number|partial_name} //终止某个链接
十一、显示一个简短的cscope语法概要。
:cs help
参考:https://blog.easwy.com/archives/advanced-vim-skills-cscope/