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

时间:2011-12-04 23:02:38

标签: emacs emacs23

我希望将delete-trailing-whitespace应用于Emacs会话中的所有缓冲区。我怎么能这样做?

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

非常感谢

2 个答案:

答案 0 :(得分: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)))

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

答案 1 :(得分:5)

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