\E
ou \e
).Le fonctionnement des regexp est inversé par rapport à d'autre logiciel. Pour activer certains motifs, il faut utiliser le caractère d'échappement alors que d'habitude, il faut l'utiliser pour les désactiver.
# Pour supprimer ''n'' espaces suivi de ''|'' suivi de ''n'' chiffres :%s/\s\+|\d\+//
Le changement de casse ne peut se faire qu'avec l'utilisation de références arrières. Il est possible de :
\U
. 1)\L
. 2)\u
.\l
.:%s/Test \(TeSt\) Test/Test \U\1 Test/ # Affiche "Test TEST TEST" :%s/Test \(TeSt\) Test/Test \U\1\E Test/ # Affiche "Test TEST Test" :%s/Test \(TeSt\) Test/Test \L\1 Test/ # Affiche "Test test test" :%s/Test \(TeSt\) Test/Test \L\1\E Test/ # Affiche "Test test Test" :%s/Test \(TeSt\) Test/Test \u\1 Test/ # Affiche "Test TeSt Test" :%s/Test \(TeSt\) Test/Test \l\1 Test/ # Affiche "Test teSt Test"
Pour cela, il suffit juste d'utiliser |
entre chaque commande de substitution. Si une erreur survient, les substitutions suivantes ne seront pas appliquées.
:%s/htm/html/ | %s/JPEG/jpg/ | %s/GIF/gif/
Il est possible d'utiliser une expression comme chaîne de remplacement. Pour cela, la chaîne de remplacement doit commencer par \=
.
# Ajouter le numéro de chaque ligne :%s/^/\=line('.')."\t"/ # Dupliquer la référence arrière en la modifiant :%s/'\(.*\)'/\='"'.submatch(1).'" => "'.substitute(submatch(1),'_',' ', 'g').'",'/g