web-dev-qa-db-ja.com

GNU screen-分割された画面でセッションを復元する

screenの分割されたセッションを復元すると、印刷セッションが1つしかないため、表示セッションの数を再構成する必要があります。

元のscreen構成を取得する別の方法はありますか?

9
almorel

これは現在ハックなしでは不可能です(次の段落を参照)。ただし、これを行うために必要な機能は、画面の現在のgitツリーにすでに追加されています。将来のバージョンでは、「layoutsave」および「layoutload」コマンドは、最後のレイアウトだけでなく、他の名前付きレイアウトもロードできるようになります。レイアウトの循環もサポートされていると思います。

現在のトリックは、画面内で画面を使用することです。すべての作業とレイアウトの変更は内側の画面で行われますが、切り離すと、実際には最も外側の画面から切り離されます。内部画面のレイアウトは保持されます。すべての詳細については、以下を参照してください。

ディスプレイを分割してから切り離すと、画面が分割を忘れてしまいます。

または、画面のソースツリーから直接最新バージョンをコンパイルしてみることもできます。これを行うには、gitをインストールしてから次のコマンドを実行します。

git clone git://git.savannah.gnu.org/screen.git

次に、src/INSTALLの指示に従います。一般的に、方向は次のとおりです。

  1. ./autogen.sh
  2. ./configure
  3. make

さまざまな懸念に基づいて画面をインストールする場所を取り巻くさまざまな問題について、INSTALLファイルに議論があります。このルートを使用する場合、最善の策は、すべてのインストール手順を読んでから続行することです。

9
Steven D

誤って間違ったキーの組み合わせを押したときにこの問題が発生し、分割画面がすべて消えてしまいました。 :(((

しかし、少なくとも私には(謙虚な)道がありました。私は主にscreenxtermおよびbashシェルと一緒に使用するので、最後に欲しかったのはlaunchこれ以上bashes。 (psで物事を制御すると、bashプロセスが明らかになりましたあったそこにありましたが、アクセスできませんでした。)

したがって、通常の設定に戻す方法は、 Ctrl+" そして、1つ追加しますすでに実行中シェルを各分割ウィンドウに追加し、「ペイン」を循環します。 Ctrl+aTAB。だから私は物事を正常に戻しました。
特に、欲求不満で押したばかりの人に出くわしたので、これを投稿します Ctrl+acbashesを「再インストール」します。しかし、これはばかげています!その方法では、1日の終わりにおそらく25のbashプロセスが発生し、そのうちの少なくとも15はアクセス不能/非表示になり、理由もなくリソースとCPUを浪費するだけです。したがって、re create themではなく、re se themです。

0
syntaxerror

PuTTY注:PuTTYを使用している場合は、端末設定にも移動し、端末のサイズ変更を無効にするかどうかを確認し、設定を保存してから再起動します。

セットアップに論理的と思われるものに応じて、いくつかのオプションがあります。

a)バージョン4.2以降を使用している場合はscreen_layoutを使用し、screen -X dump layout

b)〜4.0xがある場合は、ハックを使用します http://aperiodic.net/screen/faq#when_i_split_the_display_and_then_detach_screen_forgets_the_split

このハックは、セッションがそのようなデータを保持しないため、.screenrc編集で画面を起動する前に、最初に標準画面を起動する必要があることをあまり明確に述べていないことに注意して注意する必要があるという点で少し混乱しています。

c)コンパイルしてインストールします http://savannah.gnu.org/forum/forum.php?forum_id=829http://www.linuxfromscratch.org/blfs/view/ svn/general/screen.html

d)再インストールする代わりにパッチを適用します(以下を参照)

e)ディストリビューションのバイナリを入手し、パスに配置して、システムのデフォルトのバイナリを上書きするようにします。

hth、私は1つのオプションが決して十分ではないことを知っているので。

上記のd)に関しては、パッチが見つからなかったので、ここに含めてください。

diff --git a/src/doc/screen.texinfo b/src/doc/screen.texinfo
index 6142de0..6fc8f9e 100644
--- a/src/doc/screen.texinfo
+++ b/src/doc/screen.texinfo
@@ -1040,6 +1040,8 @@ Show or set which layout to reattach to.  @xref{Layout}.
 Remember the organization of a layout.  @xref{Layout}.
 @item layout autosave [@var{on}|@var{off}]
 Show or set the status of layout saving.  @xref{Layout}.
+@item layout dump [filename]
+Save the layout arrangement to a file.  @xref{Layout}.
 @item license
 Display licensing information.  @xref{Startup}.
 @item lockscreen
@@ -2107,7 +2109,10 @@ the layout to reattach to will be shown in the message line.
 Remember the current arrangement of regions. When used, @code{screen}
 will remember the arrangement of vertically and horizontally split
 regions. This arrangement is restored when a @code{screen} session
-is reattached or switched back from a different layout. If a number
+is reattached or switched back from a different layout. If the 
+session ends or the @code{screen} process dies, the layout
+arrangements are lost. The @code{layout dump} command should help
+in this siutation. If a number
 or title is supplied, @code{screen} will remember the arrangement of
 that particular layout. Without any options, @code{screen} will
 remember the current layout.
@@ -2129,6 +2134,21 @@ a single window. Without either an @code{on} or an @code{off}, the
 current status is displayed on the message line.
 @end deffn

+@deffn Command layout @code{dump} [filename]
+(none)@*
+Write to a file the order of splits made in the current layout. This 
+is useful to recreate the order of your regions used in your current
+layout. Only the current layout is recorded. While the order of the
+regions are recorded, the sizes of those regions and which windows
+correspond to which regions are not. If no filename is specified,
+the default is @file{layout-dump}, saved in the directory that the
+@code{screen} process was started in. If the file already exists,
+@code{layout dump} will append to that file. As an example:
+@example
+layout dump /home/user/.screenrc
+@end example
+will save or append the layout to the user's @file{.screenrc} file.
+@end deffn

 @node Window Settings, Virtual Terminal, Regions, Top
 @chapter Window Settings
0
Brian Thomas