无法在 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
我不知道如何让 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