2011-12-04 16 views
7

Supongamos que deseo aplicar delete-trailing-whitespace a todos los buffers en una sesión de Emacs. ¿Cómo puedo hacer eso?Aplicar una función a todos los buffers en emacs

Tengo en esta sesión muchos almacenamientos intermedios. Entonces, en vez de aplicar M-x delete-trailing-whitespace manualmente a cada buffer, necesito alguna manera de hacerlo automáticamente.

Muchas gracias

Respuesta

9

Esto debe hacerlo:

(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))) 

No va a hacer nada en tampones de sólo lectura.

+0

Muchas gracias. ¡Funciona! – Israel

5

ibuffer es otra opción. Puede seleccionar rápidamente los almacenamientos intermedios que desee (tal vez mediante regexp) y presionar E para evaluar un formulario en cada almacenamiento intermedio. Esto funciona para cualquier forma.

Cuestiones relacionadas