Emacsの不要なバッファーを自動的にkillする
Emacsのbufferをtabで切り替えるのはあまり好きでないので switch-buffer の機能を使っているが、magitやdired関係の不要なバッファーが沢山増えていくと煩わしくなる。
手動で削除すれば済む話ではあるが、やっぱり自動化したい。MELPAでいろいろpackageを探したが適当なものがなく、ググっていたら下記の記事を見つけました。
早速設定して使ってみたところ実に快適!
;; automatically kill unnecessary buffers
(use-package tempbuf)
(add-hook 'dired-mode-hook 'turn-on-tempbuf-mode)
(add-hook 'magit-mode-hook 'turn-on-tempbuf-mode)
参考
switch-buffer機能は、ivy-switch-buffer と iflipb とを併用しています。
前者は、Helm-mini の代わりに使います。後者はキー操作によって開いているバッファーを切り替えたいときに使います。
(ivy-mode 1)
(setq ivy-use-virtual-buffers t)
(setq enable-recursive-minibuffers t)
(bind-key "M-:" 'ivy-switch-buffer)
iflipb.el の機能は、Emacs標準の M-x switch-to-next-buffer
とは全く別物で優れものです。詳細はるびきちさんの記事が参考になるでしょう。
;; iflipb
(setq iflipb-ignore-buffers (list "^[*]" "^magit"))
(bind-key "C-<right>" 'iflipb-next-buffer)
(bind-key "C-<left>" 'iflipb-previous-buffer)
私は org-modeを使わないので C-<right>
C-<left>
に key bind してますが、そこはお好みで設定してください。