http://qiita.com/items/1d143b0b69e9aaf252ca で説明した open-junk-file.el だが、作成してバッファを閉じた後に再度開きたい時、ファイルパスをたどるのが面倒だったりする。
以下のコードを .emacs に書いておけば、M-x open-last-junk-file
で最後に作成した使い捨てファイルを一発で開ける。
(require 'em-glob)
(defvar junk-file-dir "~/program/junk/")
(defun open-last-junk-file ()
(interactive)
(find-file (car
(last (eshell-extended-glob (concat
(file-name-as-directory junk-file-dir)
"*/*/????-??-??-??????.*"))))))
(設定は上記 URL の設定に合わせているので、"~/program/junk/"
や "*/*/????-??-??-??????.*"
の部分は設定に合わせて書き換える必要がある。)
また、anything を導入しているなら、以下のコードで使い捨てファイルを一覧表示するという方法もある。
(require 'em-glob)
(defvar junk-file-dir "~/program/junk/")
(defvar junk-file-list
(reverse (eshell-extended-glob (concat
(file-name-as-directory junk-file-dir)
"*/*/????-??-??-??????.*"))))
(defvar anything-c-source-junk-files
'((name . "Junk Files")
(candidates . junk-file-list)
(type . file)))
(defun anything-open-junk-file ()
(interactive)
(anything-other-buffer 'anything-c-source-junk-files "*anything for junk file"))
(global-set-key (kbd "C-x M-j") 'anything-open-junk-file)
これで C-x M-j を入力すると使い捨てファイル一覧が anything で表示される。このコードでは新しいファイルを開きやすいように、リストに reverse をかけてから一覧表示している。