我知道在Vim中可以使用CTRL+]跳转到不同语言的函数定义处。那么如何跳转到C/C++头文件中的声明呢?
由于我有很多包含有意义注释/说明的头文件,在大型代码库中找到函数声明会是一个频繁的任务。是否有某些快捷键来完成此操作?
ctags默认不会添加函数原型。您需要添加选项
--c++-kinds=+p
来支持函数原型。 我的ctags命令看起来像这样:
ctags --c++-kinds=+p --fields=+iaS --extra=+q *.h *.c
当您在标记处时,可以使用以下编辑器命令浏览标记(表示相同的标记作为定义/声明多次出现)-
tn(下一标记)
tp(上一标记)
2CTRL+]
即可完成。您的标签文件现在包含函数声明和定义。 CTRL+]
跳转到标签文件中第一个匹配项。要进入第二个,请按2CTRL + ]
,以此类推。我不太确定ctags是如何对它们进行排序的,先声明后定义还是相反(也许排序顺序与ctags先找到的内容有关)。 - Habi:set path+=/path/to/headers
[I
显示光标下关键字在头文件中的所有列表,或者
[<Tab>
跳转到该位置,您可以使用 Ctrl+6 返回到您的文件。
我很满意cscope,它包括数据库中的头文件。
只需将cscope_maps.vim放入~/.vim/plugin/中,然后按CTRL-],如果已经建立了cscope数据库,将列出所有选项。
要建立cscope数据库,只需键入
cscope -bR
ctags
中没有这样的支持。但是在 vim 中有类似的功能cscope
和 grep 插件支持。 - Mohit Jain