`
Michaelmatrix
  • 浏览: 208968 次
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

vim+cscope

 
阅读更多

目前就只能用这个鸟东西了,kscope搞不出来。。。。。

首先在目录下建立cscope索引文件

find -name '*.c' > cscope.file

cscope -Rbkq

这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。
其中cscope.out是基本的符号索引,后两个文件是使用"-q"选项生成的,可以加快cscope的索引速度。
上面所用到的命令参数,含义如下:

-R:在生成索引文件时,搜索子目录树中的代码
-b:只生成索引文件,不进入cscope的界面
-k:在生成索引文件时,不搜索
/usr/include目录
-q:生成cscope
.in.out和cscope.po.out文件,加快cscope的索引速度

接下来,就可以在vim里读代码了。
不过在使用过程中,发现无法找到C++的类、函数定义、调用关系。仔细阅读了cscope的手册后发现,原来cscope在产生索引文件时,只搜索类型为C, lex和yacc的文件(后缀名为.c, .h, .l, .y),C++的文件根本没有生成索引。不过按照手册上的说明,cscope支持c++和Java语言的文件。
于是按照cscope手册上提供的方法,先产生一个文件列表,然后让cscope为这个列表中的每个文件都生成索引。
为了方便使用,编写了下面的脚本来更新cscope和ctags的索引文件:

#!/bin/sh

find.-name"*.h"-o-name"*.c"-o-name"*.cc">cscope.files
cscope-bkq-icscope.files
ctags-R


这个脚本,首先使用find命令,查找当前目录及子目录中所有后缀名为".h", ".c"和".cc"的文件,并把查找结果重定向到文件cscope.files中。
然后cscope根据cscope.files中的所有文件,生成符号索引文件。
最后一条命令使用ctags命令,生成一个tags文件,在vim中执行":help tags"命令查询它的用法。它可以和cscope一起使用。

cs help

find 的选项

0或则S:查找本符号

1或则G:查找本定义

2或则D:查找本函数调用的函数

3或则C:查找调用本函数的函数

4或则T:查找本字符串

6或则E:查找本EGREP模式

7或则F:查找本文件

8或则I:查找包含本文件的文件

热后就可以在vim中使用cscope了,具体使用方法参考

http://vimcdoc.sourceforge.net/doc/if_cscop.html#cscope-intro

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics