要让 ctags 获取 .h 文件中的函数,您需要按照以下步骤操作:
首先,确保您已经安装了 Exuberant Ctags。如果没有,请访问以下网址下载并安装:
在您的主目录中创建一个名为 .ctags 的文件,并添加以下内容:
--langdef=c++
--langmap=c++:+.h
--regex-c++=/^ \t(inline|static|extern) \t+(template \t<^>> \t)(class \t+)?(A-Za-z0-9_+) \tA-Za-z0-9_ \t((.)) \t({)?.*$/\5/f,function,functions/
--regex-c++=/^ \t(template \t<^>> \t)(class \t+)?(A-Za-z0-9_+) \tA-Za-z0-9_ \t((.)) \t({)?.*$/\3/f,function,functions/
--regex-c++=/^ \t(template \t<^>> \t)(class \t+)?(A-Za-z0-9_+) \tA-Za-z0-9_ \t((.)) \t({)?.*$/\3/t,type,types/
--regex-c++=/^ \t(template \t<^>> \t)(class|struct) \t+(A-Za-z0-9_+) \t{(.*)$/\3/c,class,classes/
--regex-c++=/^ \t(template \t<^>> \t)(class|struct) \t+(A-Za-z0-9_+) \t:0-9+ \t{(.)$/\3/c,class,classes/
--regex-c++=/^ \t(template \t<^>> \t)(class|struct) \t+(A-Za-z0-9_+) \t:0-9+ \t*$/\3/c,class,classes/
--regex-c++=/^ \t(template \t<^>> \t)(class|struct) \t+(A-Za-z0-9_+) \t$/\3/c,class,classes/
这将告诉 ctags 使用 .h 文件作为 C++ 语言的一部分,并识别函数、类和类型。
在您的项目目录中运行 ctags 命令,以生成 tags 文件。
ctags -R --languages=c++ --exclude=.git --exclude=node_modules --exclude=dist --exclude=build .
这将递归地为您的项目中的所有 .h 文件生成 tags 文件。
现在,ctags 应该能够识别 .h 文件中的函数。您可以使用 Vim 或其他支持 ctags 的编辑器打开相关文件,并使用 Ctrl + ]
快捷键跳转到函数定义。
领取专属 10元无门槛券
手把手带您无忧上云