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