SSHが端末のタイトルを返さないのはなぜですか?

SSHが端末のタイトルを返さないのはなぜですか?

ご存知のように、X端末(rxvt、gnome-terminal ...)からサーバーにsshを実行すると、sshはuser@hostを反映するようにウィンドウのタイトルを変更します。しかし、二度と変わりません。

この問題を解決するための多くのヒントがインターネットにあります。私は別の1を要求しません。

私が探しているのはなぜこれが起こるのかについての説明です。だから私はそれと一緒に生きる方法を学ぶことができます。 SSHがヘッダを設定しないのはなぜですか?

より適切には:vimができればなぜsshをすることができないのですか?

1 ...問題が単にsshの誤った設定のために発生したという説明がない場合は、この場合の問題に対する解決策を歓迎します。

答え1

端末のウィンドウタイトルは、端末で実行されるすべての項目の出力に含まれる制御文字によって設定されます。 sshはリモート側で生成されたすべての文字をクライアントの標準出力に戻すので、これを認識しません。通常、「ウィンドウタイトルの設定」を実行するほとんどのUNIX / Linuxシステムは、メインウィンドウまたはユーザーのデフォルト値または(または選択したシェルで使用される)構成ファイル内のシェルのプロンプト変数に制御文字を埋め込むことによってPS1これを行います。 )。/etc/bash_profile$HOME/.bashrc$HOME/.bash_profileこのページさまざまなシェルでこれを行う方法について説明します。

したがって、これを説明すると、これらの項目が設定されたリモートシステムにログインし、ウィンドウタイトルが設定され、ウィンドウタイトルが「再び変更」されない理由は、おそらくローカルシステムにこれらのコントロールが組み込まれていないためです。ウィンドウのタイトルをリセットするには、ローカルプロンプト文字を使用してください。つまり、ウィンドウのタイトルがこれらの制御文字で設定されている場合、自動的に設定は解除されません。制御文字を変更するには、通常、ローカルのプロンプト変数に配置して、実際に制御文字を再出力する必要があります。

ローカルコンピュータで実行されているVIMは、Xサーバーからウィンドウのタイトルを照会し(参照のウィンドウIDを介して$WINDOWID)、シャットダウン時に復元できるようにタイトルを保存できます。これはVIMオプションを介して制御できますtitletitlestring参照:help 'title')。 sshクライアントはこれをまったく実行していないようです。これは、sshがウィンドウのタイトルを直接管理せずにリモートシェルから文字を出力するだけである可能性があります。

編集:コメントのVIMヘッダー動作を修正したStephane Chazelasに感謝します。

関連情報