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))