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


32

セッションを再接続するときに、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

の方がうまくいくかもしれませんがtmux、動的にターミナルウィンドウのサイズを変更でき、内部のtmuxがそれに続きます。
number5

回答:


38

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


で起動しますが-a -A、他に誰も接続されていません。
マイケル

1
これは、Ubuntu 14.04を介した画面の問題です。Fitが機能しません。切断して再接続します。画面4.2.1は、信頼できるバックポートから入手できます。バックポートリポジトリのパッケージを有効にして使用する方法については、ユーザーバックポートのドキュメントを参照してください。
グレッグベル

1
これを行った後でも、screen実際にサイズ変更を行うために必要な信号を送信するには、ターミナルウィンドウのサイズを変更する必要がありました。
krs013

おそらく、別の端末(MacのiTerm2)を使用しているため、これらの問題は解決しませんでした。Fitが機能しなかったため、使用screen -D -rしてウィンドウを切り離して再接続し、ウィンドウのサイズを変更しようとしましたが、同じままでした。Vimでは、にcolumns設定されていたことがわかり204ます。
haridsv

私は、画面-ls実行したときに取り付けたとして、私の画面がまだ現れてました-あなたはシチューが言ったように、他のすべてのオプションを試した後、私のために働い-r画面-D
ヘイデンクロッカーを

8

この回答はPuTTYにのみ適用されることに注意してください。私もそうではないオペレーティングシステムを使用することを余儀なくされており、PuTTYはシステム上の他の制限のための唯一の本当の選択肢です。同じ問題が発生していました。既存の画面セッションを開始または接続すると、画面のサイズが変更されました。私はここで答えを無駄にしようとしました(MSIを介してインストールされたPuTTY 0.67を備えたWindows 10)。これらの回答は、標準のUN * Xターミナルで機能したかもしれませんが、PuTTYでは機能しませんでした。

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


キティ ...はるかに良いドロップでのPuTTYの代替そのOS上のあなたが使用するように強制しているある
Anubioz

5

これを(/ 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/6593


1
MPuttyこれは決定的にページ全体を埋めるが、小さすぎて開けないパテセッションを解決
Thomas8
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.