0

我在浏览 C++ 源代码时使用 vim + ctag + cscope。当我想查找任何函数 cscope 和/或 ctag 的定义时,会生成一个似乎是候选者的列表。

但是,当我为头文件中的类声明中定义的函数尝试此操作时,这两个都不会产生候选者列表。当 ctag 和/或 cscope 像这样失败时,我现在知道函数定义应该在头文件中。于是我打开头文件,在里面找到函数定义。

但我想知道这是否是 ctag 和 cscope 的必然行为。对于这种情况,是否有任何方法可以使它们(ctag 和 cscope)变得聪明,以便我可以找到每个函数的定义,即使它们是在头文件中定义的?

非常感谢。

旅行者 J. Joh

4

1 回答 1

1

我生成了如下所示的标签文件。

ctags --langmap=C++:.inc --c++-kinds=+p --fields=+iaS --extra=+fq --sort=foldcase -R .

但必须按照下面的方式进行纠正。

ctags --langmap=C++:+.inc --c++-kinds=+p --fields=+iaS --extra=+fq --sort=foldcase -R .

--langmap=C++:.inc

--langmap=C++:+.inc

man ctags对此有说明:

[...] 要指定仅将扩展名为 .c 和 .x 的文件视为 C 语言文件,请使用“--langmap=c:.cx”;要将扩展名为 .j 的文件也添加为 Java 语言文件,请指定“--langmap=c:.cx,java:+.j”。

于 2012-08-13T10:47:04.493 回答