Je travaille avec VIm
et j'essaie de configurer une commande de recherche et de remplacement pour effectuer des remplacements où je peux réutiliser l'expression régulière qui fait partie de ma chaîne de recherche.
Un exemple simple serait une ligne où je veux remplacer (10)
à {10}
, où 10 peut être un nombre quelconque.
Je suis venu jusqu'ici
.s/([0-9]*)/what here??/
qui correspond exactement à la pièce que je veux.
Maintenant, le remplacement, j'ai essayé
.s/([0-9]*)/{\0}/
Mais cela donne en sortie {(10)}
Ensuite, j'ai essayé
.s/(\zs[0-9]*\ze)/{\0}/
Cependant, cela m'a donné ({10})
, que je ferme également, mais pas ce que je veux.
Je pense que j'ai besoin d'un autre type de marquage / référencement arrière au lieu de cela \0
, mais je ne sais pas où chercher. La question est donc de savoir si cela peut se faire dans vim, et si oui, comment?
la source
J'ai récemment hérité du code hérité et je voulais remplacer toutes les occurrences comme:
à
ou
En s'appuyant sur la réponse précédente et dans l'espoir que quelqu'un en bénéficiera, j'ai utilisé la commande suivante, qui changera toutes les occurrences:
Si vous substituez
%
avec.
et retirez/g
vous finirez aveccela vous permettra de passer en revue chaque match et de choisir si vous le changez ou non.
la source
La meilleure façon de vous permettre de passer en revue chaque correspondance consiste à ajouter un «c» à la fin du code, plutôt que d'aller ligne par ligne
la source