EmacsClient なる便利なやつを使うように設定してみました。
~/bin/emacs
#!/bin/sh
echo $WINDOW >~/tmp/emacsclient-caller
screen -X select 0
emacsclient "$1"
~/.zshenv
export PATH=~/bin:$PATH
~/.screenrc
screen -t Emacs 0 /usr/bin/emacs
~/.emacs
;;;;;; OS / Version
(defvar *on_linux* (string-match "linux" system-configuration))
;;;;;; EmacsClient
(when *on_linux*
(add-hook 'after-init-hook 'server-start)
(add-hook 'server-done-hook
(lambda ()
(shell-command
"screen -X select `cat ~/tmp/emacsclient-caller`"))))
基本的に screen, emacs 立ち上げっぱなしなので、screen 0 に emacs を(都合悪いこととってあるかなぁ…)。
これで、0以外の別の screen で emacs <ファイル名> で開くと、screen 0 の Emacs で新しいバッファ作って開いてくれます。グレイツ。
参考: http://www.emacswiki.org/cgi-bin/wiki/EmacsClient http://unknownplace.org/memo/2005/12/11
UPDATE
emacsclient -n "$1"
“-n” つかうなら server-done-hook が意味ないので、とりあえず -n なしで emacsclient 使う。EDITOR / SVN_EDITOR 用 と コマンドライン用わけないと…。