0

我在 linux 上使用 etags 和 vim 来浏览源代码(*.c,*.h)。我创建了一个 TAGS 文件 bu 给出命令:

etags --members *.c *.h 

TAGS 文件被创建,但是当我开始浏览时,说其中一个名为 1.c 的源文件定义了一个 C 结构变量并在其函数定义之一中使用(结构名称是其他 1.h 文件中的 typedef)。我在 vim 中打开文件 1.c,然后CTRL - ]将光标放在该结构类型上,etags 不会浏览到具有此结构声明的头文件 1.h。

这只发生在我的 .vimrc 中有下面的行时,当我在两行下面评论时,基于 etags 的源浏览工作正常。

set TAGS=./TAGS;$HOME
set tags=./tags;$HOME

我试图告诉 vim 在哪里找到 TAGS 文件。从当前文件夹开始直到我的主目录。这里有什么不正确的?

上述命令的正确语法是什么?

ctags/etags 是否使用 vim 浏览,显示从哪里调用所有给定函数?如果是,查看该命令的命令是什么?

4

1 回答 1

1
  • 定位标签文件

    Vim 的设置区分大小写,因此set TAGS=无效。您必须使用set tags=小写字母。

    Vim 将在第一次匹配时停止,所以你不能指望它会在tags and TAGS中搜索标签。这些文件可以依次搜索:

    set tags=./tags,./TAGS;$HOME " 1. tags, 2. TAGS, 3.… until $HOME
    

    另外,搜索不是由 执行的etags,它是由 Vim 自己完成的。

  • 跳转到函数调用

    不,ctags只有etags索引声明。要跳转到使用情况,您需要cscope

于 2012-04-16T15:48:40.350 回答