有没有什么工具可以让我一次重命名大量的变量名。我有大量的变量,我想把它们放到一个c结构中,因此,我需要添加param。添加到结构中包含的每个名称的开头。
rfbsl7qr1#
如果你真的想一次完成,可以在高级搜索/替换函数中加入一个正则表达式。^(name1|名称2| #36825;元,应该是可以工作的。但不能保证它不会捕获除变量使用之外的其他内容(特别是变量声明)。如果你想这样做,你必须使用类似Clang的工具。
jdg4fx2g2#
sed与find,在shell终端中,如下所示:
sed
find
$ find /path/to/project/root -name "*.[ch]" -exec sed -ri 's/original_name/new_name/' {} \;
字符串
llmtgqce3#
对于大型源代码(例如50万行C或C++代码),您可以考虑使用最新的GCC编译器(例如:GCC 13在2023年夏天)和开发您的GCC plugin(可能增强/更新Bismon plugin...)编译器插件知道每个标识符的角色和类型。它能够将int i变量与#define i (complicated-expr)宏或一些struct i或typedef... i或enum i类型声明...GCC插件必须通过连续的GCC版本进行维护,并且具有some licensing restrictions(例如如果重新分发,应获得GPLv 3兼容许可)
int i
#define i (complicated-expr)
struct i
typedef
i
enum i
uyto3xhc4#
有没有什么工具可以让我一次重命名大量的变量名。每一个像样的IDE都有一个这样的功能。您说您使用的是Eclipse,因此您可以选择要重命名的变量,然后使用Refactor command更改所有文件中的名称。
4条答案
按热度按时间rfbsl7qr1#
如果你真的想一次完成,可以在高级搜索/替换函数中加入一个正则表达式。^(name1|名称2| #36825;元,应该是可以工作的。但不能保证它不会捕获除变量使用之外的其他内容(特别是变量声明)。如果你想这样做,你必须使用类似Clang的工具。
jdg4fx2g2#
sed
与find
,在shell终端中,如下所示:字符串
llmtgqce3#
对于大型源代码(例如50万行C或C++代码),您可以考虑使用最新的GCC编译器(例如:GCC 13在2023年夏天)和开发您的GCC plugin(可能增强/更新Bismon plugin...)
编译器插件知道每个标识符的角色和类型。它能够将
int i
变量与#define i (complicated-expr)
宏或一些struct i
或typedef
...i
或enum i
类型声明...GCC插件必须通过连续的GCC版本进行维护,并且具有some licensing restrictions(例如如果重新分发,应获得GPLv 3兼容许可)
uyto3xhc4#
有没有什么工具可以让我一次重命名大量的变量名。
每一个像样的IDE都有一个这样的功能。您说您使用的是Eclipse,因此您可以选择要重命名的变量,然后使用Refactor command更改所有文件中的名称。