法1 使用mlcscope
html
vim当中默认使用cs或者cscope命令java
可是cygwin当中的cscope不是使用cscope调用的,而是mlcscopelinux
因此查看本地是否有mlcscope,若有则作软连接数据库
ls /usr/bin/mlcscopevim
ln -s /usr/bin/mlcscope /usr/bin/cscopewindows
ls /usr/bin/cscope(若是没有则在Cygwin安装管理器中安装 vim cscope ctags,再作软连接)svn
cygwin上使用vim+cscope+ctags阅读源码
From: http://blog.csdn.net/linwhwylb/article/details/6526637
函数
1.须要安装的东西学习
vimui
cscope
ctags
在cygwin更新管理中输入上面三个关键词进行搜索便可。
vim当中默认是使用cs或者cscope命令的,可是cygwin当中的cscope不是使用cscope调用的,而是mlcscope。
建立一个软链接便可。
$ ln -s /usr/bin/mlcscope /usr/bin/cscope
进入到源码的目录,执行下面的命令
$ cscope
$ ctags *
生成cscope.out以及tags文件,进入vim,而后执行:cs add cscope.out便可,接下来就可使用:cs find g 符号
之类的命令进行符号定义搜索了。Ctrl + T返回,Ctrl + ]跳转到目标定义处。
From: http://www.vimer.cn/2009/10/%E5%9C%A8vimgvim%E4%B8%AD%E4%BD%BF%E7%94%A8cscope.html
不支持的话要从新编译vim,加上支持选项:
--enable-cscope
下载cscope:
最后把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优先扫描。
Tips:
1 windows下的cscope须要设置TMPDIR的环境变量,不然不能cscope -b
2 cscope.files尽可能用find生成,应该我的需求不一样,譬如.svn不索引,.cxx不索引等等
3 若是生成了cscope.out 可是在其余目录中直接cs add,会不能jump。
解决方法是加上pre-dir
cscope add PATH1/cscope.out PATH2
其中PATH1是cscope.out的pathPATH2是当前目录下能够正确jump到索引处的pre-path
进入到源码的目录
cscope -Rbq
生成cscope.out以及tags文件 cscope.out, cscope.in.out, cscope.po.out
其中cscope.out是基本的符号索引
后两个文件是使用”-q“选项生成的,能够加快cscope的索引速度。
进入vim,而后执行:cs add cscope.out
接下来就可使用cscope
cscope add 'PATH' (注意 PATH要加引号 不然在vimrc中可能会报错)
同时能够在vimrc中设立键位绑定
cscope的经常使用选项:
-R: 在生成索引文件时,搜索子目录树中的代码(递归搜索)
-b: 只生成索引文件,不进入cscope的界面
-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度
-k: 在生成索引文件时,不搜索/usr/include目录
-i: 若是保存文件列表的文件名不是cscope.files时,须要加此选项告诉cscope到哪儿去找源文件列表。可使用”-“,表示由标准输入得到文件列表。
-Idir: 在-I选项指出的目录中查找头文件
-u: 扫描全部文件,从新生成交叉索引文件
-C: 在搜索时忽略大小写
-Ppath: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可使用它了。