Esegue la sostituzione precedente per una selezione diversa con la singola pressione di un tasto


8

Ho eseguito il seguente comando

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

sul codice qui sotto selezionato manualmente visivamente:

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

E ha funzionato come previsto

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

Ora voglio ripetere lo stesso comando sostitutivo su un altro frammento di codice selezionato manualmente tramite la modalità di selezione visiva, con un solo tasto (se possibile).


È possibile digitare :'<,e quindi freccia su. Mostrerà il sostituto precedente. Stai bene con qualche mappatura?
SibiCoder

@SibiCoder Non voglio creare il mapping. Voglio usare il comando nativo se disponibile in vim.
WitVault,

Dovrai creare una mappatura se vuoi un solo tasto.
Antony,

Risposte:


15

Penso che tu voglia fare ciò @:che riproduce l'ultimo comando ex.

Vedere :h @:

Si noti che questo comando può essere chiamato dalla modalità normale e dalla modalità visiva. Anche in questo caso non è utile ma puoi anche aggiungerlo come prefisso.


Modifica Nei commenti @Antony ha sottolineato un comando interessante: :&( :h :&):

  • & può essere utilizzato in modalità normale per ripetere l'ultimo comando sostitutivo senza i suoi flag
  • :&& può essere utilizzato in modalità ex per ripetere l'ultimo comando sostitutivo mantenendo i flag.

9
O :&&per ripetere l'ultima sostituzione con le stesse bandiere.
Antony,

@Antony: bel comando non lo sapevo.
statox
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.