ctags:E431,E257,

https://blog.csdn.net/haichunzhao/article/details/17001271

E431: Format error in tags file - 错误

可能因为生成的标识符太长,vim不支持那么长,限定类型,重新生成即可.

ctags --languages=Asm,c,c++,java -R

 

http://blog.sina.com.cn/s/blog_85998e3801010x8e.html

利用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文件会多出很多行。为什么会出现错误,不是很清楚。

 

今天阅读ext/session.c源码时想通过ctrl+]查到php_session_start函数的定义,报错:“E257: cstag: tag not found”,如下图:

bubuko.com,布布扣

解决方法:

[root@~/wade/codeReview/php-5.3.29/ext/session]# cat ~/.vimrc 
set tags=tags;
set autochdir

注: 第一个命令里的分号是必不可少的。这个命令让vim首先在当前目录里寻找tags文件,如果没有找到tags文件,或者没有找到对应的目标,就到父目录中查找,一直向上递归。因为tags文件中记录的路径总是相对于tags文件所在的路径,所以要使用第二个设置项来改变vim的当前目录。

此时便可查到php_session_start函数的定义:

bubuko.com,布布扣

vim使用ctags报“E257: cstag: tag not found”解决方案

原文地址:http://blog.csdn.net/billfeller/article/details/40316501

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值