我正在处理遗留代码,我的声明如下:
int array[MAX_SIZE_FOR_THIS_ARRAY];
在VIM中,我想替换[& ](包括[&])与 ARRAY 如下:
int array_ARRAY_;
请注意: 1.阵列大小宏对于不同的阵列会有所不同,因此我们不能在搜索模式中使用MAX_SIZE_FOR_THIS_ARRAY。 2.变量“array”的名称也不固定。
我只需要搜索[]用数千行代码替换[...]到 ARRAY 。
有人可以帮帮我吗?
答案 0 :(得分:7)
当光标位于方括号内的任何位置时,您可以使用:
C 一 [ _ARRAY_
帮助您记住:
_ARRAY_
与_ARRAY_
答案 1 :(得分:6)
ca[
就是答案。
因为您使用sed
标记了问题,所以这是sed的方式:
kent$ echo "int array[MAX_SIZE_FOR_THIS_ARRAY];"|sed 's/\[[^]]*\]/_ARRAY_/'
int array_ARRAY_;
以你的例子,
sed 's/\[.*]/_ARRAY_/'
这也有效。
答案 2 :(得分:4)
您可以进行替换:
:%s/array\[MAX_SIZE_FOR_THIS_ARRAY\]/array_ARRAY_/g