重命名结构成员及其在文件中的所有用法

时间:2014-01-11 22:29:19

标签: c emacs struct ide renaming

我可以使用emacs或IDE(MS / Mono / sun studio等)重命名结构成员及其在文件中的所有用法(我的意思是,使用 - >或。运算符)吗?例如,我有

struct foo { int a_1, int int b_2; //etc }

我将struct改为这样的东西:

struct foo { struct { int a_1, int b_2; } v; //etc }

现在我的f->a_1f.a_1类型的源代码中有很多f->b_2f.b_2以及struct foostruct foo*需要替换为编译器在v结构中找到它:f.v->a_1而不是。{我怎么能这样做?

Regexp是一个丑陋的解决方案(如果其他解决方案是手动执行,我可以做)但不可能,因为它也需要匹配struct的类型。因此,需要执行知道C类型的文本编辑器/ IDE。如果您不知道如何使用emacs,但请使用IDE告诉我。

1 个答案:

答案 0 :(得分:1)

您可以使用RTags的Emacs插件执行此操作:

https://github.com/Andersbakken/rtags/

rtags-rename-symbol(默认绑定: C-x r R

声明:

我觉得它很好用非常,但是我遇到了宏重命名和重模板c ++代码的问题(这些代码已经在最新版本中得到修复)。

它还可以一次性重命名多个文件中的符号(如果你使用的是一个项目和一个compile_commands.json),那么在测试代码之前隐藏/保存你的更改 - 以防万一。