本质上讲,我们需要完成的工作大部分都是重复性的。凡是可以简化重复性操作的方式,都会成倍地提供工作效率。

Vim 会记录最近执行的操作,对重复性操作进行了优化,让我们用一次按键就能重复上次的工作,这是我认为Vim被称为高效率编辑器的重要原因之一 (Edit Text at the speed of thought)。

  1. vim重复操作命令所介绍,Vim普通模式下的 . 命令可以用于重复上次的修改,这里提到的修改对象可以是字符、整行,甚至是整个文件,按 u 回退操作。

  2. . 命令不会重复由 Vim 命令行中做出的修改,若需要重复执行上次的 Ex 命令只需按 @: 即可。@: 命令其实是用到了 : 寄存器: 寄存器总是保存着最后执行的命令行命令 (参见 :h quote_:)。

  3. 在运行过一次 @: 后可以用 @@ 命令来重复执行上次的 Ex 命令,但无直接的回退方式。

  4. 普通模式下可以使用命令 & 重新执行上次的Vim替换操作 :substitute,按 u 回退操作。

  5. Vim普通模式下的 ; 命令会正向重复查找上次 f 命令所查找字符,按 , 回退光标位置。

  6. Vim普通模式下的 n 命令在Vim缓冲区中重复查找下一处匹配项,按 N 回退光标位置。

  7. Vim宏可通过录制操作序列到某个Vim寄存器 a 中,然后使用命令 @a 回放录制的宏,实现重复操作一系列修改,用 @@ 重复最近调用过的宏,按 u 回退操作。

Vim宏

  1. gv 命令可以用于重选上一次由可视化模式选择的文本范围,按 Esc 退出可视化模式。

  2. 很多Vim Ex 命令(即Vim命令行命令)可以用行号、位置标记或是查找模式来指定要执行操作的开始位置及结束位置,实现一条命令同时操作多行。

  3. Vim命令行命令 global 允许在某个指定模式的所有匹配行上运行 Ex 命令,而 normal 命令允许在Vim命令行模式下对指定范围内的每行执行普通模式下的操作,均可用于高效完成Vim下的重复操作,更多内容可以参看Vim global命令和重复操作 以及 Vim normal命令

嗯,扫一扫就可以找到小女子我啦~