297 votes

Interactive rechercher/remplacer des regex dans Vim?

Je sais que la regex pour faire un remplacement global,

     %s/old/new/g

Comment faites-vous pour faire une recherche interactive-remplacer dans Vim?

542voto

Mark Biek Points 41769

Faire cela

%s/old/new/gc

vous donnera une réponse oui/non invite à chaque occurrence, de "vieux".

88voto

Vincent Scheib Points 2702

Marque Biek a souligné à l'aide de:

%s/old/new/gc

pour une recherche globale remplacer avec de confirmation pour chaque substitution. Mais, j'aime aussi de manière interactive en vérifiant que l'ancien texte de match correctement. J'ai d'abord faire une recherche avec une regex, puis-je réutiliser ce modèle:

/old.pattern.to.match
%s//replacement/gc

L' s// utilisera le dernier modèle de recherche.

20voto

Logan Capaldo Points 22145

Je pense que vous êtes à la recherche pour c, par exemple, s/abc/123/gc, ce sera la cause de VIM pour confirmer le remplacement. Voir :aide :substitut pour plus d'informations.

9voto

Amjith Points 6850

Si vous voulez juste pour compter le nombre d'occurrences de "abc", alors vous pouvez faire de %s/abc//gn. Cela ne remplacera pas rien, mais juste d'indiquer le nombre pour le nombre d'occurences de l'abc.

9voto

paxdiablo Points 341644

J'ai l'habitude d'utiliser la fonction rechercher/remplacer/suivant/commande de répétition :-)

/old<CR>3snew<ESC>n.n.n.n.n.n.n.

C'est find "old", substitute 3 characters for "new", find next, repeat substitute, et ainsi de suite.

C'est une douleur pour des substitutions, mais il vous permet d'ignorer sélectivement certaines occurrences de l'ancien (en appuyant simplement sur n encore pour trouver la prochaine au lieu de . de répéter une substitution).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X