我正在编写遗留代码,我的声明如下:
int array[MAX_SIZE_FOR_THIS_ARRAY];
Run Code Online (Sandbox Code Playgroud)
在VIM中,我想用[&](包括[&])替换ARRAY之间的文本,如下所示:
int array_ARRAY_;
Run Code Online (Sandbox Code Playgroud)
请注意:1.阵列大小宏对于不同的阵列会有所不同,因此我们不能在搜索模式中使用MAX_SIZE_FOR_THIS_ARRAY.2.变量"array"的名称也不固定.
我需要搜索[] ,并在数千行代码中用ARRAY替换[...] .
有人可以帮我这个吗?
当光标位于方括号内的任何位置时,您可以使用:
ca[_ARRAY_
为了帮助你记住:
_ARRAY_
同 _ARRAY_
ca[
如果你用vim做的话会是答案.
既然你也用这个标记了问题sed
,这里有sed的方法:
kent$ echo "int array[MAX_SIZE_FOR_THIS_ARRAY];"|sed 's/\[[^]]*\]/_ARRAY_/'
int array_ARRAY_;
Run Code Online (Sandbox Code Playgroud)
用你的例子,
sed 's/\[.*]/_ARRAY_/'
Run Code Online (Sandbox Code Playgroud)
这也有效.