【发布时间】:2010-10-14 20:36:49
【问题描述】:
我最近切换到 Emacs,但仍在寻找解决方法。 我用 C++ 编写代码,想知道有哪些工具可以扩展 Emacs 以支持代码浏览(查找符号等)、重构和代码完成。 我听说过:
- cedet
- 电子标签
- cscope
但我对自己需要什么感到很困惑。有些地方说 cedet 提供了所有功能,但其他地方说我需要调用 etags 才能使 cedet 正常工作。
有人可以帮我解决这个问题吗?我需要所有这些工具吗?
【问题讨论】:
我最近切换到 Emacs,但仍在寻找解决方法。 我用 C++ 编写代码,想知道有哪些工具可以扩展 Emacs 以支持代码浏览(查找符号等)、重构和代码完成。 我听说过:
但我对自己需要什么感到很困惑。有些地方说 cedet 提供了所有功能,但其他地方说我需要调用 etags 才能使 cedet 正常工作。
有人可以帮我解决这个问题吗?我需要所有这些工具吗?
【问题讨论】:
也许你会发现我关于 Cedet 的 article 很有用。 Cedet 支持 etags、gtags、cscope 和其他工具。
但是缺少重构。您可能需要查看Xrefactory 工具(但它不是免费的)
【讨论】:
Cscope 非常适合作为“查找符号”的使用工具。它非常快。
Etags 将向您展示您的类层次结构,并帮助您找到方法定义/声明。
所以这两个工具是必备的,而且是独立的。
Cedet。它是上面这两个工具的替代品,具有附加功能。因此,您可以选择 cscope/etags 或 cedet。
【讨论】:
对于重构,在阅读 emacs 黑客 Xah Lee 的 this article 后,我开始专门使用 emacs 来完成此任务和相关任务。
有关自动完成功能,请参阅this SO post。就个人而言,这些年来我发现yasnippet 非常有帮助。
【讨论】:
gtags (http://www.gnu.org/software/global/) 也可用,而且使用起来可能更简单。
【讨论】:
就个人而言,我不喜欢 cedet。它使 Emacs 需要一个小时才能加载。自动完成功能对我来说从来都不是很好。我不需要它的项目管理,也不需要它的 UML 特性。 我唯一想念的是 Emacs 代码浏览器,它非常有用但需要 cedet
我建议您只使用 cscope 和 etags,看看您喜欢它们。熟悉 emacs 后,您可以稍后安装 cedet。
【讨论】:
我写了一个blog article,关于使用 Global/gtags 和 Speedbar 进行代码浏览,您可能会发现它很有用...(我还认为 CEDET 有点慢...而且设置起来非常复杂 =)
【讨论】: