Pesquisar todos os buffers Emacs abertos

Suponha que você receba alguma mensagem de erro do seu programa ou esteja olhando para um commit anterior do VCS. Você deseja editar o arquivo de origem responsável e tem quase certeza de que ele já está aberto em um de seus muitos buffers do Emacs. Ou talvez você queira encontrar todos os comentários ‘TODO’ ou ‘FIXME’ espalhados em seus buffers abertos. Como você encontra rapidamente o buffer que deseja?

Graças a offby1, isso é muito fácil!

;; I know that string is in my Emacs somewhere!

(defcustom search-all-buffers-ignored-files (list (rx-to-string '(and bos (or ".bash_history" "TAGS") eos)))
"Files to ignore when searching buffers via \[search-all-buffers]."

:type '
editable-list)

(require 'grep)
(defun search-all-buffers (regexp prefix)

"Searches file-visiting buffers for occurence of REGEXP. With

prefix > 1 (i.e., if you type C-u \[search-all-buffers]),

searches all buffers."

(interactive (list (grep-read-regexp)

current-prefix-arg))

(message "Regexp is %s; prefix is %s" regexp prefix)

(multi-occur

(if (member prefix '
(4 (4)))
(buffer-list)
(remove-if
(lambda (b) (some (lambda (rx) (string-match rx (file-name-nondirectory (buffer-file-name b)))) search-all-buffers-ignored-files))
(remove-if-not 'buffer-file-name (buffer-list))))

regexp))


(global-set-key [f7] '
search-all-buffers)

( fonte )