設定
私はローカルコンピュータでscreenを実行しており、別の画面ウィンドウを使用して別のホストに接続しています。 sshの実行時に自動的にウィンドウ名をホスト名に変更してくれればいいようです。
方法
次の2つの方法のさまざまなバリエーションを試しました。
1)LocalComand
SSH設定ファイルで使用:
Host *
PermitLocalCommand yes
LocalCommand '[ "${TERM:0:6}" == "screen" ] && printf "\ek@%h\e\\"
2) カスタム bash 関数を作成します。
# function to set screen name based on host and reset on exit
function ssh() {
echo -e '\033k'@$1'\033\\'
/usr/bin/env ssh -Y "$@"
echo -e '\033k'local'\033\\'
}
質問
どちらの方法も機能しますが、オートコンプリートなどの機能を妨げているようです。
$ scp user@host:~/.s<tab>
...o^[\\\\ ...cal^[\\\\
質問
$TERM == screen
ホストに接続したときにのみ実行LocalCommand
(または機能)を許可し、オートコンプリートにssh()
使用するときは許可しないように、いくつかの条件(ifチェックに加えて)を使用できますか?