Emacs で作成した使い捨てファイルを簡単に開く

  • 5
    Like
  • 0
    Comment
More than 1 year has passed since last update.

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 をかけてから一覧表示している。