之前已经详细的介绍了在vim中使用ctags,这篇文章我们就来详细介绍一下如何在vim中使用cscope。
首先,我们还是了解一下什么是cscope。简单来讲,cscope主要用来协助浏览C/C++语言,他的功能要强大于ctags,不仅支持变量/函数的定义查询,还记录了函数的调用处查询等功能,所以也有说法称cscope的诞生就是为了取代ctags。无论这个说法是否有据可依,对使用方来说,当然是希望功能越强大方便越好啦,所以这也是我们为什么讲ctags和cscope都装上的原因啦。
第二,我们来说一下vim的支持。cscope没有ctags那么幸运,cscope在大部分的linux下的vim中是没有提供支持的(但是在windows下的gvim都提供了支持),所以,如果你打算要在linux下面使用vim+cscope,那么1,你要下载安装cscope。2,你要重新编译vim,加上支持选项:
--enable-cscope
当然,cscope也提供了windows版(否则windows下gvim怎么和cscope搭配嘛……),分别下载地址如下:
cscope(linux):http://cscope.sourceforge.net/
cscope(windows):http://sourceforge.net/projects/mslk/files/
当然,安装的最后一步就是,不要忘记讲cscope放进的环境变量里!
第三,好了,假设你已经搭建好了vim+cscope的环境,那么现在就是我们学习怎么用的时候了
调用这个函数就可以用cscope生成数据库,并添加到vim中,具体每个命令意义如下:
上面的函数,通过操作系统的不同,用不同的命令实现,将当前目录的源码文件导入到一个叫做cscope.files的文件中。这个文件是cscope用来生成数据库时的默认存储文件列表的文件。
不理解dir命令?看看这篇文章吧
http://hi.baidu.com/moodmusic/blog/item/888856ed309605d7b21cb141.html
这个命令就是csope在生成数据库,你会发现生成了一个cscope.out的文件,这个就是生成数据库,实际上如果加上参数-q来加快索引速度的话,还会生成cscope.in.out, cscope.po.out这两个文件,各个参数意义如下:
-b : 默认情况下,cscope在生成数据库后,会进入cscope自己的界面,我们在vim中使用他,当然不希望有这样的界面,就可以用-b来屏蔽掉。
最后这一步,就是在vim中添加了cscope.out这个数据库。
下面列出cscope的常用生成数据库选项:
好了,到了这里,cscope的原理大家应该都清楚了,那么在vim中怎么使用呢?
但是谁也不想敲这么多命令吧,所以我在vimrc中建了这样一个映射:
实际上就是参考 cscope_maps.vim 这个文件,大家可以去下载他,然后直接放到plugin目录就行。
最后,我们来说一下cscope和ctags的兼容问题。我在vimrc中配置了一段代码:
官方解释如下:
http://vimcdoc.sourceforge.net/doc/if_cscop.html
简单来说,主要功能就是同时搜索ctags和cscope的标签,并且cscope优先扫描。
好啦,在vim(gvim)中使用cscope的介绍就到这里啦,有兴趣的朋友可以赶紧试一下啦~~
转载自Vimer的程序世界 [ http://www.vimer.cn ]
原文链接地址: http://www.vimer.cn/2009/10/%e5%9c%a8vimgvim%e4%b8%ad%e4%bd%bf%e7%94%a8cscope.html