Como contar um comando de linha de comando do Vim (como: insert,: normal, etc)

Como contar um comando de linha de comando do Vim (como: insert,: normal, etc)

No Vim, como provavelmente todos vocês sabem, é possível contar comandos no "modo normal" precedendo-os com um número.

Por exemplo 4dd, isso excluirá 4 linhas.

Gostaria de saber se existe uma maneira de passar uma contagem para um comando de linha de comando do vim (um comando que começa com dois pontos) para repeti-lo várias vezes.

Algo como 2:normal oHi!repetir o normal oHi!comando 2 vezes.

Existe uma maneira de fazer algo assim no Vim?

Responder1

Muitos :-commands aceitam uma contagem como argumento. Por exemplo:

:delete 4

Excluiria quatro linhas, começando pela linha em que o cursor está.

Alguns :-commands contam antes do nome do comando:

:2next

Editaria o segundo próximo arquivo na lista de argumentos.

No entanto, o :normalcomando não aceita uma contagem em nenhuma das formas. Você teria que envolvê-lo em um loop:

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

E é claro que você poderia criar um comando definido pelo usuário que fizesse o que você queria:

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

O -count=1define a contagem padrão como 1 e você a invoca da segunda maneira:

:2Normal oHi!

informação relacionada