1

我正在使用 vim 和 ctags (exuberant 5.7) 来导航我的源代码。然而,一些函数和变量添加了一些英特尔 C 扩展关键字,即:

__declspec(target(mic)) double calculate_gamma(int m, int n) { ... }

问题在于,由于 __declspec,ctags 忽略了对其进行索引,因此函数 calculate_gamma 不会被标记。

使用标识符列表选项 -I 使用 ctags 修复此类事情。但是,如果您的表达式中有括号,则此选项会讨厌您:

$ ctags *.c *.h -I __declspec(target(mic))
-bash: syntax error near unexpected token `('

我尝试在__declspec 周围加上引号,转义字符'\',以及ansi-C 引用$'',这些都阻止了bash 抱怨,但是ctags 仍然没有标记函数calculate_gamma。如果没有括号,这将起作用。

我做错了什么还是有另一种方法可以从 ctags 中获得我想要的东西?干杯。

4

1 回答 1

0

我想你想要:

ctags -I __declspec+ *.c *.h

-I __declspec本质上告诉 ctags 忽略它,__declspec就好像它是一个宏一样,+后缀意味着也忽略后面带括号的参数__declspec

于 2014-01-07T04:13:17.473 回答