Yeniden başlattıktan sonra `` gnu ekran '' düzeni nasıl devam ettirilir


13

Ben kullanıyorum screensoldaki vim 3'te bölünmeyi ve diğer iki ekranlar sağda yatay bölün. Bir ekrandan ayırırken düzeni ile kaydedebileceğimi biliyorum :layout save my_layout_name.

Zaten var layout autosave onbenim de .screenrcdosyaya, ama bu benim sorunla ilgili yardım etmez.

Farklı terminal oturumları arasında ve bilgisayar yeniden başlatıldıktan sonra ekran düzenini nasıl devam ettirebilirim? Ya da belki bir çözüm olarak, onu bölen, her pencerede bash'ı ayarlayan ve düzeni kaydeten bir ekran (parametreler) çalıştırmanın bir yolu var mı?

Yanıtlar:


13

Yeni ekranlar için varsayılan düzen

Bölgelerinizi yönetin, ardından ekranın içindeki kodu yürütün :

  • To kaydetmek dosyaya mevcut düzeni .screen_layout:

    rm -f $ HOME / .screen_layout
    ekran -X düzen dökümü .screen_layout
    
  • Düzen tasarrufu ile otomatik yüklemeyi yapmak için :

    echo source .screen_layout >> $ HOME / .screenrc
    echo layout save def >> $ HOME / .screenrc
    

Nasıl çalışır

  1. Siz yazın screen.
  2. Ekran okumaları $HOME/.screenrc:
  3. source .screen_layout- okuma ve yürütme komutları gelen $HOME/.screen_layout
    Bölgeler şimdi yarattı.
  4. layout save def- Söktüğünüzde tutmak için mevcut bölgeleri düzen olarak kaydedin .

layout dump .screen_layout

  • Döküm ( ekleme ) için geçerli düzen dosyasında yer $HOMEdizinde

screen -X command

  • Run commandiçinde geçerli ekran oturumunda (içini idam ise). O zamana
    benzerctrla: command

Ayrıca

  • Başlangıçta telif hakkı bildirimini devre dışı bırak :

    echo startup_message kapalı >> $ HOME / .screenrc
  • Kaydırma arabelleğini artırın (def. 100)

    echo defscrollback 1000 >> $ HOME / .screenrc
  • Kendiniz yazın .screen_layout(% 50 /% 50 dikey, 2 kabuklu):

    bölünmüş -v
    ekran -t s1
    
    odak
    ekran -t s2
    
    odak
    

Haklısın. Bu yöntem, komutları bir dosyaya atarak ve ardından tekrarlayarak ekran düzenine devam eder .screenrc. .screen_layoutDosyası, her zaman çalıştırılacak tüm komutlarla düzenlenebilir screendahil çalıştırılır layout save defaultsonunda. Ben bash çalıştırmak için dosyaya screensonra eklemek için diğer okuyuculara öneririz . focus.screen_layout
randunel

7

Ctrl- ao :zaman layout save default Sağlanan ekran daha yeni sürüm (düzen özelliği ile) İyi şanslar.

GÜNCELLEME: İşte , değişikliği diğer güzel özelliklerle birlikte kalıcı hale getirecek .screenrc dosyası .


neden bir fikrin layout autosave oniçinde .screenrcişe yaramadı? Bu benim için tercih edilir.
spinlock

Haklısın, işe yaramıyor. Ama buradan .screenrc'yi test ettim: gist.github.com/joaopizani/2718397 ve ÇALIŞIYOR.
Mir Dunaev

2

" düzen otomatik kaydetme açık " yalnızca .screenrc dosyasında açıkça adlandırılmış düzenler için çalışır.

Yani, ABC olarak bir düzen belirttiyseniz, Ekran oturumu içinde bu düzene geçip ayrıldıysa, oturum sürdürüldükten sonra bu son düzen geri yüklenir.

Yapılandırma dosyasında herhangi bir düzen belirtmediyseniz, ayırmadan önce " layout save__outout_name " iç komutunu çalıştırmanız gerekir .

Bu, önceden tanımlanmış düzenleri olan bir .screenrc'dir :

 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)

Önceden tanımlanmış düzenler

Ekran içinden seçildikten sonra, bu mizanpajlar oturumun bir sonraki yeniden başlatılmasına kadar ("mizanpaj otomatik kaydetme açık" komutu nedeniyle) ayrıldıktan sonra korunur.

Kendi düzeninizi oluşturduysanız, " düzen dökümü dosya adı " komutuyla kaydedilmelidir. Ardından, seçiminizi bu .screenrc dosyasının #layouts bölümüne eklemek için "dosyaadı" dosyasındaki bir kodu kullanabilirsiniz .

Varsayılan olarak " iki-v " düzeni bash içeren tek pencereyle yüklenir.


Bu harika, ancak bir düzenden diğerine geçiş yapmayı özledim, sonra anahtar bağlamanın kaldırıldığı yorumunu gördüm. Sadece fyi - bu tuş takımı düzenleri değiştirmek için benim için çalışıyor (Ubuntu 16.04): bind ' ' layout next # <- actually means Ctrl-a + Space
Bachi

0

Bu kaynağa göre screençalışma şekli nedeniyle mümkün değil . Ancak orada bir kesmek var. Temel olarak, başka bir ekranın içindeki yuvalama ekranına kadar kaynar, bu çok uygun olmayabilir. (Yanıt burada bulundu )

Yerel makinenizde terminal bölünmesi için ekran kullanıyorsanız (bahsi geçen pc yeniden başlatmasından bahsettiğim), denilen terminal öykünücüsünü kontrol etmek isteyebilirsiniz terminator. Yatay ve dikey terminal bölmelerini (yuvalanmış olarak) destekler ve daha fazla kullanım için favori düzeninizi kaydedebilirsiniz. Sonra sadece uygun bir seçenek terminatör çalıştırın: terminator -l <name of saved layout>.


Bir ekranı başka bir ekranın içine yerleştirmenin farkındayım, ancak tüm ekranlar yeniden başlatıldığında sonlandırılıyor. Bir ekranın içindeki ekran layouteklendiğinde çözüldü , bu nedenle cevabınız hem sorunun yanı sıra eski. terminatorYine de öneri için teşekkür ederiz .
randunel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.