GNU画面をデタッチ/再アタッチした後にウィンドウを分割する方法


35

Ubuntuサーバーで画面を使用しています。

画面が4つの領域に分割されており、それぞれが異なるウィンドウを表示しています。

問題は、4つのウィンドウをデタッチ(または再アタッチ)しても、1つの領域しかなく、最初からC-a Sやり直す必要がある場合ですか?

再接続時に画面を分割したままにするにはどうすればよいですか?

回答:


15

画面のFAQから:

(暗黙の質問は、「どのように分割ウィンドウをデタッチ上に保持するのですか?」)

短い答えはあなたができないということです。より長い答えは、あなたがそれを偽造できるということです。

スプリットはディスプレイのプロパティです。スクリーンセッションを管理するプロセスは、実際にはそれらを知りません。セッションを表示している単一のプロセスのみが行います。したがって、画面セッションは分割を認識できないため、分割を記憶できません。一度切り離すと、分割を認識したプロセスは終了します。

ハックは、ネストされたスクリーンセッションを使用することです。1つのセッションを開始し、あまり使用しないエスケープシーケンスを指定します(または、エスケープキャラクターを完全に無効にします)。通常のデタッチキーシーケンスをこの画面セッションにバインドします。次に、メイン画面セッションを開始または接続します。すべての作業は内部セッションで行われ、表示を分割できます。ただし、デタッチすると、デタッチするのは外部セッションになるため、内部セッションでの分割は保持されます。

デフォルトのエスケープ文字Caを使用すると仮定すると、代替screenrcには以下が含まれます。

escape ""
bindkey ^ad detach

1
過去1〜2年を構成し、ネストされたスクリーンセッションを頻繁に使用してきたので、お勧めします。時間が経つにつれて、追加された複雑さの痛みは減少しますが、より柔軟なセットアップの有用性は増加します。
-funroll

13
新しい機能、つまり、layoutはこの答えを無効にします!
カディール

「新しい」組み込みレイアウト機能については、superuser.com /
a / 516822/113250を

67

既にいくつかのウィンドウが設定されていて、それらを保存したい場合、これを行うことができることがわかりました:

Ctrl-a
:
layout save default

その後、セッションをデタッチして再アタッチすると、レイアウトが復元されます。

Screenバージョン4.00.03jw4(FAU)2-May-06(Ubuntu 12.04および12.10)で動作します

また、次のようなデーモンセッションを作成することもできます。

$> screen -dmSU mysession

呼び出して、常に利用できるようにします。

$> screen -r mysession

5
はるかに優れたソリューション。これは受け入れられた答えであるはずです。(XDを常に下にスクロールする理由を知っています)
BrainStone

1
残念ながら、redhatの現在のバージョンにscreen 4.00.03 (FAU) 23-Oct-06はこの機能がないようです。しかし、そうすべきです!
デビッドドンブロウスキー

これはより良い答えですが、を使用するたびにレイアウトを自動的に保存するより良い答えが下にあります.screenrc。その答えに賛成票を投じる
Mark

14

gitバージョンでは、新しい機能layoutが導入されました。

screen(1)から:

新しいレイアウト[タイトル]

新しいレイアウトを作成します。画面は1つのリージョン全体に変わり、空白のウィンドウに切り替わります。ここから、必要に応じて表示するリージョンとウィンドウを作成します。新しいレイアウトには、ゼロから始まる最小の使用可能な整数で番号が付けられます。オプションで、新しいレイアウトにタイトルを付けることができます。それ以外の場合、デフォルトのタイトルは「レイアウト」になります。コマンドレイアウトタイトルを使用して、後からいつでもタイトルを変更できます。

画面セッションを切り離しても、レイアウトには領域の分割方法が記憶されています。

たとえば、画面構成はフォロー構成で始まります。

layout new
split
split -v
screen 0
focus next
screen 1
focus bottom
screen 2
detach

このセッションを再接続すると、3つの分割された領域を持つ(最後に選択した)レイアウトに戻ることができます。


:誰もが提出は、この取得するために必要とされる(P)パッチを適用するi'nオタクの十分が、私はトランクコード(悪いカルマを持って実行されることはありません)知っている
borrel


6

tmuxが行うようです。これは、スクリーンに触発された新しいマルチプレクサプロジェクトですが、ゼロから、BSDライセンスの下でコーディングされています。

(私の英語が読むのが不快な場合はごめんなさい:-°)


-1

私は最近、スクリーンマン全体を読みましたが、スクリーン自体がそれを自動的に記憶できない場合、それを行う一般的な方法はありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.