Velvet Star Monitor

Standout celebrity highlights with iconic style.

general

Inserting a blank line in vim?

Writer Andrew Mclaughlin

I quite often find I have a need to insert a blank line either below or above the current line when editing in vim. o and O will do this, but they subsequently switch into insert mode, which is annoying. Is there any built-in command to do this which will remain in normal mode?

4 Answers

Both Tim Pope's unimpaired plugin as well as my own LineJuggler plugin provide [<Space> and ]<Space> mappings to add [count] blank lines above / below the current line.

Basically, it boils down to this:

nnoremap <silent> ]<Space> :<C-u>put =repeat(nr2char(10),v:count)<Bar>execute "'[-1"<CR>
nnoremap <silent> [<Space> :<C-u>put!=repeat(nr2char(10),v:count)<Bar>execute "']+1"<CR>
2

I've been using these

map <Enter> o<ESC>
map <S-Enter> O<ESC>

in my .vimrc for years.

Press Enter to insert a blank line below current, Shift + Enter to insert it above.

4

Yet another way to insert lines above or below:

nnoremap <Enter> :call append(line('.'), '')<CR>
nnoremap <S-Enter> :call append(line('.')-1, '')<CR>

Note that the solution from romainl and Mr Shunz will move the cursor to the newly inserted line, whereas this and also the one from Ingo Karkat will keep the cursor at the same spot.

No, there's no built-in command for that.

These mappings do what you want:

nnoremap <leader>o o<Esc>
nnoremap <leader>O O<Esc>

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy