您的位置:技术中心首页 > 工具学习 >> Vim + Cscope/Ctags

Vim + Cscope/Ctags

作者:未知   时间:2006-09-06 19:35:08  来自:网上转载  浏览次数:180  文字大小:【】【】【
使用vim + cscope/ctags,就可以实现SourceInsight的功能,以后可以不再用盗版SouceInsight读代码了。
按照vim里cscope的参考手册(在vim中执行":help cscope"命令),把cscope功能加到.vimrc里后(需要你的vim在编译时选择了"--enable-cscope"选项,否则你需要重新编译vim),配置就算完成了。然后用下面的命令生成代码的符号索引文件:

    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 -i cscope.files
ctags -R


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

目前只能在unix系列操作系统下使用cscope,虽然也有windows版本的cscope,不过还有很多bug。在Linux技术中坚站上看到有作者在win2000上成功运行了gvim + cscope,详情可以参阅:
  http://www.chinalinuxpub.com/bbs/showthread.php?t=30185

在vim的网站上,也有人在cygwin中成功运行了vim + cscope,详情请参阅:
  http://vim.sourceforge.net/tips/tip.php?tip_id=338
另外,还有人在windows上安装了XFree86包,然后在Xwindow中运行gvim + cscope。这同样可以在上面的网页中看到。

cscope的主页在:http://cscope.sourceforge.net/

在vim的网站上,有很多和cscope相关的插件,可以去找一下你有没有所感兴趣的。搜索结果在这里:
  点这里
责任编辑:5life

更多相关 vim linux cscope ctags 的文章

Linux 文件和目录的属性 [2006-09-08]
Vim 实用技术 -- 第三部分: 定制 Vim [2006-09-06]
Vim 实用技术 -- 第二部分: 常用插件 [2006-09-06]
Vimdiff 使用 [2006-09-06]
Linux 引导过程内幕 [2006-09-06]
Vim 实用技术 -- 第一部分:实用技巧 [2006-09-06]
史上最强的Vim 配置文件(修正版) [2006-09-06]
LINUX系统目录详解 [2006-09-06]
打造完美Linux操作系统:实用小窍门 [2006-09-06]
Linux下Makefile的automake生成全攻略 [2006-09-06]
Linux下C开发工具介绍 [2006-09-06]
本文共有0条评论,现在显示最新的5条。

栏目导航

电路基础
硬件语言
逻辑验证
电路综合
后端设计
可测设计
基本逻辑
制造工艺
书籍精选
说文解字
工具学习
数字滤波
趣闻逸事
数字锁相
设计杂项
低耗设计

站点最新

更多相关链接

  GNU make v3.80完整版中...
  Linux 文件和目录的属性
  Vim 实用技术 -- 第三部...
  Vim 实用技术 -- 第二部...
  Vimdiff 使用
  Linux 引导过程内幕
  Vim 实用技术 -- 第一部...
  史上最强的Vim 配置文件...
  LINUX系统目录详解
  打造完美Linux操作系统:...

栏目最新

更多相关链接

  GNU make v3.80完整版中...
  Linux 文件和目录的属性
  Vim 实用技术 -- 第三部...
  Vim 实用技术 -- 第二部...
  Vimdiff 使用
  Linux 引导过程内幕
  Vim 实用技术 -- 第一部...
  史上最强的Vim 配置文件...
  LINUX系统目录详解
  打造完美Linux操作系统:...

热点文章

更多相关链接