VIM 中的重复操作与高效率

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宏

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

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

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

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。