.png)
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 :normal
comando 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=1
define a contagem padrão como 1 e você a invoca da segunda maneira:
:2Normal oHi!