> First, how do I replace a line that begins with a
> pattern with a line with only \n ? I tried
> 
> :1,$ s/^pattern/\n/g
> 
> but it didn't work.

For some reason, Vim's newline replacement is \r instead of \n 
which I wish I could explain better than "well, that's the way it 
is".  So you can do

   :%s/^pattern/\r

(the /g flag is unneeded because you're anchored to the beginning 
of the line, of which there's only one).  If you want to replace 
the whole line (in the event you have a line that looks like

   break; // stuff here

), then your pattern has to consume the whole line:

   :%s/^pattern.*/\r

> A similar question is about replacing
> 
> break;
> 
> with
> {
>     break;
> }

If you don't need to keep the level of indent, it's pretty easy:

   :%s/break;/{\r\t&\r}/g

(assuming you want a "\t"ab instead of spaces...adjust 
accordingly if you want spaces instead).  If, however, you want 
to keep the indent, it gets a little dirtier:

   :%s/\(\s*\)break;/\1{\r\1\tbreak;\r\1}/g

which captures the whitespace before the "break;" with "\(\s*\)" 
and then uses it to put back in before the "{", the "\tbreak;" 
and the "}".


--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_use" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Reply via email to