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]