バッファは溜るよ、どこまでも

タグジャンプをしていると、いつのまにかどんどんバッファが溜っていく。C-x C-b してお目当てのソースに行こうと思っても大量のバッファ(ファイルに限らず *Help* とか *Buffer List* とかも含む)がリストされていてその時点でちゃぶ台を返したくなる。こういったバッファ管理の繁雑さは Emacs の悪いところでもありプログラマ向けなところなのかもしれない。

ジャンプ先のバッファは一度確認用に見ることがほとんどなので、 ここではバッファを切り替える際に消しておくようにしておく。

;;; ** switch-buffer
(defun my-back-to-last-buffer ()
	(interactive)
	(kill-buffer (current-buffer))
	(switch-to-buffer (last-buffer)))

(global-set-key "\M-h" 'my-back-to-last-buffer)

これでも根本的な解決策にはなっていない。clean-buffer-list を提供している midnight.el を見てアプローチを決めるのがよさげかも。あとでやってみよ。

;;; ** midnight-mode
(load "midnight")
(setq clean-buffer-list-kill-buffer-names
	  (append clean-buffer-list-kill-buffer-names
			  '("*Backtrace*" "*Completions*" "*scratch*" "*Messages*")))
(setq clean-buffer-list-delay-special 60)

追記:
rubikitch さんから anything.el という汎用検索ツールのelisp(と言えばいいのかな…。なんというか Emacs が文脈の「空気」を読んでいろんな補完を示してくれるツール)を教えていただきました。ありがとうございます。これは便利!

参考サイト