Wie man Fenster nach dem Trennen / Wiederanbringen des GNU-Bildschirms geteilt hält

35

Ich benutze Bildschirm in einem Ubuntu-Server.

Ich habe meinen Bildschirm in vier Bereiche aufgeteilt, in denen jeweils ein anderes Fenster angezeigt wird.

Das Problem ist , wenn ich abnehmen (oder vielleicht wieder anbringen) ein , die vier Fenster bekommen , aber nur eine Region , und ich habe machen C-a Salle immer wieder?

Wie kann ich meinen Bildschirm beim erneuten Anschließen aufteilen lassen?

Cesar
quelle

Antworten:

15

Von dem Bildschirm FAQ :

(Die implizite Frage lautet: "Wie halte ich meine geteilten Fenster über einer Trennung?")

Die kurze Antwort ist, dass Sie nicht können. Die längere Antwort ist, dass Sie es fälschen können.

Splits sind eine Eigenschaft Ihrer Anzeige. Der Prozess, der Ihre Bildschirmsitzung verwaltet, kennt sie nicht wirklich. Nur der einzelne Prozess, der die Sitzung anzeigt, führt dies aus. Auf diese Weise kann sich die Bildschirmsitzung nicht an die Teilungen erinnern, da sie nicht über sie informiert sind. Sobald Sie die Verbindung getrennt haben, ist der Prozess, der über sie Bescheid wusste, beendet.

Der Hack besteht darin, verschachtelte Bildschirmsitzungen zu verwenden. Starten Sie eine Sitzung und geben Sie ihr eine Escape-Sequenz, die Sie nicht oft verwenden (oder deaktivieren Sie einfach das Escape-Zeichen vollständig). Binden Sie Ihre übliche Tastenfolge zum Trennen an diese Bildschirmsitzung. Starten Sie jetzt Ihre Hauptbildschirmsitzung oder hängen Sie sie an. Ihre gesamte Arbeit wird in der inneren Sitzung erledigt, und Sie können Ihre Anzeige aufteilen. Wenn Sie jedoch trennen, wird die äußere Sitzung getrennt, sodass Ihre Teilungen in der inneren Sitzung beibehalten werden.

Angenommen, Sie verwenden das Standard-Escape-Zeichen Ca, dann sollte Ihr alternatives screenrc Folgendes enthalten:

escape ""
bindkey ^ad detach
Darren Hall
quelle
1
Nachdem ich die letzten ein oder zwei Jahre damit verbracht habe, verschachtelte Bildschirmsitzungen zu konfigurieren und intensiv zu verwenden, empfehle ich es. Mit der Zeit nimmt der Schmerz der zusätzlichen Komplexität ab, während der Nutzen des flexibleren Aufbaus zunimmt.
Funroll
13
Die neue Funktion macht layoutdiese Antwort ungültig!
Kadir
Unter superuser.com/a/516822/113250 finden Sie die "neue" integrierte Layoutfunktion
Thiago Figueiro,
67

Ich habe festgestellt, dass Sie Folgendes tun können, wenn Sie bereits einige Fenster eingerichtet haben und diese speichern möchten:

Ctrl-a
:
layout save default

Wenn Sie die Sitzung trennen und erneut anfügen, sollte das Layout wiederhergestellt werden.

Kompatibel mit der Bildschirmversion 4.00.03jw4 (FAU) vom 2. Mai 2006 (Ubuntu 12.04 und 12.10)

Sie können auch eine Deamon-Sitzung als solche erstellen:

$> screen -dmSU mysession

und haben es dann immer zur Verfügung, indem Sie anrufen:

$> screen -r mysession
Troy
quelle
5
Viel bessere Lösung. Dies sollte die akzeptierte Antwort sein. (Ich weiß, warum ich immer nach unten
scrolle
1
Leider sieht es so aus, als ob die aktuelle Version auf RedHat screen 4.00.03 (FAU) 23-Oct-06diese Funktion nicht hat. Aber das sollte es!
David Dombrowsky
Dies ist eine bessere Antwort, aber es gibt eine noch bessere Antwort, bei der das Layout bei jeder Verwendung automatisch gespeichert wird .screenrc. Stimmen Sie dieser Antwort zu
Mark Lakata
14

In der Git-Version wurde eine neue Funktion layouteingeführt.

vom Bildschirm (1):

Layout neu [Titel]

Erstellen Sie ein neues Layout. Der Bildschirm ändert sich zu einer ganzen Region und wechselt in das leere Fenster. Von hier aus erstellen Sie die Regionen und die Fenster, die sie nach Ihren Wünschen anzeigen. Das neue Layout wird mit der kleinsten verfügbaren Ganzzahl beginnend mit Null nummeriert. Optional können Sie Ihrem neuen Layout einen Titel geben. Andernfalls hat es den Standardtitel "Layout". Sie können den Titel später jederzeit über den Befehlslayouttitel ändern.

Auch wenn Sie die Bildschirmsitzung getrennt haben, merkt sich das Layout, wie der Bereich aufgeteilt wurde.

Beispiel: Bildschirmstart mit Konfiguration folgen.

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

Wenn Sie diese Sitzung erneut verbinden, können Sie zum (zuletzt ausgewählten) Layout mit 3 geteilten Bereichen zurückkehren.

Yoshikaw
quelle
Jeder weiß, welche Einreichungen erforderlich sind, um dies zu bekommen (ich
bin nicht sonderlich geschickt
7

Fügen Sie einfach diese Zeile zu Ihrem hinzu ~/.screenrc:

# This line makes Detach and Re-attach without losing the regions/windows layout
layout save default
Rafael Quirino Castro
quelle
6

Es scheint, dass tmux es tut. Dies ist ein neues Multiplexer-Projekt, das vom Bildschirm inspiriert ist, aber von Grund auf neu und unter einer BSD-Lizenz programmiert wurde.

(Entschuldigung, wenn mein Englisch unangenehm zu lesen ist: - °)

Pantoufle
quelle
-1

Ich habe kürzlich den ganzen Bildschirm Mann gelesen, und es gibt keine übliche Möglichkeit, dies zu tun, wenn sich der Bildschirm selbst nicht automatisch daran erinnern kann.

kolypto
quelle