如何为 Vim 命令行命令(如 :insert、:normal 等)计数

如何为 Vim 命令行命令(如 :insert、:normal 等)计数

大家可能都知道,在 Vim 中,可以在“正常模式”下通过在命令前加上数字来对命令进行计数。

例如4dd这将删除 4 行。

我想知道是否有办法将计数传递给 vim 命令行命令(以冒号开头的命令)以重复多次。

类似于2:normal oHi!重复该normal oHi!命令2次。

有没有办法在 Vim 中做这样的事情?

答案1

许多 :-命令确实接受计数作为参数。例如:

:delete 4

将从光标所在的行开始删除四行。

一些 :-命令在命令名前使用计数:

:2next

将编辑参数列表中的第二个文件。

但是,该:normal命令不接受任何形式的计数。您必须将其包装在循环中:

for i in range(1,2)
    normal oHi!
endfor

当然,您可以创建一个用户定义的命令来执行您想要的操作:

command -count=1 -nargs=+ Normal for i in range(1,<count>) | exe 'normal ' . <q-args> | endfor

-count=1默认计数设置为 1,然后以第二种方式调用它:

:2Normal oHi!

相关内容