先週設定した 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 でいい感じに開いてくれる。 前の設定よりはイケてるはず。。。