C++ 如何跳转到C/C++;函数声明而不是它的定义?
我知道CTRL+]可以跳转到vim中各种语言的函数定义。 跳转到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 在标记处时,可以使用以下编辑器命令浏览标记(表示同一标记与定义/声明多次
因为我有很多包含有意义的注释/解释的标题,所以我经常在大型代码库中找到函数声明。是否有一些快捷方式可以做到这一点?默认情况下,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