Предыстория в двух словах: Забиндил переключение буферов, хочу без дополнений игнорировать «*» буферы.
Выдрал на просторах кусок конфига:
;; Removes *scratch* from buffer after the mode has been set.
(defun remove-scratch-buffer ()
(if (get-buffer "*scratch*")
(kill-buffer "*scratch*")))
(add-hook 'after-change-major-mode-hook 'remove-scratch-buffer)
;; Removes *messages* from the buffer.
(setq-default message-log-max nil)
(kill-buffer "*Messages*")
;; Removes *Completions* from buffer after you've opened a file.
(add-hook 'minibuffer-exit-hook
'(lambda ()
(let ((buffer "*Completions*"))
(and (get-buffer buffer)
(kill-buffer buffer)))))
Когда я открываю файл и если открывается буфер *Completions*, просмотр папок, то строки ;; Removes *scratch* автоматом его закрывают.
Сумбурнополучилось, кхм. Как тестил: комментировал этот кусок и всё работает, только он в памяти висит, пока руками не убьёшь.
Задача - автоматически закрывать буфер *scratch* после открытия файла.