vim
Trouver et remplacer
Recherche…
Commande de substitution
Cette commande:
:s/foo/bar/g
remplace chaque occurrence de foo
par une bar
sur la ligne en cours.
fool around with a foodie
devient
barl around with a bardie
Si vous omettez le dernier /g
, il ne remplacera que la première occurrence sur la ligne. Par exemple,
:s/foo/bar
Sur la ligne précédente deviendrait
barl around with a foodie
Cette commande:
:5,10s/foo/bar/g
effectue la même substitution aux lignes 5 à 10.
Cette commande
:5,$s/foo/bar/g
effectue la même substitution de la ligne 5 à la fin du fichier.
Cette commande:
:%s/foo/bar/g
effectue la même substitution sur l'ensemble du tampon.
Si vous êtes en mode visuel et que vous appuyez sur les deux points, le symbole '<,'>
apparaîtra. Vous pouvez alors le faire
:'<,'>s/foo/bar/g
et faire la substitution dans votre sélection de mode visuel.
Cette commande:
:%s/foo/bar/gc
est équivalent à la commande ci-dessus mais demande confirmation sur chaque occurrence grâce au drapeau /c
(pour "confirmation").
Voir :help :s
et :help :s_flags
.
Voir aussi cette section sur les plages de lignes de commande .
Remplacer avec ou sans expressions régulières
Cette commande de substitution peut utiliser des expressions régulières et correspondra à toute instance de foo
suivie de tout (un) caractère depuis la période .
dans les expressions régulières correspond à n'importe quel caractère, la commande suivante correspondra à toutes les instances de foo
suivies de tout caractère de la ligne en cours.
:s/foo./bar/g
1 fooing fooes fool foobar foosup
va devenir
1 barng bars bar barar barup
Si vous voulez faire correspondre le littéral .
période, vous pouvez y échapper dans le champ de recherche avec une barre oblique inverse \
.
:s/foo\./bar/g
1 fooing fooes foo.l foo.bar foosup
va devenir
1 fooing fooes barl barbar foosup
Ou désactivez toutes les correspondances en suivant la commande s
avec no
.
:sno/foo./bar/g
1 fooing fooes foo.l foo.bar foosup
va soulever une erreur
E486: Pattern not found