Tip 654 Printable Monobook Previous Next
created February 15, 2004 · complexity basic · author Hyouck Kim · version 6.0
Let's think about the code below.
void
howdy(void)
{
M00 =
M01 =
M10 =
M11 =
M20 =
M21 = 0;
}
Now you want to change the code like
void
howdy(void)
{
M[0][0] =
M[0][1] =
M[1][0] =
M[1][1] =
M[2][0] =
M[2][1] = 0;
}
You can easily do that with
:g/\(M\)\([0-9]\)\([0-9]\)/s//\1[\2][\3]/g
Here, \1 is a special substitute character meaning first part of the search pattern.
To specify a part in your search pattern, simply enclose your search pattern with "\(" and "\)".
Thus, in the above example
\(M\) corresponds to \1, and \([0-9]\) to \2 and etc...
And substitute pattern "\1[\2][\3]" means
"1st part" + "[" + "2nd part" + "]" + "[" + "3rd part" + "]"
which is what we want here.
References[]
Comments[]
Why not
%s/\(\d\)\(\d\)/[\1][\2]/
This works too:
%s/\v(\d)(\d)/[\1][\2]