GNU-Bildschirm zwingen, beim erneuten Anschließen auf die aktuelle Klemmenbreite zurückzufließen?


32

Ich möchte den GNU-Bildschirm zwingen, auf die vorhandene Terminalbreite zurückzugreifen, wenn ich eine Sitzung erneut anhänge. Es scheint mir, dass dies richtig funktioniert hat, bevor ich eine Maschine auf CentOS 6 aktualisiert habe, aber ich kann nicht herausfinden, wie ich sie wiederherstellen kann. ( TERM=xterm)

Immer, wenn ich eine Sitzung erneut zuordnete, unabhängig vom Status, in dem ich sie getrennt habe, wird sie bei 80 Spalten gestartet und ändert gleichzeitig die Größe meines Terminals (in diesem Fall PuTTY).

Ich starte mit:

screen -aA -R <session>

Mein .screenrc enthält nur die folgenden und ein paar irrelevante Tastenkombinationen:

term xterm

defscrollback 10000

# status line at the bottom
hardstatus on
hardstatus alwayslastline
hardstatus string "${-}%{.0c}%-w%{.y0}%f%n %t%{-}%+w %=%{..G}[%H] %{..Y} %D %M %d, %Y %c | Load: %l"
caption splitonly "%{.yK}%3n t"
caption string "%{.c0}%3n %t"

vbell off

# Fix fullscreen programs
altscreen on

Vielleicht haben Sie mehr Glück tmux, ich kann die Größe meines Terminal-Fensters dynamisch ändern und der darin enthaltene tmux wird folgen.
Nummer 5

Antworten:


38

Nach dem erneuten Anschließen von a wird ctrl-a Fder Befehl "fit" ausgeführt, um die Größe des aktuellen Fensters zu ändern. Wenn Sie die -AOption erneut anfügen, sollte die Größe aller Fenster beim erneuten Anfügen geändert werden. Sind beim Anhängen noch andere an die Bildschirmsitzung angehängt? Müssen Sie zum Beispiel -x anstelle von -r zum erneuten Anfügen verwenden? Sie können andere trennen, wenn Sie erneut "screen -D -r" anstelle von "screen -x" hinzufügen, und ich würde davon ausgehen, dass dies die Fenster automatisch wieder anpasst.


Ich starte mit -a -A, und niemand anderes ist angeschlossen.
Michael

1
Dies ist immer noch ein Problem mit dem Bildschirm über Ubuntu 14.04. Fit geht nicht. Trennen und erneutes Verbinden funktioniert. Bildschirm 4.2.1 ist in vertrauenswürdigen Backports verfügbar . Informationen zum Aktivieren und Verwenden von Paketen aus dem Backports-Repository finden Sie in der Benutzer-Backports-Dokumentation .
Greg Bell

1
Selbst nachdem ich dies getan hatte, musste ich die Größe meines Terminalfensters ändern, um das Signal zu senden, das screenfür die tatsächliche Größenänderung erforderlich war.
krs013

Diese Problemumgehung hat bei mir nicht funktioniert, möglicherweise weil ich ein anderes Terminal verwende (iTerm2 auf Mac). Fit hat nicht funktioniert, also habe ich screen -D -rdas Fenster gelöst und wieder angebracht und sogar versucht, die Fenstergröße zu ändern, aber es ist gleich geblieben. Wenn in Vim, kann ich sehen, dass columnsfestgelegt wurde 204.
Haridsv

screen -D -r funktionierte für mich, nachdem ich alle anderen Optionen ausprobiert hatte, wie Sie sagten, Stew - mein Bildschirm wurde immer noch als Anhang angezeigt, als ich screen -ls
Hayden Crocker

8

Beachten Sie, dass diese Antwort nur für PuTTY gilt. Auch ich bin gezwungen, ein Betriebssystem zu verwenden, das ich lieber nicht verwenden möchte, und PuTTY ist aufgrund anderer Einschränkungen des Systems die einzige echte Option. Ich hatte das gleiche Problem. Die Größe meines Bildschirms wurde beim Einleiten oder Herstellen einer Verbindung zu einer vorhandenen Bildschirmsitzung geändert. Ich habe die Antworten hier ohne Erfolg versucht (Windows 10 mit PuTTY 0.67, das über MSI installiert wurde). Diese Antworten haben möglicherweise mit einem Standard-UN * X-Terminal funktioniert, aber nicht mit PuTTY, es ist ein anderes Biest.

Ich ging in die Optionen graben, und siehe da unter "Terminal -> Features" gibt es eine Option mit der Bezeichnung "Disable Remote-Controlled Terminal Resizing". Aktivieren Sie das Kontrollkästchen, übernehmen Sie die Einstellung und versuchen Sie es erneut. Ich denke, Sie werden das Problem gelöst vorfinden.


KiTTY ist ein viel besserer Ersatz für PuTTY unter dem Betriebssystem, das Sie verwenden müssen ...
Anubioz

5

Versuchen Sie, dies (von / etc / screenrc) zu Ihrem ~ / .screenrc hinzuzufügen:

# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
#  in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

https://superuser.com/a/217281/6593


1
In MPutty löst dies definitiv eine Kitt-Sitzung, die nicht die gesamte Seite ausfüllt, sondern zu klein
öffnet
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.