分类: LINUX
2010-05-19 10:01:49
使用vim + cscope/ctags,就可以实现SourceInsight的功能,以后可以不再用盗版SouceInsight读代码了。
按
照vim里cscope的参考手册(在vim中执行”:help
cscope”命令),把cscope功能加到.vimrc里后(需要你的vim在编译时选择了”–enable-cscope”选项,否则你需要重新编
译vim),配置就算完成了。然后用下面的命令生成代码的符号索引文件:
这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。
其中
cscope.out是基本的符号索引,后两个文件是使用”-q”选项生成的,可以加快cscope的索引速度。
上面所用到的命令参数,含义如
下:
接下来,就可以在vim里读代码了。
不过在使用过程中,发现无法找到C++的类、函数定义、调用关系。仔细阅读了cscope的手册后发
现,原来cscope在产生索引文件时,只搜索类型为C, lex和yacc的文件(后缀名为.c, .h, .l,
.y),C++的文件根本没有生成索引。不过按照手册上的说明,cscope支持c++和Java语言的文件。
于是按照cscope手册上提供的
方法,先产生一个文件列表,然后让cscope为这个列表中的每个文件都生成索引。
为了方便使用,编写了下面的脚本来更新cscope和
ctags的索引文件:
这个脚本,首先使用find命令,查找当前目录及子目录中所有后缀名为”.h”,
“.c”和”.cc”的文件,并把查找结果重定向到文件cscope.files中。
然后cscope根据cscope.files中的所有文
件,生成符号索引文件。
最后一条命令使用ctags命令,生成一个tags文件,在vim中执行”:help
tags”命令查询它的用法。它可以和cscope一起使用。
目前只能在unix系列操作系统下使用cscope,虽然也有windows版本的cscope,不过还有很多bug。在Linux技术中坚站上看
到有作者在win2000上成功运行了gvim + cscope,详情可以参阅:
(2009/04/06更新)网友提供了cscope
15.7的win32编译版本下载,下载地址:
感谢他的辛勤工作,大家有时间去他的项目看看,这个项目
目的是为Linux下的工具提供预编译的windows版本。
在vim的网站上,也有人在cygwin中成功运行了vim + cscope,详情请参阅:
另
外,还有人在windows上安装了XFree86包,然后在Xwindow中运行gvim + cscope。这同样可以在上面的网页中看到。
cscope的主页在:
在vim的网站上,有很多和cscope相关的插件,可以去找一下你有没有所感兴趣的。搜索结果在这里:
另外,我的vim使用 进阶系列文章介绍了vim的更多特性。
原创文章,请阅读页脚的许可方式, 转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]