《友情推荐,欢迎大家关注》

在当前文件中添加新的空白行是常见的编辑场景。Vim教程网(https://vimjc.com)介绍了在尽量减少按键次数的前提下,快速添加空白行的实用技巧。

一、在当前行上添加空白行

Vim本文编辑命令汇总一文已经介绍过,Vim 普通模式下使用 o 命令可在当前行的 下面 插入一个新行并进入 Vim 插入模式,使用 O 命令可在当前行的 上面 插入一个新行并进入插入模式。

但是,这种插入空白行的方法带来的一个副作用是:会自动从普通模式切换到插入模式,如果要退回到普通模式,需要额外按一次 Esc 键。

为了减少按键次数,Vim 下使用最多的方式是进行按键映射

因此,可以使用 nmap <CR> o<Esc> 在 Vim 普通模式下添加按键映射,将 Enter 键映射为 o 命令和 Esc 命令的组合,达到的效果是:在普通模式下按 Enter 键时会自动在当前行的 下面 插入一个新行且仍然处于普通模式。

如果希望将光标保持在执行插入新行操作的文本行上,可以使用按键映射 nmap <CR> o<Esc>k (执行 k 命令将光标上移一行)。

同样地,可以添加普通模式下的按键映射 nmap <S-Enter> O<Esc>,将 Shitf-Enter 组合键映射为 O 命令和 Esc 命令的组合。如果希望保持光标位置不变,可以使用 nmap <S-Enter> O<Esc>j

扩展阅读:Vim下删除空白行的方法

二、在当前光标处添加空白行

如果希望在当前光标位置处快速插入新行 (类似回车断行的功能) 且保持在普通模式下,推荐使用以下按键映射:

1
nnoremap <CR> a<CR><Esc>k$

上述映射命令 a<CR><Esc>k$ 的含义是:先使用 a 在当前光标位置处进入插入模式,然后在插入模式下按 Enter 换行后使用 Esc 返回到普通模式后,按 k 键将光标上移一行后,使用 $ 移动到行尾)。

关于 nmapnnoremap 的具体含义和区别,请阅读《Vim按键映射原理与方法》。

《女程序员说》

原创不易,希望能给小女子的公众号加个关注~