Adding Line Break After pattern in VIM

18,288

Solution 1

A substitution would work nicely.

:%s/}/\0\r/g

Replace } with the whole match \0 and a new line character \r.
or

:%s/}/&\r/g

Where & also is an alternative for the whole match, looks a bit funny though in my opinion. Vim golfers like it because it saves them a keystroke :)

\0 or & in the replacement part of the substitution acts as a special character. During the substitution the whole string that was matched replaces the \0 or the & character in the substitution.

We can demonstrate this with a more complex search and replace -

Which witch is which?

Apply a substitution -

:s/[wW][ih][ti]ch/The \0/g

Gives -

The Which The witch is The which?

Solution 2

The answer is :%s/}/}\r/ I guess.

Solution 3

:%s/pre/cur\r/g

%: operate on the entire buffer.

pre(previous pattern): which pattern will be to changed.

cur(current pattern): by which the previous pattern will be changed.

\r: new line.

g: repeat for every match on a line (default is to just replace the first).

Share:
18,288

Related videos on Youtube

Chalist
Author by

Chalist

I love coding, traveling, reading and poetry.

Updated on June 25, 2022

Comments

  • Chalist
    Chalist almost 2 years

    I have a css file and I want to add an empty line after every }.

    How can I do this in Vim?

  • Ingo Karkat
    Ingo Karkat about 11 years
    For such a beginner question, an explanation would surely help: \0 (shorter would be &) re-inserts the match, \r is the escape sequence for a newline (in a replacement, usually it's \n).