vim+cscope简易教程

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的查询功能,以下:

  • s: 查找C语言符号,即查找函数名、宏、枚举值等出现的地方
  • g: 查找函数、宏、枚举等定义的位置,相似ctags所提供的功能
  • d: 查找本函数调用的函数
  • c: 查找调用本函数的函数
  • t: 查找指定的字符串
  • e: 查找egrep模式,至关于egrep功能,但查找速度快多了
  • f: 查找并打开文件,相似vim的find功能
  • i: 查找包含本文件的文件

四、 例如,咱们想在vim 7.0的源代码中查找调用do_cscope()函数的函数,咱们能够输入:":cs find c do_cscope",回车后发现没有找到匹配的功能,可能并无函数调用do_cscope()。咱们再输入":cs find s do_cscope",查找这个C符号出现的位置,如今vim列出了这个符号出现的全部位置。

五、咱们还能够进行字符串查找,它会双引号或单引号括起来的内容中查找。还能够输入一个正则表达式,这相似于egrep程序的功能,但它是在交叉索引数据库中查找,速度要快得多。

六、vim提供了一些选项能够调整它的cscope功能:

  • cscopeprg选项用于设置cscope程序的位置。
  • cscopequickfix设定是否使用quickfix窗口来显示cscope的结果,详情请":help cscopequickfix";
  • 若是你想vim同时搜索tag文件以及cscope数据库,设置cscopetag选项;
  • cscopetagorder选项决定是先查找tag文件仍是先查找cscope数据库。设置为0则先查找cscope数据库,设置为1先查找tag文件。我一般设置为1,由于在tag文件中查找到的结果,会把最佳匹配列在第一位。

七、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/

相关文章
相关标签/搜索