Outils pour utilisateurs

Outils du site


informatique:outils:vim:substitution_de_texte

Substitution de texte

Utiliser des regexp

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\+//

Changer de casse

Le changement de casse ne peut se faire qu'avec l'utilisation de références arrières. Il est possible de :

  • Mettre en majuscule tout le texte qui suit : \U. 1)
  • Mettre en minuscule tout le texte qui suit : \L. 2)
  • Mettre en majuscule la première lettre du texte qui suit : \u.
  • Mettre en minuscule la première lettre du texte qui suit : \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"

Chaîner des substitutions

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/

Utiliser une expression

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
1) , 2)
le changement s'effectue jusqu'à la fin de la ligne ou jusqu'au délimiteur (\E ou \e).
informatique/outils/vim/substitution_de_texte.txt · Dernière modification : 2025/01/02 09:25 de alexis