Vim教程网(https://vimjc.com)在《实用Vim命令整理》一文中介绍过 15 个实用却不为人所熟知的 Vim 命令,本文介绍另外 4 个 Vim 普通模式下功能强大且实用却被大多数人忽略的 Vim 命令。

1. r 命令:替换当前字符

Vim 普通模式下按下 r 键会用接下来键入的一个字符替换当前光标下的字符 (但仍然处在普通模式下)。

按下 r 键后可以按 Esc 取消本次替换操作,使得接下来键入的字符不会替换当前光标所在字符。

2. R 命令:切换到替换模式

Vim 普通模式下输入 R 命令将切换到 Vim 的替换模式

在替换模式下,当前光标下的单个字符会逐渐被新输入的字符所替换。如果没有字符可以替换了(到了行尾),新输入的字符会插入到行尾 (和插入模式一样)。

如果在 Vim 替换模式下删除字符 (用退格键 BackSpace 或 Vim组合命令 <ctrl-w><ctrl-u>),实际发生的事是删除了新输入的字符,而被替换的字符又被复原了。当然,超过已有字符长度的新输入部分,执行删除操作时新增的字符直接被删除了。

Vim替换模式删除

:如果所用的键盘上有 Insert 键,那么也可以用该键在插入模式和替换模式间切换。这点与在word、notepad++等编辑器中按 Insert 键进入替换模式是完全一致的。

3. s 命令:删除光标所在字符并进入插入模式

在 Vim 普通模式下,按 s 键将会删除光标当前所在的字符并自动进入到 Vim 的插入模式。这是个非常实用却被大多数人所忽略的 Vim 命令。

s 命令的格式是:["x]s,表示可指定某个 Vim 寄存器来保存通过该命令删除的字符。

4. S 命令:删除光标所在行并进入插入模式

在 Vim 普通模式下,按 S 键将会删除光标当前所在行并自动进入到 Vim 的插入模式。

S 命令的格式是:["x]S,表示同样可通过指定某个 Vim 寄存器来保存通过该命令删除的整行内容。

:上述介绍的 s 命令 和 S 命令均可通过在其前面指定操作次数 n 来重复执行对应命令。例如,3s 命令将删除当前光标所在字符处连续 3 个字符并进入插入模式,而 5S 命令会删除当前光标所在行开始的连续 5 行并进入 Vim 插入模式。

Vim替换命令

想获取更多 Vim 命令的用法和功能,推荐阅读《Vim中文键盘速查表详细介绍》。

《女程序员说》

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