web-dev-qa-db-ja.com

再起動後に「GNUスクリーン」レイアウトを維持する方法

screenを3つに分割し、左側にvimを使用し、他の2つの画面を右側に水平に分割しています。画面から切り離すときに、レイアウトを:layout save my_layout_nameで保存できることを知っています。

layout autosave onファイルにはすでに.screenrcが含まれていますが、それでも問題は解決しません。

異なるターミナルセッション間、およびPCの再起動後に画面のレイアウトを維持するにはどうすればよいですか?または多分回避策として、それを分割する画面(パラメーター)を実行し、すべてのウィンドウにbashを設定してレイアウトを保存する方法はありますか?

13
randunel

新しい画面のデフォルトのレイアウト

地域を管理し、画面内でコードを実行します

  • 現在のレイアウトをファイル.screen_layoutsaveするには:

     rm -f $ HOME/.screen_layout 
     screen -Xレイアウトダンプ.screen_layout 
    
  • レイアウトを保存してauto-loadingするには:

    エコーソース.screen_layout >> $ HOME/.screenrc 
    エコーレイアウト保存定義>> $ HOME/.screenrc 
    

使い方

  1. screenと入力します。
  2. 画面に$HOME/.screenrcと表示されます:
  3. source .screen_layout-readおよびコマンドを実行from$HOME/.screen_layout
    地域が作成されました。
  4. layout save def-save現在のregionsをレイアウトとして保持し、デタッチしても保持されます。

layout dump .screen_layout

  • append)の現在のレイアウトをfile$HOMEディレクトリにダンプします

screen -X command

  • currentスクリーンセッションでcommandを実行します(内部で実行された場合)。
    に似ている ctrla その後 :command

あなたも

  • 起動時に著作権表示を無効にする:

    echo startup_message off >> $ HOME/.screenrc
  • スクロールバッファーを増やします(def。100)

    echo defscrollback 1000 >> $ HOME/.screenrc
  • 独自の.screen_layoutを記述(50%/ 50%垂直、2シェル):

    split -v 
     screen -t s1 
     
     focus 
     screen -t s2 
     
     focus 
    
13
befzz

Ctrl-a、次に:、次にlayout save default提供された画面は新しいバージョンです(レイアウト機能付き)頑張ってください。

更新: ここ。screenrcファイルであり、変更を永続的にします、他のニース機能を追加します。

7
Mir Dunaev

layout autosave on」は、.screenrc内の明示的に名前が付けられたレイアウトでのみ機能します。

つまり、一部のレイアウトをABCとして指定し、Screenセッション内でそのレイアウトに切り替えて切り離した場合、この最後のレイアウトはセッションの再開後に復元されます。

構成ファイルでレイアウトを指定しなかった場合は、切り離す前に内部コマンド「layout save your_layout_name」を実行する必要があります。

これは.screenrcです事前定義されたレイアウトから選択:

 0 — one (the only region)
 1 — two-v (the screen is splitted vertically into two regions, default layout)
 2 — two-h (the screen is splitted horizontally into two regions)
 3 — three (three regions — two in the upper part of the screen and one underneath)
 4 — four (four regions)

Predefined layouts

画面内から選択すると、これらのレイアウトは、セッションの次の再開まで( "layout autosave on"コマンドにより)デタッチ時に保持されます。

独自のレイアウトを作成した場合は、「layout dump filename」コマンドで保存する必要があります。次に、「filename」ファイルからのコードを使用して、この.screenrcの#layoutsセクションにレイアウトを追加して選択できます。

デフォルトでは、「two-v」レイアウトは、bashのある唯一のウィンドウでロードされます。

2
Oleg Bolden

this source によると、screenの動作方法により、これは不可能です。ただし、そこにはハックがあります。基本的には、別の画面内に画面をネストすることになりますが、これはあまり便利ではありません。 (回答が見つかりました ここ

ローカルマシンでターミナル分割の画面を使用している場合(これは、言及されているPCの再起動から推測されます)、terminatorというターミナルエミュレータをチェックアウトすることをお勧めします。水平および垂直端子分割(ネストも同様)をサポートし、お気に入りのレイアウトを保存して後で使用できます。次に、適切なオプションを指定してターミネーターを実行します:terminator -l <name of saved layout>

0
Erathiel