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).


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.

9
Ou :&&para repetir a última substituição com as mesmas bandeiras.
Antony

@Antony: Comando legal, eu não sabia disso.
statox
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.