Adding Line Break After pattern in VIM
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).
Related videos on Youtube
Comments
-
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?
-
jdhao about 5 yearsRelated to unix.stackexchange.com/questions/247329/…
-
-
Ingo Karkat about 11 yearsFor 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
).