A seguinte função foi escrita pelo nome de usuário Starkey no stackoverflow em uma pergunta relacionada: link
(defun close-all-buffers ()
(interactive)
(mapc 'kill-buffer (buffer-list)))
EDIT : Como sugerido por @Drew no comentário abaixo, geralmente é uma boa ideia manter buffers internos que tenham um espaço principal em seus nomes. O doc-string fornece uma explicação de como esta função funciona. O atalho de teclado da tecla F5
é apenas um exemplo para testar a função em conjunto com um argumento universal.
(defun custom-kill-buffer-fn (&optional arg)
"When called with a prefix argument -- i.e., C-u -- kill all interesting
buffers -- i.e., all buffers without a leading space in the buffer-name.
When called without a prefix argument, kill just the current buffer
-- i.e., interesting or uninteresting."
(interactive "P")
(cond
((and (consp arg) (equal arg '(4)))
(mapc
(lambda (x)
(let ((name (buffer-name x)))
(unless (eq ?\s (aref name 0))
(kill-buffer x))))
(buffer-list)))
(t
(kill-buffer (current-buffer)))))
(global-set-key [f5] 'custom-kill-buffer-fn)