Je veux modifier plusieurs fichiers à la fois selon certaines règles. Par exemple, remplacer dans certains fichiers “2024” par “2025”. Dans emacs, il existe de nombreuses façons de faire des modifications dans plusieurs fichiers à la fois.
- avec
dired(cf. jour 16 ) - avec
M-x multi-occur. L’inconvénient de cette solution est la nécessité de sélectionner un à un les fichiers.
et bien d’autres…
Je te propose une solution que j’aime bien.
Paquets utilisés #
Exemple #
Remplaçons toutes les occurrences de 2025 dans le préambule des fichiers org et uniquement dans ces fichiers par 2025-2026 ou par ce que tu veux…
- lance
M-x consult-ripgreppour sélectionner les fichiers qui contiennent la chaîne de caractère à remplacer. Par défaut, la recherche est lancée dans le répertoire du projet en cours.- commence par lancer la commande
M-s r - saisis
2025 by#orgtous les fichiersorgqui contiennent la chaîne de caractère2025 bysont sélectionnés dans tous les répertoires du projet.
- commence par lancer la commande
- puis
embark-act(C-.) pour faire une action. - exporte le résultat obtenu en 1. par
embark-exporten pressant la toucheE. - change le mode du tampon par
M-x change-to-wgrep-mode(C-c C-p) - pour modifier toutes les occurrences utilise par exemple
iedit-mode:- sélectionne 2025
C-!- modifie la chaîne de caractère.
C-!
- une fois les modifications terminées, enregistre tous les tampons ouverts
wgrep-finish-edit(C-x C-s) - (optionnel. Normalement inutile ici). Enfin enregistre tous les fichiers par
C-x s save-some-buffers