使用ctags查看代码标识符

利用vim看xen的源代码时,会碰到很多不认识的宏,变量,结构,函数等,vim不能像vs一样可以随便轻易查看定义什么之类。不过借助ctags可以完成类似的功能,很方便的对一些标识符进行查找。当然还有更强大的工具cscope可以完成这一要求。下面简单的介绍下如何用ctags来辅助vim查看xen的源代码。

xen使用asm和c写的,切换到xen的源码根目录下,执行:
$ctags --langmap=c:.c.h --languages=Asm,c -R
过几秒钟后执行完成,会产生一个tags文件,你可以用less查看下tags的内容,格式比较简单,可以参考其他资料。vim打开一个源文件,把鼠标移到调用函数名上,按住‘CTRL’+‘[’就可以跳转到函数的定义处了。或者使用命令完成相同的功能:
:tag 标识符
当有多处匹配标识符时,vim会默认跳转到第一个匹配处。可以使用下列命令进行操作:
  • ta[g][!] tagstring  跳转到tagstring定义处,其中!表示在文件更改没保存时进行强制跳转
  • tags                查看跳转记录,并用'>'指出当前位置
  • [n]ta[g][!]         跳转到相对当前位置的前第n个tag,n默认为1
  • [n]po[p][!]         跳转到相对当前位置的后第n个tag,n默认为1
  • ts[elect][!] [tagstring]    显示与tagstring的匹配数
  • sts[elect][!] [tagstring]   显示与tagstring的匹配数,选中时以子窗口的形式打开
  • [n]tn[ext][!]      跳转到相对后n个匹配处
  • [n]tp[revious][!]  跳转到相对前n个匹配处
  • [n]tr[ewind][!]    跳转到第n个匹配处
  • tl[ast][!]         跳转到一个匹配处

注意ctags默认的将.h文件映射成c++文件,如果不加 --langmap=c:.c.h 。将无法对头文件进行查找,也就是说无法用 :tag tagstring命令来对定义在头文件里的宏、函数等进行查找。

如果用 ctags -R 来产生标识符文件,在c文件里对标识符查找时会出现
E431: Format error in tags file "tags"
Before byte 65
比较了一下产生的tags文件发现标识符那一行都是一样的,只是tags文件会多出很多行。为什么会出现错误,不是很清楚。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值