无法在 ctags 中为 #define 添加正则表达式

Can't add reg expression for a #define in ctags

我不知道如何让 ctags 检测到 __mrs_s 定义。它没有添加搜索模式,所以我在 vi 中找不到它。

$cat /tmp/qq.h
int test(int i)
{
printf("Hello!");
return 0;
}

#define __mrs_s(v, r)                       \
    DEFINE_MRS_S                        \
"   mrs_s " v ", " __stringify(r) "\n"          \
    UNDEFINE_MRS_S

$ctags --regex-C++='/^#define \([a-zA-Z_0-9]+\)([a-zA-Z,\ ]+)[\t ]+//d/'  -o - /tmp/qq.h
__mrs_s /tmp/qq.h   7;" d
test    /tmp/qq.h   /^int test(int i)$/;"   f

使用 --excmd=pattern 选项,例如:

[root@localhost ~]# cat /tmp/qq.h 
int test(int i)
{
printf("Hello!");
return 0;
}

#define __mrs_s(v, r)                       \
    DEFINE_MRS_S                        \
"   mrs_s " v ", " __stringify(r) "\n"          \
    UNDEFINE_MRS_S


[root@localhost ~]# ctags --excmd=pattern -o - /tmp/qq.h 
__mrs_s /tmp/qq.h   /^#define __mrs_s(/;"   d
test    /tmp/qq.h   /^int test(int i)$/;"   f