棚からパルチャギ

日々の雑記、ニュース拾いとか

2013. 05. 03

リモート接続先のscreenエスケープキーを変更する

dotfilesはgithubに置いていて結構いろいろな環境で使いまわしているのだけど、ローカル環境とリモートの接続先で同じ設定のscreenが動作している場合なんかに、 エスケープキーがローカルに取られて困ることがあるので、ssh接続時にはリモート側の設定を変更するようにした。

.zshrcにssh接続かどうかの判定を追加して、起動時オプション -e でキーを変更。 Emacs使っていないので普段はデフォルトのCtrl+aのままだけど、リモート接続時にはCtrl+tを使うように設定してる。 ssh接続かどうかの判定は、環境変数$SSH_CONNECTIONに値があるかどうかを見ればよい。

if [ -z "${SSH_CONNECTION}" ] ; then [ ${STY} ] || screen -D -RR -U else setopt nonomatch; screen -UxRR -e^Tt fi

一度変更すると既存のscreenセッションにも影響してしまうので、本当はdetach時に元に戻したりできるとよいなあ。とか。 接続先はだいたいサーバ用途で端末ない想定だし、おとなしくscreenrcを個別に用意するのが普通に簡単という気もする。