5

我使用 emacs 和 etags 在项目中导航,是否可以通过搜索函数轻松访问头文件。我一直在使用 VisualStudio,我可以通过单击 goto 声明来查看它是否有类似的方法在 emacs 中使用 etags?

例如

ArchiveDialog::onKeyPress()

搜索将在 ArchiveDialog 的头文件中的 onkeypress 声明(#include 在源文件的顶部)。

在我使用etags“M-.onKeyPress”的那一刻,只会在cpp文件中找到标签,而不是我的头文件。

任何帮助将不胜感激谢谢

4

3 回答 3

3

CEDET 的语义应该提供相应的功能......请查看本节并查看“语义用户指南”以获取更多详细信息......

于 2011-07-19T09:42:21.047 回答
1

根据您的描述,听起来您可能在源文件上运行了 etags,但没有指定 #include 文件。假设您的标头 (#include) 文件具有“.hh”后缀并且与源文件位于同一目录中,请执行以下操作:

cd $project_directory
etags --append *.hh
于 2013-05-23T15:30:20.827 回答
1

是的,我相信是的。

首先你应该知道,有 2 个版本的 etags。有一个随 emacs 一起提供的版本,以及随 Exuberant Ctags 一起提供的 etags 版本。

http://ctags.sourceforge.net/

你想要第二个版本的 etags。该版本有更多选项,包括标记函数原型的选项。

我认为这个选项可能对你有用,虽然我没有测试过:

--C++-kinds=+p

一旦声明被标记,当您尝试跳转到标记时,两者都会显示为结果。如果您在需要定义时进入声明,反之亦然,请输入“Cu M-”。去下一场比赛。

我认为 GNU Global 也可以让你跳转到声明,尽管我已经有一段时间没有使用它了。但是,Global 的 C++ 解析器有一些错误......

于 2011-07-20T01:00:30.580 回答