我正在使用 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 中获得我想要的东西?干杯。