[Vim] Remplacer une occurence ?

Résolu/Fermé
duddy67 - 24 oct. 2007 à 19:09
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 7 août 2009 à 07:58
Bonjour,

Je connais la commande de base dans Vim pour remplacer une occurence par une autre:

:%s/old/new/g

mais comment faire pour que celà s'applique à tous les fichiers ouvert ?
Est ce possible ?


Merci

4 réponses

adren67 Messages postés 1 Date d'inscription vendredi 7 août 2009 Statut Membre Dernière intervention 7 août 2009 10
7 août 2009 à 03:00
Personne ne réponds à celui qui pose la question qui était de savoir comment effectuer une substitution (et donc n'importe quelle opération/commande) sur la totalité des fichiers ouverts donc des buffers en cours, car même si les réponses peuvent dans certains cas résoudre le problème posé, on peut aussi vouloir effectuer d'autres opérations et ne pas se servir de vim que pour faire une substitution globale sur un ensemble de fichiers.

La réponse est de rajouter bufdo avant la substitution :
:bufdo %s/old/new/g


par contre, vu que par défaut on ne peut pas faire un changement et passer au buffer suivant sans que vim demande si l'on veut sauvegarder le buffer actuel, on peut juste avant cette commande demander d'inhiber cette fonctionnalité par :

:set hidden


ces 2 "astuces" et plein d'autres sont compilées dans l'excellent "Best of Vim Tips : http://rayninfo.co.uk/vimtips.html"
10
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 894
7 août 2009 à 07:58
Merci ;-)
0