我经常这样做,所以我也在焦急地等待其他答复。 我知道的唯一技巧是非常基本的。以下是我在重构代码时在 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 能够做到这一点。 可能激活语义模式 Mx 语义模式 RET 。 用 Cc , g 调出 Symref 缓冲区。 按 Cc Ce 打开所有参考文献。 用 R 重命名。 原文由 muede 发布,翻译遵循 CC BY-SA 3.0 许可协议
我经常这样做,所以我也在焦急地等待其他答复。
我知道的唯一技巧是非常基本的。以下是我在重构代码时在 Emacs 中最好的朋友:
这允许您进行全局搜索和替换。当您将方法和常用数据移动到其他类或命名空间时,您会经常这样做。
这为您提供了一个并排显示两个缓冲区的显示。然后,您可以继续在其中加载不同的文件,并使用
C-x o
将光标从一个移动到另一个。这是非常基本的东西,但我之所以提到它是因为它使下一个…这就是在 emacs 中定义宏的方式。任何时候你发现自己需要对一堆代码一遍又一遍地做同样的事情(而且对于查询替换来说太复杂了),这就是救命稻草。如果你搞砸了,你可以点击
C-g
停止宏定义,然后撤销(C-_
)直到你回到你开始的地方。调用宏的键是C-x e
。如果您想多次这样做,您可以点击Esc
并先输入一个数字。例如:Esc 100 C-x e
将尝试调用您的宏 100 次。(注意:在 Windows 上,您可以通过按 Esc 键或按住 Alt 来获得“Meta”)。