Apply a function to all buffers in emacs
Asked Answered
C

2

8

Suppone that I want to apply delete-trailing-whitespace to all buffers in an Emacs session. How can I do that?

I have in this session many buffers. So instead to apply M-x delete-trailing-whitespaceto manually each buffer, I need some way to make it automatically.

Thank you very much

Conformist answered 4/12, 2011 at 23:2 Comment(0)
C
10

This should do it:

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

It won't do anything on read-only buffers.

Consolidation answered 4/12, 2011 at 23:9 Comment(0)
A
5

ibuffer is another option. You can quickly select the buffers you want (maybe by regexp), and press E to evaluate a form in each buffer. This works for any form.

Actinism answered 6/12, 2011 at 0:10 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.