大家可能都知道,在 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!