在Emacs中对所有缓冲区应用一个函数

8

假设我想在Emacs会话中对所有缓冲区应用“delete-trailing-whitespace”。我该怎么办?

在这个会话中,我有很多缓冲区。因此,而不是手动地将M-x delete-trailing-whitespace 应用于每个缓冲区,我需要一种自动的方法。

非常感谢!

2个回答

10

这应该可以解决问题:

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

在只读缓冲区上,它不会执行任何操作。


5

ibuffer 是另一个选项。您可以快速选择所需的缓冲区(也许是通过正则表达式),然后按下 E 在每个缓冲区中评估一个表单。对于任何表单都适用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接