パーティションにgnuscreenを復元する

パーティションにgnuscreenを復元する

Gnu画面にいるときは水平(または垂直)に分割し、新しいウィンドウでターミナルセッションを開始できます。エリア。その画面から切り離してCtrl-a,d復元すると、ウィンドウ全体で分割された2番目の領域のみが表示されるようになります。exit2番目の領域を入力すると、最初のセッションが表示され、再入力してexit実際に画面セッションを閉じることができるため、最初の領域がまだどこかに存在することがわかります。

複数の領域に分割された画面を復元し、分割された領域をすべて同時に表示するにはどうすればよいですか?

この問題を再現する簡単な方法:

$ screen -S splitresume
$ export PS1="region 1$ "
<Ctrl-a |>, <Ctrl-a TAB>, <Ctrl-a c>
$ export PS1="region 2$ "
<Ctrl-a d>
$ screen -r splitresume

少なくとも私のシステムではscreen -r splitresumeregion 2$上記のように、そのターミナルセッションを終了すると、PS1を持つターミナルを見ることができますregsion 1$。目に見える空間の領域を復元して再描画できるようにしたいです。

編集:コマンドを試しましたが、resize画面の応答は単に文句を言いますresize: need more than one region

答え1

バラよりGNU画面のよくある質問

モニターを分割してから分離すると、画面が分割されるのを忘れてしまいます。

(暗黙の質問は、「分離されたウィンドウを分離した状態に保つにはどうすればよいですか?」です。)

簡単に言えば、答えはできないということです。より長い答えは偽にすることができるということです。 (注:おそらく4.1.0に番号が付けられている次の画面バージョンでは、ディスプレイレイアウトを覚えておくことができます。)

分割はディスプレイの属性です。スクリーンセッションを管理するプロセスはセッションについて実際には知らず、セッションを表示する個々のプロセスだけを知っています。したがって、画面セッションは分割について知らないため、分割を覚えておらず、一度分割すると分割について知っているプロセスが終了します。

ハッキングは、ネストされたスクリーンセッションを使用することです。セッションを開始し、頻繁に使用しないいくつかのエスケープシーケンスを提供します(またはエスケープ文字を完全に無効にします)。よく使用される分離キーシーケンスをこのスクリーンセッションにバインドします。次に、ホーム画面セッションを開始または接続します。すべての操作はセッション内で完了し、ディスプレイを分割できます。ただし、分離すると外部セッションも分離されるため、内部セッションの分割は維持されます。

デフォルトのエスケープ文字Caを使用していると仮定すると、代替screenrcには次のものを含める必要があります。

escape ""
bindkey ^ad detach

関連情報