如何使用 emacs 重构 C 源代码?

新手上路,请多包涵

我主要对 C++ 和方法/类名/签名自动更改感兴趣。

原文由 Łukasz Lew 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 652
2 个回答

我经常这样做,所以我也在焦急地等待其他答复。

我知道的唯一技巧是非常基本的。以下是我在重构代码时在 Emacs 中最好的朋友:

 M-x query-replace

这允许您进行全局搜索和替换。当您将方法和常用数据移动到其他类或命名空间时,您会经常这样做。

 C-x 3

这为您提供了一个并排显示两个缓冲区的显示。然后,您可以继续在其中加载不同的文件,并使用 C-x o 将光标从一个移动到另一个。这是非常基本的东西,但我之所以提到它是因为它使下一个…

 C-x (
(type any amount of stuff and/or emacs commands here)
C-x )

这就是在 emacs 中定义宏的方式。任何时候你发现自己需要对一堆代码一遍又一遍地做同样的事情(而且对于查询替换来说太复杂了),这就是救命稻草。如果你搞砸了,你可以点击 C-g 停止宏定义,然后撤销( C-_ )直到你回到你开始的地方。调用宏的键是 C-x e 。如果您想多次这样做,您可以点击 Esc 并先输入一个数字。例如: Esc 100 C-x e 将尝试调用您的宏 100 次。

(注意:在 Windows 上,您可以通过按 Esc 键或按住 Alt 来获得“Meta”)。

原文由 T.E.D. 发布,翻译遵循 CC BY-SA 2.5 许可协议

在最近的 Emacs 版本 (24) 中,Semantic 能够做到这一点。

  1. 可能激活语义模式 Mx 语义模式 RET
  2. Cc , g 调出 Symref 缓冲区。
  3. Cc Ce 打开所有参考文献。
  4. R 重命名。

原文由 muede 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题