2011-12-04 16 views
7

Supponiamo che io voglia applicare delete-trailing-whitespace a tutti i buffer in una sessione di Emacs. Come lo posso fare?Applicare una funzione a tutti i buffer in emacs

Ho in questa sessione molti buffer. Quindi, invece di applicare M-x delete-trailing-whitespace manualmente a ciascun buffer, ho bisogno di un modo per farlo automaticamente.

La ringrazio molto

risposta

9

Questo dovrebbe farlo:

(defun delete-trailing-whitespace-each-buffer() 
    (interactive) 
    (mapc (lambda (buffer) 
      (condition-case nil 
       (with-current-buffer buffer 
       (delete-trailing-whitespace)) 
      (buffer-read-only nil))) 
     (buffer-list))) 

Non farà nulla sulla sola lettura buffer.

+0

Grazie mille. Funziona! – Israel

5

ibuffer è un'altra opzione. È possibile selezionare rapidamente i buffer desiderati (magari con espressioni regolari) e premere E per valutare un modulo in ciascun buffer. Questo funziona per qualsiasi forma.

Problemi correlati