I have a css file and I want to add an empty line after every }
.
How can I do this in Vim?
in my . vimrc for years. Press Enter to insert a blank line below current, Shift + Enter to insert it above.
Starting in normal mode, you can press O to insert a blank line before the current line, or o to insert one after. O and o ("open") also switch to insert mode so you can start typing.
A sequence of zero or more non- <newline> characters plus a terminating <newline> character. And, therefore, they all need to end with a newline character. That's why Vim always adds a newline by default (because, according to POSIX, it should always be there).
Vim doesn't show latest newline in the buffer but actually vim always place EOL at the end of the file when you write it, because it standard for text files in Unix systems. You can find more information about this here. In short you don't have to worry about the absence a new lines at the end of the file in vim.
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?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With