web-dev-qa-db-ja.com

強制的にGNU画面を再接続時に現在の端末の幅にリフローしますか?

セッションを再接続するときにGNU画面を既存の端末の幅にリフローするように強制します。マシンをCentOS 6にアップグレードする前にこれは正しく機能していたようですが、わかりません復元方法(TERM=xterm

セッションを再アタッチするときはいつでも、デタッチしたときの状態に関係なく、80カラムで起動し、それに合わせて端末(この場合はPuTTY)のサイズを変更します。

私は起動して再接続しています:

screen -aA -R <session>

私の.screenrcには、次のものと、いくつかの無関係なキーバインディングのみが含まれています。

term xterm

defscrollback 10000

# status line at the bottom
hardstatus on
hardstatus alwayslastline
hardstatus string "${-}%{.0c}%-w%{.y0}%f%n %t%{-}%+w %=%{..G}[%H] %{..Y} %D %M %d, %Y %c | Load: %l"
caption splitonly "%{.yK}%3n t"
caption string "%{.c0}%3n %t"

vbell off

# Fix fullscreen programs
altscreen on
33
Michael

ctrl-a Fを再接続した後、「fit」コマンドを実行して現在のウィンドウのサイズを変更します。 -Aオプションを使用して再接続すると、再接続時にすべてのウィンドウのサイズが変更されます。アタッチしているときに、スクリーンセッションにまだアタッチされている他のユーザーはいますか?たとえば、-rの代わりに-xを使用して再接続する必要がありますか? 「screen -x」の代わりに「screen -D -r」を使用して再接続するときに、他のデバイスを切り離すことができます。これにより、ウィンドウが自動的に再調整されると思います。

41
stew

この回答はPuTTYにのみ適用されることに注意してください。私も使いたくないオペレーティングシステムを使用せざるを得ません。システムに他の制限があるため、PuTTYが唯一の現実的な選択肢です。同じ問題が発生しました。既存の画面セッションを開始または接続すると、画面のサイズが変更されます。私はここで答えを試してみましたが(MSI経由でインストールされたPuTTY 0.67がインストールされたWindows 10)。これらの回答者は標準のUN * X端末で機能した可能性がありますが、PuTTYでは機能しませんでした。これは別の野獣です。

オプションを掘り下げたところ、「ターミナル->機能」の下に「リモート制御ターミナルのサイズ変更を無効にする」というオプションがあります。チェックボックスをオンにして設定を適用し、画面を再試行してください。問題は解決したと思います。

8
db_

これを(/ etc/screenrcから)〜/ .screenrcに追加してみてください:

# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
#  in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

https://superuser.com/a/217281/659

5
Antti Rytsölä