Effectuer la substitution précédente pour une sélection différente avec une seule touche


8

J'ai exécuté la commande suivante

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

sur le code ci-dessous sélectionné visuellement manuellement:

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

Et cela a fonctionné comme prévu

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

Maintenant, je veux répéter la même commande de substitution sur un autre extrait de code sélectionné manuellement via le mode de sélection visuelle, avec une seule touche (si possible).


Vous pouvez taper :'<,puis flèche haut. Il montrera le remplaçant précédent. Êtes-vous d'accord avec les mappages?
SibiCoder

@SibiCoder Je ne veux pas créer de cartographie. Je souhaite utiliser la commande native si elle est disponible dans vim.
WitVault

Vous devrez créer un mappage si vous voulez une seule touche.
Antony

Réponses:


15

Je pense que vous voulez faire @:qui rejoue la dernière commande ex.

Voir :h @:

Notez que cette commande peut être appelée du mode normal et du mode visuel. Dans ce cas également, il n'est pas utile, mais vous pouvez également le préfixer avec un nombre.


Modifier Dans les commentaires @Antony a souligné une commande intéressante: :&( :h :&):

  • & peut être utilisé en mode normal pour répéter la dernière commande de substitution sans ses indicateurs
  • :&& peut être utilisé en mode ex pour répéter la dernière commande de remplacement en gardant les drapeaux.

9
Ou :&&pour répéter la dernière substitution avec les mêmes drapeaux.
Antony

@Antony: Commande cool, je ne le savais pas.
statox
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.