c++ - emacs、etags 和使用 emacs 作为 IDE

标签 c++ c emacs ide ctags

我常用的工具是在 Linux 系统上使用 g++ 的 Emacs 来实现我的研究算法。在过去的几年里,我以相当基本的方式使用 emacs。我打开 C 或 C++ 文件,使用我选择的语法突出显示方案对其进行编辑,然后从 emacs(或者可能从终端)中编译和执行其他操作,包括在 emacs 中使用 gdb 进行调试。我了解 etags 和 ctags,并且玩过一些 etags 和 emacs,但似乎没有找到使用这些工具的“最佳位置”。

我想知道,其他人如何配置 emacs 以使其与 etags 和其他工具很好地结合?需要对 emacs 进行哪些调整才能使其成为更好的 IDE?

最佳答案

对于标记信息,我还推荐 GNU Global . CScope 也可以做很多事情。在这两种情况下,它们都提供了一种按名称查找标签位置的方法,以及特定标签的用途。

对于“IDE Stuff”,它不仅仅是一个标记系统。为此,我推荐 CEDET Emacs 工具集。这提供了一个项目管理系统 (EDE),它可以创建 Makefile 来为您编译代码。还有一个解析和代码分析部分(语义)提供智能完成。有一个模板/代码生成系统(SRecode)可以将标签从语义转换回代码。甚至还有一个 UML 图编辑器 (COGRE),它可以从您在 Emacs 中绘制的类图生成代码。

大多数使用 CEDET 的人只使用解析器和智能补全系统,可能与 ECB 结合使用,并且可以只使用 CEDET 的一个子集。

为了更好地衡量,CEDET 还将与 GNU Global 数据库集成,因此您可以引用符号使用以及标记位置以及 Emacs 的常规 GNU Global 接口(interface)。

关于c++ - emacs、etags 和使用 emacs 作为 IDE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598351/

相关文章:

c++ - 值调用和指针引用调用

c++ - 我应该在复制赋值运算符中使用 placement-new

c - 使用 fscanf 扫描值或如果不存在值则使用默认值

c - 单一源代码与多个文件 + 库

c - 在c程序中确定以太网帧到达时间的最准确方法

emacs - 如何根据条件加载yasnippets

emacs - 如何用quicklisp加载外部依赖?

c++ - 模板函数调用歧义是如何解决的?

c++ - 在 C++ 中。 (*a).b 和 a->b 有什么区别?

emacs - 使用自动填充模式自动重新填充整个段落?