Je trouve souvent que j'ai besoin d'insérer une ligne vierge inférieure ou supérieure à la ligne actuelle lors de la modification de Vim. o
et O
le fera cela, mais ils passent ensuite en mode insertion, ce qui est gênant. Y a-t-il une commande intégrée à faire cela qui restera en mode normal?
Tim Pope's plug-in unimpaired ainsi que mon propre - Plugin LineJuggler Fournissez [<Space>
et ]<Space>
mappages à ajouter [count]
lignes vides au-dessus de la ligne en cours.
Fondamentalement, il se résume à ceci:
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>
J'utilise ces
map <Enter> o<ESC>
map <S-Enter> O<ESC>
dans mon .vimrc
pendant des années.
Appuyez sur Entrée Pour insérer une ligne vide en dessous du courant, Shift + Entrée pour l'insérer ci-dessus.
Encore une autre façon d'insérer des lignes au-dessus ou ci-dessous:
nnoremap <Enter> :call append(line('.'), '')<CR>
nnoremap <S-Enter> :call append(line('.')-1, '')<CR>
Notez que la solution de Romainl et de M. Shunz déplacera le curseur sur la ligne nouvellement insérée, alors que cela et celui de Ingo Karkat conserveront le curseur au même endroit.
Non, il n'y a pas de commande intégrée pour cela.
Ces mappages font ce que vous voulez:
nnoremap <leader>o o<Esc>
nnoremap <leader>O O<Esc>