## FANDOM

1,646 Pages

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 =
```
```M =
```
```M =
```
```M =
```
```M =
```
```M = 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.

Happy Vim-ing!

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.