vim não faz isso infelizmente. O melhor que você pode fazer é instalar o plugin repmo.vim , que repete os comandos de movimento que têm um contagem.
No Vim, com . , posso repetir o último comando do modo normal; por exemplo:
dd.
exclui uma linha duas vezes.
Mas, se eu digitar
5j.
o cursor não se move 10 linhas para baixo. Como repito o último comando do modo normal, especialmente um movimento?
vim não faz isso infelizmente. O melhor que você pode fazer é instalar o plugin repmo.vim , que repete os comandos de movimento que têm um contagem.
é factível mesmo em baunilha vim, mas a aplicabilidade depende do seu caso de uso, ou seja. com que frequência você precisará repeti-lo, já que requer mais algumas teclas para torná-lo repetível.
usando a mudança de 5 linhas como exemplo, você pode fazer:
:norm 5j , moverá o cursor para baixo 5 linhas @: para repetir o movimento :norm significa normal, qualquer sequência a seguir é considerada como sua digitação no modo normal
qa (armazene a macro no registro a , você pode escolher seu próprio registro como qb , qc ) 5j q (terminar a gravação da macro) @a para repetir sua operação gravada (substitua a pelo nome de registro escolhido, por exemplo, @b , @c ) Na verdade, . repete a última alteração , não o último comando do modo normal. Como Paul disse, você precisará de um plugin para permitir que você repita os movimentos.
Veja " :help . ".
Você pode repetir as alterações com . . Movimentos podem ser repetidos com o comando ; . Este comando parece ser novo e faz uma coisa semelhante ao script repmo.vim mencionado em outras respostas.
Por exemplo, para mover para o segundo próximo c , pressione 2fc . Então, para fazer isso novamente, basta digitar ; .
Você pode selecionar as linhas que deseja alterar e executar o último comando de ponto normal
v5j .............. visual select next 5 lines
:'<,'>norm! . normal mode execute over selection last command '.'
Tags vim normal-mode