如何让ctags同时收录C函数的声明与定义?
针对Exuberant Ctags 5.9~svn20110310
该版本默认仅生成函数定义的标签,要同时收录声明,需在生成tags时指定C语言的标签类型:
ctags -R --c-kinds=+p *
其中--c-kinds=+p表示在默认标签类型基础上,添加**函数原型(声明)**的标签。
针对Universal Ctags
你遇到的参数换行时识别异常,是因为默认解析规则对多行函数签名的支持不足,同时需要明确开启声明标签的收录:
1. 单次命令解决
直接执行带参数的命令:
ctags -R --c-kinds=+p --extras=+q *
--c-kinds=+p:强制收录函数声明--extras=+q:增强对复杂函数定义的识别,包括参数换行的情况
2. 配置文件持久化
如果不想每次输入参数,可以在项目根目录创建.ctags文件,写入以下内容:
--c-kinds=+p --extras=+q
之后只需执行ctags -R *,就会自动加载配置生成包含声明和定义的tags文件。
验证结果
生成tags后,用以下命令检查目标函数的条目:
grep "目标函数名" tags
正常情况下会看到两条记录:一条来自头文件的声明,一条来自源文件的定义。
内容的提问来源于stack exchange,提问作者Syed N Waris
相关产品推荐
相关产品推荐

