将函数应用于emacs中的所有缓冲区

Isr*_*ael 7 emacs emacs23

假设我想应用于delete-trailing-whitespaceEmacs会话中的所有缓冲区.我怎样才能做到这一点?

我在这个会话中有很多缓冲区.因此,M-x delete-trailing-whitespace要手动应用于每个缓冲区,我需要一些方法来自动生成它.

非常感谢你

Mic*_*man 9

这应该这样做:

(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)))
Run Code Online (Sandbox Code Playgroud)

它不会对只读缓冲区执行任何操作.


eve*_*_jr 5

ibuffer是另一种选择.您可以快速选择所需的缓冲区(可能是通过regexp),然后按E来评估每个缓冲区中的表单.这适用于任何形式.