open-junk-file したら elscreen で新しいスクリーンが開くようにする

id:rubikitch さんの open-junk-fileで開くバッファを、elscreen の新しいスクリーンで開くようにする。

(defun open-junk-file ()
  (interactive)
  (let* ((file (expand-file-name
                (format-time-string
                 "%Y/%m/%Y-%m-%d-%H%M%S." (current-time))
                "~/My Dropbox/junk/"))
         (dir (file-name-directory file)))
    (make-directory dir t)
    (find-file-other-window (read-string "Junk Code: " file))))
;; (global-set-key "\C-xj" 'open-junk-file)
(global-set-key "\C-xj" '(lambda () (interactive) (elscreen-create) (open-junk-file)))

一番下に追加してる部分がその設定。C-x j にフックさせている。
(interactive) つけないとうまく動かない。


global-set-key で2つの処理をフックするときは

(global-set-key '(lambda () (interactive) do something ...))

とするのを覚えておきたい。


オリジナルの open-junk-file に手を加えるなら、以下のようにしても同じ。

(defun open-junk-file ()
  (interactive)
  (elscreen-create) ;; ここに追加
  (let* ((file (expand-file-name
                (format-time-string
                 "%Y/%m/%Y-%m-%d-%H%M%S." (current-time))
                "~/My Dropbox/junk/"))
         (dir (file-name-directory file)))
    (make-directory dir t)
    (find-file-other-window (read-string "Junk Code: " file))))
(global-set-key "\C-xj" 'open-junk-file) ;; 呼び出し部分は変えない

追記

elscreen で開くのはあんまり意味がない気がしてきた。