ff-find-other-file と elscreen の連携
というわけで、M-x find-function RET ff-find-other-file RET とかやって、find-file.el を眺めてみると、ff-find-file と ff-switch-to-buffer をいじれば良さそう。
(defadvice ff-find-file (around elscreen-ff-find-file (file &optional in-other-window new-file) activate) (ff-switch-file 'elscreen-find-file nil file nil new-file)) (defadvice ff-switch-to-buffer (around elscreen-ff-switch-to-buffer (buffer-or-name &optional in-other-window) activate) (ff-switch-file (lambda (buffer) (elscreen-find-and-goto-by-buffer buffer t)) nil buffer-or-name nil nil))
こんなんでどうでしょう。あと、elscreen-switch-or-create も elscreen-find-and-goto-by-buffer で十分ぽい。あえて作るならこんな感じ?
(defun elscreen-switch-or-create (buffer) (elscreen-find-and-goto-by-buffer buffer t))