screen とかで、それぞれのセッションで emacs 使ってると掲題のような需要がでてくる。
~/.bashrc
, ~/.zshrc
などでこんな感じのをかく。
if [ $STY ] # screen 内での実行の時
then
export EMACS_SERVER_NAME="server-$STY"
alias emacsclient="emacsclient -s \"$EMACS_SERVER_NAME\""
if ! emacsclient -s "$EMACS_SERVER_NAME" -e "server-name" > /dev/null 2>&1
then
screen emacs --eval "(let () (setq server-name \"$EMACS_SERVER_NAME\")(server-start))"
fi
fi
screen 立ちあげと同時に emacs 起動するの嫌なら screen emacs --eval ...
を alias emacs-server="emacs --eval ...
するのかな。