FANDOM


Previous TipNext Tip

Tip: #654 - Special characters in the substitute command

Created: February 15, 2004 17:03 Complexity: basic Author: Hyouck Kim Version: 6.0 Karma: 7/7 Imported from: Tip#654

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 pair of the search pattern. 


To specify a pair 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 pair" + "[" + "2nd pair" + "]" + "[" + "3rd pair" + "]",

which is what we want here.


For more information on special substitute characters, simply do :help substitute.

Happy Vim-ing!

Comments

why not? %s/\(\d\)\(\d\)/[\1][\2]/


Anonymous , February 15, 2004 22:32


this works too:

%s/\v(\d)(\d)/[\1][\2]

elvegamx--AT--yahoo.com.mx , February 16, 2004 5:53


Community content is available under CC-BY-SA unless otherwise noted.