web-dev-qa-db-ja.com

画面を再接続すると(irssiが実行されている)、ウィンドウのサイズが強制的に変更されます

切り離された画面(Irssiを含む)に再接続するたびに、PuTTY画面のサイズが起動時のサイズに変更されます。この後にウィンドウサイズを変更し、画面を切り離してサイズを元に戻すと、ウィンドウは元のサイズに再びサイズ変更されます。ウィンドウとは、ウィンドウボックスのPuTTYウィンドウを意味します。この機能をオフにするにはどうすればよいですか?

ローカルOSとしてWindows XP、リモートOSとしてCentOS6.0を使用。PuTTY0.61。

9
eis

画面がリモートセッションのサイズを変更しないようにすることもできます。もう1つの答えは、1つのローカルPuTTYインストールでこれを防ぎますが、別のワークステーションに来た場合はどうなりますか?

とにかく、画面がxtermのサイズを変更しないようにするには、次のことを行う必要があります。

  • 編集/etc/screenrc
  • このテキストを見つけてください

# Long time I had this in my private screenrc file. But many people
# seem to want it (jw):
# we do not want the width to change to 80 characters on startup:
# on suns, /etc/termcap has :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l:

#termcap xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
#terminfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

  • これらの2つのtermcap行のコメントを解除すると、画面は今後動作します。

私はちょうどこの問題に遭遇しました、グーグル、答えを見つけました ここ 、テストして、それが他の人に役立つかもしれないと思いました。

グローバルscreenrc構成を編集できない、または編集したくない場合は、~/.screenrcは現在のユーザーにとっては問題ありません。

10
Zlatko

答えが見つかりました。この機能は「リモート端末のサイズ変更」と呼ばれ、 PuTTY構成 で説明されているように、[構成]-> [端末]-> [機能]-> [リモート制御端末のサイズ変更を無効にする]で無効にできます。

ただし、画面を再接続するとウィンドウのサイズ変更がリモート要求される理由はよくわかりません。

12
eis

受け入れられた答えは、現象の説明を欠いています。これが1つです:

  • isの長い文字列は、端末の初期化文字列であり、通常はrsresetで使用)と同じです。
  • 与えられた例には、端末を132列から80列にリセットする制御シーケンスが含まれています。その部分は_\E[?1;3;4;6l_の「3」であり、4つのコントロールに分割できます。幅に影響を与えるのは_\E[?3l_です("132 Column Mode (DECCOLM)"については XTerm制御シーケンス を参照してください)。
  • これはたまたまVT100シーケンスであり、 X11R5 xterm 端末の説明で使用されていました。
  • 画面が起動(または接続)すると、万が一の場合に備えて端末を初期化します。これにより、端末の幅が変わります。
  • CentOS6はもう少し古いです。現在のアップストリームのxterm記述は、かなり長い間短いシーケンスを使用しており、より多くのものを初期化します。
  • 新しい/短いシーケンスは次のようになります:_is2=\E[!p\E[?3;4l\E[4l\E>_( _xterm-basic_ で定義)。 _\E[!p_部分はDECSTRであり、文字セット、色、およびビデオ属性をリセットします。古いシーケンスはそれをしませんでした。 screenにそれを使用するように指示することは機能しますが、それほどクリーンではありません。
  • 別のTERM設定を使用する場合、_.screenrc_でのカスタマイズは効果がありません(特定の設定に一致するためにTERMを使用するため)。
  • 特に、 _xterm-256color_ のようなものを使用すると、同じ動作に再び気付く場合があります。
2
Thomas Dickey