ziguzagu.org

EmacsClient すこし改良

先週設定した EmacsClient があんまり使い勝手がよくない。。。

気に入ってないのは、

  • screen 起動すると Emacs も起動するのはやっぱり余計なときがある(.screenrc)
  • Emacs を起動する screen の window が 0番固定はなんだかなぁ というところ。特に2個目のやつが僕はキモイ。

で、改良してみた。

~/.emacs

起動した window を覚えておく設定

(when *on_linux*
  (add-hook 'after-init-hook 'server-start)
  (shell-command "echo $WINDOW >~/.emacs.d/emacs-server-window")
  (add-hook 'emacs-kill-hook
            (lambda ()
              (shell-command
               "rm ~/.emacs.d/emacs-server-window"))))

~/bin/emacs 改め ~/bin/ec

覚えておいた window に戻って emacsclient

#!/bin/sh
echo $WINDOW >~/.emacs.d/emacsclient-caller
if [ -f ~/.emacs.d/emacs-server-window ]; then
    screen -X select `cat ~/.emacs.d/emacs-server-window`
fi
emacsclient -n "$1"

.screenrc

Emacs 起動設定はいらないので、これ、削除。

screen -t Emacs 0 /usr/bin/emacs

これで、Emacs をどの window で起動しても emacsclient でいい感じに開いてくれる。 前の設定よりはイケてるはず。。。