在 vim 中插入空行?

在 vim 中插入空行?

我经常发现在 vim 中编辑时需要在当前行下方或上方插入一个空白行。o并且O会这样做,但它们随后会切换到插入模式,这很烦人。 是否有任何内置命令可以执行此操作并保持在正常模式下?

答案1

Tim Pope 的未受损插件以及我自己的LineJuggler 插件提供[<Space>和映射以在当前行上方/下方]<Space>添加空白行。[count]

基本上可以归结为以下几点:

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

我一直在用这些

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

在我的.vimrc多年里。

进入在当前行下方插入一个空白行,Shift + Enter将其插入到上面。

答案3

还有另一种在上方或下方插入行的方法:

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

请注意,romainl 和 Mr Shunz 的解决方案会将光标移动到新插入的行,而此解决方案以及 Ingo Karkat 的解决方案将使光标保持在同一位置。

答案4

不,没有内置命令。

这些映射可以实现您想要的功能:

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

相关内容