Inserindo uma linha em branco no vim?

21

Eu geralmente acho que preciso inserir uma linha em branco abaixo ou acima da linha atual ao editar no vim. o e O farão isso, mas posteriormente mudam para o modo de inserção, o que é irritante. Existe algum comando embutido para fazer isso que permanecerá no modo normal?

    
por Andrew Ferrier 13.06.2013 / 15:18

4 respostas

8

O plugin não danificado de Tim Pope, bem como o meu próprio LineJuggler plugin fornece [<Space> e ]<Space> mapeamentos para adicionar [count] linhas em branco acima / abaixo da linha atual.

Basicamente, tudo se resume a isto:

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>
    
por 13.06.2013 / 15:25
24

Eu tenho usado esses

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

no meu .vimrc por anos.

Pressione Enter para inserir uma linha em branco abaixo do atual, Shift + Enter para inseri-la acima.

    
por 13.06.2013 / 15:51
7

Mais uma maneira de inserir linhas acima ou abaixo:

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

Note que a solução de romainl e do Sr. Shunz moverá o cursor para a linha recém-inserida, enquanto que esta e também a de Ingo Karkat manterão o cursor no mesmo ponto.

    
por 13.06.2013 / 15:59
1

Não, não há comando interno para isso.

Esses mapeamentos fazem o que você deseja:

nnoremap <leader>o o<Esc>
nnoremap <leader>O O<Esc>
    
por 13.06.2013 / 15:27

Tags