内核源代码树的ctags或类似的标记系统

问题描述

ctags是一个简单的源代码标记系统,也集成在vi中(及其风味nvivim等)。 AFAIK,它将构建一个纯文本文件,其中对源代码的所有元素(函数,宏等)进行索引。但是,当源代码树非常庞大时,此文件可能会变得太大且无法管理:这是内核(Linux,* BSD或类似)的情况。

  • ctagsexuberant-ctags仍然适合像内核这样的复杂源代码树吗?
  • 如果没有,哪些工具(与vi集成在ctags中的相同)可以代替它?这可能会很主观,因此,如果可能,请提供一系列建议的工具:欢迎提供任何评论,以及使用vi中带有键盘快捷键的指南的引用。

支持的语言至少应为C,C ++,汇编语言。该工具应该可以通过CLI使用。我主要想跳到函数,宏,结构和类似对象的定义(使用ctags,将 Ctrl + ] 光标移到项目上名称),并在可能的情况下返回其手册页,然后返回代码。

到目前为止,我所知道的唯一替代工具是GNU global,带有pretty complex vi integration,这似乎只能通过Perl来实现(而且我找不到与 Ctrl等效的工具 + ] )。

解决方法

对您的第一点的回答是响亮的。 您可以使用 ctags 为不同的子树生成标签文件,从而将生成的文件的大小保持在最小。此时,您需要有一种机制来搜索这些多个标签文件。当然,Vim 提供了这一点。

我已经给出了一些建议 here,所以你可能想看看。

当然,我在那里使用 exuberant-ctags,所以请记住这一点。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...