在C ++项目中使用emacs中的ETAGS / CTAGS

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

例如

ArchiveDialog::onKeyPress()

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

在使用etags“M-。onKeyPress”的时候,只需在cpp文件中找到标签,而不是我的头文件。

任何帮助,将不胜感激谢谢


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


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

cd $project_directory
etags --append *.hh

是的,我相信。

首先你应该知道,有2个版本的etags。 有emacs附带的,以及Exuberant Ctags附带的etags版本。

http://ctags.sourceforge.net/

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

我认为这个选项可能适合你,虽然我还没有测试过它:

--C++-kinds=+p

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

我认为GNU Global也许可以让你跳到声明中,尽管自从我使用它之后已经有一段时间了。 但是,Global的C ++解析器有一些bug ...

链接地址: http://www.djcxy.com/p/38577.html

上一篇: Using ETAGS/CTAGS in emacs with C++ Project

下一篇: Is there an equivalent for the Zip function in Clojure Core or Contrib?