Применить функцию ко всем буферам в Emacs - PullRequest
7 голосов
/ 05 декабря 2011

Предположим, что я хочу применить delete-trailing-whitespace ко всем буферам в сеансе Emacs.Как я могу это сделать?

У меня в этом сеансе много буферов.Поэтому вместо того, чтобы применить M-x delete-trailing-whitespace к каждому буферу вручную, мне нужен какой-то способ сделать это автоматически.

Большое спасибо

Ответы [ 2 ]

9 голосов
/ 05 декабря 2011

Это должно сделать это:

(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 голосов
/ 06 декабря 2011

ibuffer другой вариант.Вы можете быстро выбрать нужные буферы (возможно, с помощью регулярного выражения) и нажать E , чтобы оценить форму в каждом буфере.Это работает для любой формы.

...