.png)
En Vim, como probablemente todos ustedes saben, es posible contar los comandos en "modo normal" precediéndolos con un número.
Como por ejemplo 4dd
eso eliminará 4 líneas.
Me pregunto si hay una manera de pasar un recuento a un comando de línea de comando vim (un comando que comienza con dos puntos) para repetirlo varias veces.
Algo así como 2:normal oHi!
repetir el normal oHi!
comando 2 veces.
¿Hay alguna manera de hacer algo como esto dentro de Vim?
Respuesta1
Muchos :-commands aceptan un recuento como argumento. Por ejemplo:
:delete 4
Eliminaría cuatro líneas, comenzando con la línea en la que se encuentra el cursor.
Algunos :-commands cuentan antes del nombre del comando:
:2next
Editaría el segundo archivo siguiente en la lista de argumentos.
Sin embargo, el :normal
comando no acepta un recuento de ninguna de las formas. Tendrías que envolverlo en un bucle:
for i in range(1,2)
normal oHi!
endfor
Y, por supuesto, podrías crear un comando definido por el usuario que hiciera lo que quisieras:
command -count=1 -nargs=+ Normal for i in range(1,<count>) | exe 'normal ' . <q-args> | endfor
Establece -count=1
el recuento predeterminado en 1 y lo invoca de la segunda forma:
:2Normal oHi!