Si je tape, /regex
le curseur saute temporairement sur la première correspondance et toutes les correspondances sont mises en surbrillance. Cela se met à jour au fur et à mesure que je tape. Est-il possible d'obtenir ce comportement lorsque je me prépare à effectuer une substitution? Par exemple, lorsque je travaille sur une expression régulière compliquée :%s/\<regex\>/
, je voudrais savoir ce qui correspond avant d'appuyer sur la gâchette et de tout changer. Une façon de le faire?
vim
regular-expression
John Berryman
la source
la source
Réponses:
Tapez votre recherche en utilisant / (ou ? ) Pour commencer, ce qui vous permettra de modifier votre regex (puisque vous utilisez incsearch)
Une fois que tout est bien, vous pouvez utiliser le modèle de recherche précédent (celui que vous venez d'utiliser) dans la commande de remplacement en utilisant deux séparateurs pour l'élément de recherche:
Bien sûr, vous pouvez utiliser des sélections et des plages, comme d'habitude.
la source
s//
Une option est que vous pouvez avoir un indicateur de confirmation
c
.:h s_flags
:Vous pouvez également essayer la
grep
commande pour voir la sortie filtrée et le fichier d'origine mis en surbrillance.:g/re/p
ou:g/re/
la source
Eh bien, le moyen court de voir à quoi correspondra votre expression régulière consiste à effectuer une recherche en
/
utilisant l'expression rationnelle souhaitée. Il passera à la première correspondance et le marquera pendant que vous le taperez. Essayez-le -vim
ne vous décevra pas.la source