首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何让 ctags 获取 .h 文件中的函数?

要让 ctags 获取 .h 文件中的函数,您需要按照以下步骤操作:

  1. 安装 Exuberant Ctags:

首先,确保您已经安装了 Exuberant Ctags。如果没有,请访问以下网址下载并安装:

https://ctags.io/

  1. 创建一个 .ctags 配置文件:

在您的主目录中创建一个名为 .ctags 的文件,并添加以下内容:

代码语言:txt
复制

--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/

代码语言:txt
复制

这将告诉 ctags 使用 .h 文件作为 C++ 语言的一部分,并识别函数、类和类型。

  1. 运行 ctags:

在您的项目目录中运行 ctags 命令,以生成 tags 文件。

代码语言:txt
复制

ctags -R --languages=c++ --exclude=.git --exclude=node_modules --exclude=dist --exclude=build .

代码语言:txt
复制

这将递归地为您的项目中的所有 .h 文件生成 tags 文件。

现在,ctags 应该能够识别 .h 文件中的函数。您可以使用 Vim 或其他支持 ctags 的编辑器打开相关文件,并使用 Ctrl + ] 快捷键跳转到函数定义。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何在 Go 函数获取调用者函数名、文件名、行号...

背景 我们在应用程序代码添加业务日志时候,不论是什么级别的日志,除了我们主动传给 Logger 它记录信息外,这行日志是由哪个函数打印、所在位置也是非常重要信息,不然排查问题时候很有可能就犹如大海捞针...如果让我们用 Go 设计一个Log Facade,就需要我们自己在门面里获取调用者函数名、文件位置了,那么在Go里面怎么实现这个功能呢?...//获取是 CallerA函数调用者调用栈 pc1, file1, lineNo1, ok1 := runtime.Caller(1) } 函数返回值为调用栈标识符、带路径完整文件名...、该调用在文件行号。...获取调用者函数名 runtime.Caller 返回值第一个返回值是一个调用栈标识,通过它我们能拿到调用栈函数信息 *runtime.Func,再进一步获取到调用者函数名字,这里面会用到函数和方法如下

6.5K20

如何修改配置EasyNVR获取录像接口返回精确录像文件

有用户需要获取EasyNVR平台录像视频指定时间段录像文件,但是目前平台生成切片默认是3s一个ts文件,目前第一个ts文件和最后一个ts文件不是完整ts文件,会导致用户调用录像时候会出现多1s或者少...1s录像文件。...EasyNVR配置文件参数,所以需要重启EasyNVR服务参数生效,然后查看下效果: 在m3u8文件查看到,已经是1s一个ts文件,所以在后续调用之后就会得到一个准确录像文件。...4)调用获取录像文件接口,获取指定时间段录像文件,如图: EasyNVR视频边缘计算网关是我们软硬一体视频平台,既有软件版本,又有硬件设备版本,视频能力非常灵活和丰富,平台部署轻快、操作简单,接口丰富...EasyNVR目前在线下场景也有较为广泛应用,如智慧工厂、智慧园区、智慧码头、智慧港口、智慧农场等等。感兴趣用户可以前往演示平台进行体验或部署测试。

81830
  • 如何修改配置EasyNVR获取录像接口返回精确录像文件

    有用户需要获取EasyNVR平台录像视频指定时间段录像文件,但是目前平台生成切片默认是3s一个ts文件,目前第一个ts文件和最后一个ts文件不是完整ts文件,会导致用户调用录像时候会出现多1s或者少...1s录像文件。...EasyNVR配置文件参数,所以需要重启EasyNVR服务参数生效,然后查看下效果: 在m3u8文件查看到,已经是1s一个ts文件,所以在后续调用之后就会得到一个准确录像文件。...4)调用获取录像文件接口,获取指定时间段录像文件,如图: EasyNVR视频边缘计算网关是我们软硬一体视频平台,既有软件版本,又有硬件设备版本,视频能力非常灵活和丰富,平台部署轻快、操作简单,接口丰富...EasyNVR目前在线下场景也有较为广泛应用,如智慧工厂、智慧园区、智慧码头、智慧港口、智慧农场等等。感兴趣用户可以前往演示平台进行体验或部署测试。

    77830

    如何H264码流SPS获取宽和高信息?

    前言 了解H264视频编码格式小伙伴都知道,H264编码存在两个非常重要参数集。...那么如何从中获取视频宽高信息呢,就是今天本文主要内容。 正文 一、SPS结构 对H264码流进行解码时,肯定会用到SPS相关参数,因此,我们非常有必要了解其中参数含义。...其中,H.264标准协议(文档7.3.2.1.1部分)规定SPS格式如下图所示: 接下来,介绍一下上图中部分参数。 (1) profile_idc 标识当前H.264码流profile。...我们知道,H.264定义了三种常用档次profile: 基准档次:baseline profile; 主要档次:main profile; 扩展档次:extended profile; 在H.264...也就是SPS类型标识,伪代码如下: data[3] & 0x1f == 7 data[4] & 0x1f == 7 SPS 对于H264而言,就是编码后第一帧,如果是读取H264文件,就是第一个帧界定符和第二个帧界定符之间数据

    3.2K10

    简述如何使用Androidstudio对文件进行保存和获取文件数据

    在 Android Studio ,可以使用以下方法对文件进行保存和获取文件数据: 保存文件: 创建一个 File 对象,指定要保存文件路径和文件名。...使用 FileInputStream 类创建一个文件输入流对象。 创建一个字节数组,用于存储从文件读取数据。 使用文件输入流 read() 方法读取文件数据,并将其存储到字节数组。...示例代码: // 获取文件数据 String filename = "data.txt"; byte[] buffer = new byte[1024]; String data = ""; try...System.out.println("文件数据:" + data); 需要注意是,上述代码 getFilesDir() 方法用于获取应用程序内部存储目录,可以根据需要替换为其他存储路径。...这些是在 Android Studio 中保存和获取文件数据基本步骤。

    42010

    如何在yaml文件引用python函数

    前言 经常看到很多同学问到,如何在 yaml 文件引用一个 python 函数?...问题分析 大家对yaml文件还处于比较陌生阶段,yaml 和 json 文件本质上是一样,都是静态文件,当然不能直接引用 python 函数。...那这时候就有人问到了,那为什么 httprunner 框架可以在yaml文件引用函数呢?...jinja2 模板库 先需要pip安装 pip install jinja2 render 函数实现 在yaml文件,通过 {{ 函数名称() }} 来引用函数 写个 render 函数读取 yaml...,我们希望能自动加载类似于debugtalk.py文件来自动加载函数 自动加载debug.py里面的函数 写一个debug.py 文件,实现 yaml 文件里面定义函数去替换值。

    10.8K52

    如何别人看懂你函数

    前言 紧接上话,我们来看看函数定义还有哪些冷知识。 类型提示 当我在看一些第三方库时,看到了如些写法。...def add(x:int, y:int) -> int: return x + y 这里冒号和箭头是什么东西了,当时是很奇怪这里写法,后面在网上查阅资料时,说是type hints,也就是类型提示...这一点是不会改变,但在 Python 3.5 引入了一个类型系统,允许开发者指定变量类型。它主要作用是方便开发,供IDE 和各种开发工具使用,对代码运行不产生影响,运行时会过滤类型信息。...例如上面的代码,我们就知道传入x和y是整数型,返回也是整数型,但是我们需要注意是,如果不按照其指定类型传入参数,代码也是不会报错。...,通过函数定义,我们就可以看出参数类型。

    65330

    python如何获取preview里文件

    问题如下: 请教一下各位大佬,python如何获取preview里文件? 二、实现过程 这里【提请问粘给图截报错贴代源码】给了一个思路:requests这个链接就可以了。...后来粉丝自己请求时候,发现了一个问题:我请求头都是按照抓到东西写,请问各位大佬为什么会报404。 后来【瑜亮老师】指导道:post请求,一般都会加上data,内容就在payload。...顺利地解决了粉丝问题。 粉丝自己在请求参数时候,带了明文密码,这个还是不建议,也提醒下大家记得加密! 如果你也有类似这种Python相关小问题,欢迎随时来交流群学习交流哦,有问必答!...通过这个粉丝需求问答,我们确切感受到了AI助力Python实战需求能力了,我最近也是一直在接触AIGC,从最开始ChatGPT到最近火爆出圈Sora,也建立了自己AIGC分享群,目前也带动了500...这篇文章主要盘点了一个Python网络爬虫实战问题,文中针对该问题,给出了具体解析和代码实现,帮助粉丝顺利解决了问题。

    17210

    dos批处理怎么获取for获取各个文件所在目录?

    注:%odr% 是一个目录(其目录下不确定有多少级目录),想实现功能: 历遍所有指定目录下inf文件 已实现 获取文件所在目录(比如%%i一个值为 c:\abc\XY\WS\ss.exe..., 怎样才能获取到c:\abc\XY\WS\;如果%dr%=c:\,怎么才能获取到abc\XY\WS或者abc\XY\WS\) 两条命令就可以了。...dir H:\* /b /s /a|findstr "\.ini\>" 这样直接可以输出目录及所有子目录下全部.ini文件, 我们把这行命令单独保存成一个dirINI.bat 然后另外写个for循环,...) ) pause 【已解决】批处理命令for如何截取一个路径程序名字?...其中路径是不确定,就是要获取最后一个“\”后面的内容并赋值到变量到%sky%。

    29730

    hpp头文件h文件区别 C++.hpp文件

    hpp,其实质就是将.cpp实现代码混入.h文件当中,定义与实现都包含在同一文件,则该类调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译。...而实现代码将直接编译到调用者obj文件,不再生成单独obj,采用hpp将大幅度减少调用 projectcpp文件数与编译次数,也不用再发布烦人lib与dll,因此非常适合用来编写公用开源库...hpp优点不少,但是编写中有以下几点要注意: 1、是Header Plus Plus 简写。 2、与*.h类似,hpp是C++程序头文件 。 3、是VCL专用文件,已预编译。...由于hpp本质上是作为.h被调用者include,所以当hpp文件存在全局对象或者全局函数,而该hpp被多个调用者include时,将在链接时导致符号重定义错误。...在.h和.cpp场景,当两个类或者多个类之间有循环调用关系时,只要预先在头文件做被调用类声明即可,如下: class B; class A{ public:

    4.3K20
    领券