Je connais le regex pour faire un remplacement global,
%s/old/new/g
Comment procédez-vous pour effectuer une recherche-remplacement interactive dans Vim ?
Ajoutez l'indicateur c (dans l'invite de commande vim):
:%s/old/new/gc
vous donnera un oui / non à chaque occurrence de «ancien».
L'aide intégrée de Vim offre des informations utiles sur les options disponibles une fois la substitution avec confirmation sélectionnée. Utilisation:
:h :s
Faites ensuite 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 souligné en utilisant:
pour une recherche globale remplacer 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 modèle:
Le
s//
utilisera le dernier modèle de recherche.la source
Je pense que vous recherchez
c
, par exemples/abc/123/gc
, cela entraînera VIM pour confirmer les remplacements. Voir: aide: remplacer pour plus d'informations.la source
J'utilise généralement la commande find / substitute / next / repeat :-)
C'est
find "old"
,substitute 3 characters for "new"
,find next
,repeat substitute
et ainsi de suite.C'est une douleur pour les substitutions massives, mais cela vous permet d'ignorer sélectivement certaines occurrences anciennes (en appuyant simplement à
n
nouveau pour trouver la suivante au lieu de.
répéter une substitution).la source
<CR>
?Si vous voulez simplement compter le nombre d'occurrences de «abc», vous pouvez le faire
%s/abc//gn
. Cela ne remplace rien mais signale simplement le nombre d'occurrences de 'abc'.la source
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 que j'ai créé appelé interactif-replace .
la source
Neovim dispose désormais d'une fonctionnalité pour prévisualiser la substitution:
Image prise à partir de: https://medium.com/@eric.burel/stop-using-open-source-5cb19baca44d Documentation de la fonctionnalité: https://neovim.io/doc/user/options.html# 'inccommand'
la source
nvim
fonctionnalité intégrée, bon à savoir! Merci d'avoir partagé!