Je connais la regex pour faire un remplacement global,
%s/old/new/g
Comment faites-vous pour effectuer une recherche-remplacement interactive dans Vim ?
Ajoutez le drapeau c (dans l'invite de la commande vim):
:%s/old/new/gc
vous donnera une invite oui/non à chaque occurrence de 'vieux'.
L'aide intégrée de Vim offre des informations utiles sur les options disponibles une fois que la substitution avec confirmation a été sélectionnée. Utilisation:
:h :s
Ensuite, faites défiler jusqu'à la section sur les options de confirmation. Capture d'écran ci-dessous:
Par exemple, pour remplacer ceci et toutes les correspondances restantes, utilisez a
.
Mark Biek a indiqué en utilisant:
%s/old/new/gc
pour une recherche globale, remplacez par confirmation pour chaque substitution. Mais j'aime aussi vérifier de manière interactive que l'ancien texte correspondra correctement. Je fais d'abord une recherche avec une expression régulière, puis je réutilise ce motif:
/old.pattern.to.match
%s//replacement/gc
Le s//
utilisera le dernier motif de recherche.
Je pense que vous cherchez c
, par exemple s/abc/123/gc
, cela entraînera VIM) pour confirmer les remplacements. Voir: aide: remplace pour plus d’informations.
J'utilise habituellement la commande find/substitute/next/repeat :-)
/old<CR>3snew<ESC>n.n.n.n.n.n.n.
C'est find "old"
, substitute 3 characters for "new"
, find next
, repeat substitute
, etc.
C'est une douleur pour les substitutions massives, mais cela vous permet d'ignorer de manière sélective certaines occurrences d'ancien (en appuyant simplement de nouveau sur n
pour trouver la suivante au lieu de .
pour répéter une substitution).
Si vous voulez juste compter le nombre d'occurrences de 'abc', alors vous pouvez faire %s/abc//gn
. Cela ne remplace rien, mais indique simplement le nombre d'occurrences de 'abc'.
Si votre texte de remplacement doit changer pour chaque occurrence correspondante (c'est-à-dire ne pas simplement choisir Oui/Non pour appliquer un remplacement singulier), vous pouvez utiliser un plugin Vim I made appelé interactive-replace .
Neovim a maintenant une fonctionnalité pour prévisualiser la substitution:
Image tirée de: https://medium.com/@eric.burel/stop-using-open-source-5cb19baca44d Documentation de la fonctionnalité: https://neovim.io/ doc/user/options.html # 'inccommand'