VIM 中的重复操作与高效率
Vim 会记录最近执行的操作,对重复性操作进行了优化,让我们用一次按键就能重复上次的工作,这是我认为Vim被称为高效率编辑器的重要原因之一 (Edit Text at the speed of thought)。
-
如vim重复操作命令所介绍,Vim普通模式下的
.
命令可以用于重复上次的修改,这里提到的修改对象可以是字符、整行,甚至是整个文件,按u
回退操作。 -
.
命令不会重复由 Vim 命令行中做出的修改,若需要重复执行上次的 Ex 命令只需按@:
即可。@:
命令其实是用到了:
寄存器,:
寄存器总是保存着最后执行的命令行命令 (参见:h quote_:
)。 -
在运行过一次
@:
后可以用@@
命令来重复执行上次的 Ex 命令,但无直接的回退方式。 -
普通模式下可以使用命令
&
重新执行上次的Vim替换操作:substitute
,按u
回退操作。 -
Vim普通模式下的
;
命令会正向重复查找上次f
命令所查找字符,按,
回退光标位置。 -
Vim普通模式下的
n
命令在Vim缓冲区中重复查找下一处匹配项,按N
回退光标位置。 -
Vim宏可通过录制操作序列到某个Vim寄存器 a 中,然后使用命令
@a
回放录制的宏,实现重复操作一系列修改,用@@
重复最近调用过的宏,按u
回退操作。 -
gv
命令可以用于重选上一次由可视化模式选择的文本范围,按Esc
退出可视化模式。 -
很多Vim
Ex
命令(即Vim命令行命令)可以用行号、位置标记或是查找模式来指定要执行操作的开始位置及结束位置,实现一条命令同时操作多行。 -
Vim命令行命令
global
允许在某个指定模式的所有匹配行上运行 Ex 命令,而normal
命令允许在Vim命令行模式下对指定范围内的每行执行普通模式下的操作,均可用于高效完成Vim下的重复操作,更多内容可以参看Vim global命令和重复操作 以及 Vim normal命令。
本作品采用《CC 协议》,转载必须注明作者和本文链接