C++ 如何跳转到C/C++;函数声明而不是它的定义?

C++ 如何跳转到C/C++;函数声明而不是它的定义?,c++,c,vim,editor,C++,C,Vim,Editor,我知道CTRL+]可以跳转到vim中各种语言的函数定义。 跳转到C/C++头中的声明怎么样 因为我有很多包含有意义的注释/解释的标题,所以我经常在大型代码库中找到函数声明。是否有一些快捷方式可以做到这一点?默认情况下,ctags不添加函数原型。您必须添加该选项 --c++-种类=+p 支持功能原型。 我的CTAG如下所示: ctags--c++-classes=+p--fields=+iaS--extra=+q*.h*.c 在标记处时,可以使用以下编辑器命令浏览标记(表示同一标记与定义/声明多次

我知道CTRL+]可以跳转到vim中各种语言的函数定义。 跳转到C/C++头中的声明怎么样


因为我有很多包含有意义的注释/解释的标题,所以我经常在大型代码库中找到函数声明。是否有一些快捷方式可以做到这一点?

默认情况下,ctags不添加函数原型。您必须添加该选项

--c++-种类=+p

支持功能原型。 我的CTAG如下所示:

ctags--c++-classes=+p--fields=+iaS--extra=+q*.h*.c

在标记处时,可以使用以下编辑器命令浏览标记(表示同一标记与定义/声明多次出现)-

tn(下一个标签)

tp(上一标签)


我对cscope很满意,它在数据库中包含头文件

只要输入~/.vim/plugin/,然后CTRL-]将列出所有选项(如果构建了cscope数据库)

要构建cscope数据库,只需键入

cscope -bR
基于,无需任何插件,您可以

1) 设置标题的路径(这对于处理下面的第2点至关重要)

2) 然后执行以下命令之一

[I
显示光标下的关键字在头文件或


[
将跳转到那里,您可以使用Ctrl+6返回到您的文件。实际上,这不是
vim
的功能。它们是
ctags
。在
ctags
中没有这样的支持。但是在vim中有一个类似的功能
cscope
和grep插件支持。当我使用Ctrl+],它仍然会转到函数定义。按
2CTRL+]
应该这样做。标记文件现在包含函数声明和定义
CTRL+]
跳转到标记文件中的第一个匹配项。要转到第二个,请按
2CTRL+]
,等等。我不太确定ctags如何对它们进行排序,先声明,然后定义,反之亦然(可能排序顺序是ctags首先找到的顺序)。实际上,您的命令根本不起作用。它给出了以下内容:''ctags:警告:无法打开源代码文件。'.h:没有这样的文件或目录ctags:警告:无法打开源代码文件。'.c:没有这样的文件或目录''。我尝试了ctags--fields=+iaS--extra=+q-R并处理了一个特定的函数。现在,2CTRL+]转到另一个定义(静态内联函数,由标题中具有相同名称的宏包围),使用3CTRL-]我终于到达了我的声明
:set path+=/path/to/headers