2009-09-24 7 views
4

Existe-t-il une commande emacs qui appliquerait une macro kbd à chaque fichier dans dired?Emacs: Macros clavier et Dired

par exemple. query-replace-regexp a dired-do-query-replace-regexp

Je cherche un dired-do-call-last-kbd-macro

Répondre

1

Ch f dired-do-query-replace-regexp révèle le code pour cela:

 
(dolist (file (dired-get-marked-files nil nil 'dired-nondirectory-p)) 
    (let ((buffer (get-file-buffer file))) 
     (if (and buffer (with-current-buffer buffer 
      buffer-read-only)) 
     (error "File `%s' is visited read-only" file)))) 

Je ferais juste un élisp qui fait ce que vous voulez en utilisant ceci comme modèle

+0

Ceci est uniquement la partie qui affiche un message d'erreur. La partie qui fait le remplacement est la suivante: (balises query-replace de à délimitée \t \t '(dired-get-marked-fichiers néant néant' Dired-nondirectory-p)) Mais le code affiché est probablement mieux de baser le code de toute façon. – dkagedal

+0

whoops, c'est vrai! lol. – aaron

3

Une autre option est de le faire:

  1. aller au sommet de votre tampon Dired
  2. Enregistrer une macro
  3. Appuyez sur Entrée pour visiter le fichier
  4. Mx kmacro-call-ring-2
  5. Cx o (autre tampon)
  6. vers le bas une ligne
  7. Arrêter l'enregistrement
  8. C-u 0 C-x e (appel de la dernière macro-clavier jusqu'à la fin du fichier)
+0

Intéressant, mais vous n'imaginez pas que vous devez d'abord charger kmacro (une bibliothèque que je n'avais jamais vu auparavant). – dkagedal