normal 命令指定是 Vim 下可以通过 normal 来指定执行 Normal 模式下的命令,以便于达到快速编辑大量文本的操作。

比如说要批量注释一批代码,需要在行前插入 # 替换:

:%s/^/#/g

visual block:

gg<Ctrl-v>I#<Esc>

注释第一行后用 dot command 重复执行每一行

.

我们可以用 normal 命令实现上述需求,步骤:

光标定位到首行,执行:

I#<Esc>

选中之后的所有行

jVG

然后执行

:'<,'>normal .

这样刚刚选中的行都将执行 . 代表的最后一次操作。注:只要输入 就能实现:'<,'>,你可以注意 Vim 的左下角的提示。

当然如果不适用 Visual block 那也可以指定具体的操作对象,比如::%normal I#% 代表这个文件,代表着注释整个文件,当然也可以选择具体的范围,如::1,4normal I# 表示注释 1 到 4 行。

总结::normal 命令可以执行任何 normal 模式下的命令,更多帮助::help normal