Source d'information: 1
Pour les utilisateurs d'emacs pro:
- Appelez dired pour répertorier les fichiers dans dir, ou appelez find-dired si vous avez besoin de tous les sous-répertoires.
- Marquez les fichiers que vous souhaitez. Vous pouvez marquer par expression régulière en tapant 【% m】.
- Tapez Q pour appeler dired-do-query-replace-regexp.
- Tapez votre expression régulière et remplacez la chaîne. 〔☛ motif regex elisp commun〕
- Pour chaque occurrence, tapez y pour remplacer, n pour ignorer. Tapez 【Ctrl + g】 pour abandonner toute l'opération.
- Tapez! pour remplacer toutes les occurrences dans le fichier en cours sans demander, N pour ignorer tout remplacement possible pour le reste du fichier en cours. (N est emacs 23 uniquement)
- Pour effectuer le remplacement de tous les fichiers sans demander plus, tapez Y. (Emacs 23 uniquement)
- Appelez ibuffer pour répertorier tous les fichiers ouverts. Tapez 【* u】 pour marquer tous les fichiers non enregistrés, tapez S pour enregistrer tous les fichiers marqués, tapez D pour les fermer tous.
Guide pas à pas pour les débutants Emacs
Sélectionnez les fichiers cibles
Démarrez emacs en tapant «emacs» dans l'invite d'interface de ligne de commande. (Ou, double-cliquez sur l'icône Emacs si vous êtes dans un environnement d'interface utilisateur graphique)
Sélection de fichiers dans un répertoire
Vous devez d'abord sélectionner les fichiers dont vous souhaitez effectuer le remplacement. Utilisez le menu graphique 〖Fichier ▸ Open Directory〗. Emacs vous demandera un chemin de répertoire. Tapez le chemin du répertoire, puis appuyez sur Entrée.
Maintenant, vous verrez la liste des fichiers, et maintenant vous devez marquer les fichiers sur lesquels la recherche / remplacement d'expressions régulières doit fonctionner. Vous marquez un fichier en déplaçant le curseur sur le fichier souhaité, puis appuyez sur m. Décochez-la en appuyant sur u. (Pour répertorier les sous-répertoires, déplacez votre curseur vers le répertoire et appuyez sur i. Le contenu du sous-répertoire sera répertorié en bas.) Pour marquer tous les fichiers par une expression régulière, tapez 【% m】, puis tapez votre modèle d'expression régulière. Par exemple, si vous souhaitez marquer tous les fichiers HTML, tapez 【% m】 puis .html $. (Vous pouvez trouver une liste des commandes de marquage dans le menu graphique "Mark" (ce menu apparaît lorsque vous êtes en mode Dired).)
Sélection de fichiers dans un répertoire et tous ses sous-répertoires
Si vous souhaitez rechercher / remplacer des fichiers dans un répertoire, y compris des centaines de sous-répertoires, voici une méthode pour sélectionner tous ces fichiers.
Appelez find-dired. (vous appelez une commande en appuyant sur 【Alt + x】) Tapez ensuite un nom de répertoire, ⁖ / Users / mary / myfiles
Remarque: si vous utilisez emacs sur un terminal texte non graphique unix et si 【Alt + x】 ne fonctionne pas, le trait de touche équivalent est 【Esc x】.
Emacs vous demandera avec l'invite "Run find (with args):". Si vous devez effectuer le remplacement sur tous les fichiers HTML, tapez -name "* html". Si vous ne vous souciez pas du type de fichier mais simplement de tous les fichiers sous ce répertoire, donnez «-type f».
Maintenant, marquez les fichiers comme décrit ci-dessus.
Recherche / remplacement interactif
Maintenant, vous êtes prêt à remplacer la recherche interactive. Par souci de simplicité, disons que vous souhaitez simplement remplacer le mot «rapide» par «super». Maintenant, appelez dired-do-query-replace-regexp. Il vous demandera la chaîne d'expression régulière et la chaîne de remplacement. Tapez "rapide", entrez, puis "super".
Maintenant, emacs utilisera votre modèle et vérifiera les fichiers, et s'arrêtera et vous montrera chaque fois qu'une correspondance se produira. Lorsque cela se produit, emacs vous le demandera et vous aurez le choix de faire le changement ou de l'ignorer. Pour effectuer la modification, tapez y. Pour ignorer, tapez n. Si vous souhaitez simplement qu'emacs aille de l'avant et apporte toutes ces modifications au fichier actuel, tapez!.
Si vous souhaitez annuler toute l'opération sans enregistrer les modifications que vous avez apportées, tapez 【Ctrl + g】, puis quittez emacs à l'aide du menu 〖Fichier ▸ Quitter Emacs〗.
Enregistrement des fichiers modifiés
Maintenant, après avoir traversé l'épreuve ci-dessus, il vous reste une étape à faire, à savoir l'enregistrement des fichiers modifiés.
Si vous utilisez emacs version 22 ou ultérieure, appelez ibuffer pour passer en mode de liste de tampons, puis tapez 【* u】 pour marquer tous les fichiers non enregistrés, puis tapez S pour les enregistrer tous. (c'est shift-s)
Si vous utilisez une version 21 d'emacs, vous pouvez le faire: appeler les tampons de liste, puis déplacez le curseur sur le fichier que vous souhaitez enregistrer et tapez s. Il marquera le fichier pour une sauvegarde ultérieure. Tapez u pour décocher. Une fois que vous avez terminé, tapez x pour exécuter l'enregistrement de tous les fichiers marqués pour l'enregistrement. (dans emacs, le fichier ouvert est appelé «tampon». Ne tenez pas compte des autres éléments.)
En alternative aux options ci-dessus, vous pouvez également appeler save-some-buffers 【Ctrl + xs】. Emacs affichera ensuite chaque fichier non enregistré et vous demandera si vous souhaitez le sauvegarder.
Remarque: l'expression régulière d'emacs n'est pas la même que Perl ou Python, mais similaire. Pour un résumé et des modèles courants, voir: Emacs Regex.