こんにちは、chibaです!
Firefoxを使っていると良くお世話になるre-open tab(Ctrl+Shift+T)ですが、Emacsでも欲しくなりました。
ということで早速作ってみましたが、バッファをそのまま復元するというのは分からなかったので、前回閉じたファイルだけ復活できるというバージョンで。
バッファを復元できる方法が分かれば、それを試してみたいですね。
;; utils (defmacro aif (test then &optional else) `(let ((it ,test)) (if it ,then ,else))) (defmacro awhen (test &rest body) `(aif ,test (progn ,@body))) (progn ;; re-open-file (defvar *recent-buffers*) (setq *recent-buffers* () ) (defadvice kill-buffer (before kill-buffer-before activate) (awhen buffer-file-name (push it *recent-buffers*))) ;; (ad-deactivate 'kill-buffer) (defun re-open-file () (interactive) (aif *recent-buffers* (find-file (pop it)) (message "null"))) (define-key global-map [(control x) (shift ?k)] 're-open-file) )
■