ziguzagu.org

EmacsClient

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 用 と コマンドライン用わけないと…。