利用vim+cscope+ctags查看代码

在linux下面总不能得心应手地查看代码,知识好多工具我们不知道怎么去用而已。下面总结一下本人的vim+cscope+ctags环境搭建:

1.vim

(1) 查看vim是否支持cscope

#vim --version |grep cscope

+cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic

如果没有  +cscope ,那么请重新编译vim;否则跳到(3)

(2)编译vim,我用的源码是vim72

#vim vim72/src/Makefile  把

#CONF_OPT_CSCOPE = --enable-cscope 

 改成

CONF_OPT_CSCOPE = --enable-cscope

编译安装的时候用linux的三部曲:

#./configure

#make

#make install

#vim --version |grep cscope

+cryptv +cscope +cursorshape +dialog_con_gui +diff +digraphs +dnd -ebcdic

(3)安装cscope和ctags

a. http://cscope.sourceforge.net/   (cscope源码下载)

 

b. http://ctags.sourceforge.net/  (ctags源码下载)

 

利用linux的安装三部曲安装

 

(4)对.vimrc文件的修改

a.http://cscope.sourceforge.net/   这里有个cscope_map.vim文件,把里面的if has("cscope")  到 endif
复制到.vimrc里面来。 这样做主要是利用快捷键来代替 “cscope find c ***”等命令,很好用的。

b.在.vimrc中添加 set tags=./tags, tags, /usr/include/tags

 

 

(5)应用,理论不多说,仅仅举个例子:

在你源码的目录下面

#find . -name "*.h" -o -name "*.c" -o -name "*.cc" > cscope.files (添加本目录和子目录的源文件)

#find ../common "*.h" -o -name "*.c" -o -name "*.cc" >> cscope.files (添加其他目录的文件)

 

#cscope -bkq -i cscope.files

#ctags -R

 

说明一下:

这个命令会生成三个文件:cscope.out, cscope.in.out, cscope.po.out。

其中cscope.out是基本的符号索引,后两个文件是使用"-q"选项生成的,可以加快cscope的索引速度。

这个脚本,首先使用find命令,查找当前目录及子目录中所有后缀名为".h", ".c"和".c"的文件,并把查找结果重定向到文件cscope.files中。

然后cscope根据cscope.files中的所有文件,生成符号索引文件。

最后一条命令使用ctags命令,生成一个tags文件,在vim中执行":help tags"命令查询它的用法。它可以和cscope一起使用。

上面所用到的命令参数,含义如下:

-R: 在生成索引文件时,搜索子目录树中的代码

-b: 只生成索引文件,不进入cscope的界面

-q: 生成cscope.in.out和cscope.po.out文件,加快cscope的索引速度

-k: 在生成索引文件时,不搜索/usr/include目录

-i: 如果保存文件列表的文件名不是cscope.files时,需要加此选项告诉cscope到哪儿去找源文件列表。可以使用“-”,表示由标准输入获得文件列表。

-I dir: 在-I选项指出的目录中查找头文件

-u: 扫描所有文件,重新生成交叉索引文件

-C: 在搜索时忽略大小写

-P path: 在以相对路径表示的文件前加上的path,这样,你不用切换到你数据库文件所在的目录也可以使用它了。

接着: 

#vim qljt.c  打开文件,然后执行vi命令

:cscope add cscope.out

大功告成,测试:

用 “Ctrl+]” 跳到函数的定义地方,用“Ctrl+/ 然后按c”跳到函数被调用的地方

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值