kill-bufferをundoしたい

直前に閉じたバッファを開く っていう機能ないのかな。 なかったら作ろうかな。 Firefoxの「タブを閉じるをやり直す」みたいな。

なんてぼやいたところ、なおとさんからたたき台が!。
すばらしい。これならたいていのシチュエーションで救われますね。

(defvar killed-file-name nil)
(add-hook 'kill-buffer-hook
	  (lambda ()
	    (when (buffer-file-name)
	      (setq killed-file-name (expand-file-name (buffer-file-name))))))
(defun find-killed-file ()
  (interactive)
  (when killed-file-name
    (find-file killed-file-name)
    (setq killed-file-name nil)))


上記elispはkilled-file-nameを一個記録するんですが、一個ではなくスタックデータ構造にpushしていくとさらに良いと思うものの、言語として実装方法が分からず今晩は時間切れで断念。
(stack-push STACK ELEMENT)あたりを使うのかなあ。