Rechercher remplacer avec vim

Pour rechercher remplacer avec vim il est possible d’utiliser la commande suivante :
[code lang= »bash »]
:s/chaine à chercher/texte de remplacement/g
[/code]
Cette commande remplace « chaine à chercher » par « texte de remplacement » dans la ligne courante
g est ici présent pour assurer que le remplacement se fait sur toutes les occurrences de la chaîne, et non uniquement sur la première
En rajoutant i (à la suite ou à la place de g), on effectue une recherche en ignorant la casse, avec c, une confirmation est demandée avant chaque remplacement.

Pour pousser un peu plus loin, une fonction que j’ai souvent cherchée sans jamais la trouver est un rechercher remplacer sur une chaîne banale (par exemple « ),( » ) et simplement éclater cette chaîne avec un retour à la ligne (ma chaîne devient alors « ),
( » )

vim permet d’effectuer ça facilement avec la commande suivante :
[code lang= »bash »]
:s/),(/),^M(/g
[/code]
(le caractère ^M est obtenu en tapant ctrl+V puis en tapant entrée)

Enfin, si on souhaite effectuer cette recherche non sur la ligne en cours uniquement, mais sur toutes les lignes, il est possible d’utiliser une syntaxe de vim qui consiste à spécifier les lignes sur lesquelles s’applique la commande avant de taper la commande :
[code lang= »bash »]
:x,y{commande}
[/code]
x est la première ligne sur laquelle s’applique la commande, y la dernière.
En utilisant le caractère $, il est possible de cibler la dernière ligne.
Au final, ma commande de rechercher remplacer dans tout le fichier à été la suivante :
[code lang= »bash »]
:1,$s/),(/),^M(/g
[/code]

C’est simple vim, non ?

Un commentaire »

  1. IndicaDesBois nous dit :

    Le 20 juillet 2007 @ 15:01

    Merci bilou !

Flux RSS des commentaires de ce billet · URI de TrackBack

Laisser un commentaire

Bad Behavior has blocked 0 access attempts in the last 7 days.