在vim中插入一个空行?

And*_*ier 29 vim vi

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

Mr *_*unz 33

我一直在用这些

map <Enter> o<ESC>
map <S-Enter> O<ESC>
Run Code Online (Sandbox Code Playgroud)

在我.vimrc多年。

Enter在当前下方插入一个空行,按Shift + Enter将其插入上方。

  • 请注意,映射 Shift-Enter 仅适用于 vim 的 GUI 版本,而不适用于终端版本。http://stackoverflow.com/questions/16359878/vim-how-to-map-shift-enter (3认同)

Ing*_*kat 10

无论蒂姆教皇的未受损伤的插件,以及我自己的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>
Run Code Online (Sandbox Code Playgroud)


小智 7

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

nnoremap <Enter> :call append(line('.'), '')<CR>
nnoremap <S-Enter> :call append(line('.')-1, '')<CR>
Run Code Online (Sandbox Code Playgroud)

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