Cómo contar un comando de línea de comando de Vim (como: insertar,: normal, etc.)

Cómo contar un comando de línea de comando de Vim (como: insertar,: normal, etc.)

En Vim, como probablemente todos ustedes saben, es posible contar los comandos en "modo normal" precediéndolos con un número.

Como por ejemplo 4ddeso 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 :normalcomando 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=1el recuento predeterminado en 1 y lo invoca de la segunda forma:

:2Normal oHi!

información relacionada