Executar substituição anterior para seleção diferente com o pressionamento de tecla único

8

Eu executei o seguinte comando

:'<,'>s/2/digit/g

no código abaixo selecionado visualmente manualmente:

return _.round(this.getTotalAbs(), 2).toFixed(2);

E funcionou como pretendido

return _.round(this.getTotalAbs(), digit).toFixed(digit);

Agora, desejo repetir o mesmo comando substituto em outro trecho de código selecionado manualmente via modo de seleção visual, com um toque de tecla (se possível).

WitVault
fonte
Você pode digitar :'<,e, em seguida, seta para cima. Ele mostrará o substituto anterior. Você está bem com algum mapeamento?
SibiCoder
@SibiCoder Não quero criar mapeamento. Eu quero usar o comando nativo, se disponível no vim.
WitVault
Você precisará criar um mapeamento se desejar pressionar uma única tecla.
Antony

Respostas:

15

Eu acho que você quer fazer o @:que repete o último comando ex.

Vejo :h @:

Observe que este comando pode ser chamado no modo normal e no modo visual. Também neste caso, não é útil, mas você também pode prefixá-lo com uma contagem.


Editar Nos comentários, @Antony apontou um comando interessante: :&( :h :&):

  • & pode ser usado no modo normal para repetir o último comando substituto sem seus sinalizadores
  • :&& pode ser usado no modo ex para repetir o último comando substituto mantendo as bandeiras.
statox
fonte
9
Ou :&&para repetir a última substituição com as mesmas bandeiras.
Antony
@Antony: Comando legal, eu não sabia disso.
statox