Gibt es eine Möglichkeit, den Missbrauch des Zeilenumbruchs auf dem Bildschirm zu beheben? (Vielleicht nur Terminal.app)

9

Ich habe ein Problem mit screen und Terminal.app. Wenn am unteren Bildschirmrand eine Bash-Eingabeaufforderung angezeigt wird und ich weiter tippe, bis die Zeile in die nächste Zeile übergeht, wird die nächste Zeile angezeigt, aber die Zeile über dieser Änderung wird nicht angezeigt.

Hier ist eine visuelle Darstellung meines Problems. Die | repräsentiert die rechte Seite des Terminals.

Vor. Mein Cursor befindet sich nach dem dritten 'Beispiel' und ich bin dabei, ein viertes Mal 'Beispiel' einzugeben:

$ asdf                        |
bash: asdf: command not found |
$ example example example     |

Nach. Beachten Sie, dass der Bildschirm nach dem Umbrechen nicht gescrollt hat, sondern stattdessen die Zeile "gegessen" hat, in der ich mich befand, und neu begonnen hat:

$ asdf                        |
bash: asdf: command not found |
ple                           |

Was ich erwartet habe (und was ohne die Verwendung von Bildschirm passiert) ist, dass der gesamte Bildschirm nach dem Umbruch einen nach unten scrollt.

bash: asdf: command not found |
$ example example example exam|
ple                           |

Wenn ich den Cursor in der umbrochenen Zeile an den Anfang der Befehlszeile bewege, wird die vorherige Zeile angezeigt:

$ asdf                        |
$ example example example exam|
ple                           |

Irgendeine Idee, was los ist?

AlexMax
quelle
GNOME Terminal und Bildschirm 4 werden hier wie erwartet umbrochen, FWIW. Welche Version verwenden Sie und haben Sie Konfigurationen von der Standardversion geändert?
Bernard
Dies geschieht, wenn zwei verschiedene Maschinen angeschlossen sind. Mein Debian-Computer hat Bildschirm 4 mit einigen benutzerdefinierten Konfigurationen, und meine Rhel 5.3-Box hat auch Bildschirm 4 ohne benutzerdefinierte Konfigurationen, und beide Boxen zeigen genau das gleiche Verhalten.
AlexMax
Ich habe genau das gleiche Verhalten. Ein weiteres Symptom dafür (oben nicht beschrieben) ist, dass nach dem "Essen" der vorherigen Zeile bei der Auswahl seltsame Dinge passieren. Beginnen Sie mit der Auswahl mit der Maus, und alles, was sich unter der Auswahl befindet, wird korrekt angezeigt. Beispiel: Wenn Sie im letzten Beispiel oben die Zeile "$ asdf" auswählen, ändert sich diese plötzlich in "bash: asdf: Befehl nicht gefunden" (wie in der vorherigen Zeile angegeben). Es ist, als ob der Bildschirm nur so wäre hat diese Linien nicht neu gezeichnet, sollte es aber haben. Es ist, als würde man vergessen, diese Zeilen als schmutzig zu markieren und sie müssen neu gerendert werden.
Eddified
Wenn es zu einem schlechten Zeitpunkt kommt, wählen Sie einfach alle (BEFEHL + A) aus, damit der Bildschirmpuffer richtig aussieht.
Eddified
Auch dies ist kein Problem in iTerm.app
Eddified

Antworten:

7

Erfolg! Ich habe den Vorschlag von hier aus versucht:

/server/272818/screen-not-dropping-down-a-line

was hinzuzufügen ist:

termcapinfo xterm* ti@:te@

zu Ihrem .screenrcund neu starten Bildschirm. Dies ändert das Scrollback-Verhalten des Bildschirms in etwas, das für meinen durchschnittlichen Anwendungsfall wahrscheinlich besser ist (z. B. kann ich das Scrollback des Terminals verwenden, solange ich im selben Fenster bleibe) und das Problem des OP behebt.

Außerdem kann ich das Problem in Terminal.app von 10.7 bestätigen.

Nate
quelle
Gute Detektivarbeit! Leider bin ich ein starker Benutzer der mehreren Fenster des Bildschirms, so dass dies für mich nicht funktioniert.
AlexMax
Es funktioniert auch nicht für mich, wenn ich auf einen anderen Server ssh, wo ich auf das Problem stoße. termcapinfo xterm 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm' ti@:te@
Brian Thomas
2

Es könnte sich um den 'Horizontal-Scroll-Modus' von readline handeln. Führen Sie den folgenden Befehl aus:

bind 'set horizontal-scroll-mode off'

und sehen Sie, ob sich Ihre Symptome ändern. Wenn ja, können Sie dies in ~ / .inputrc einstellen

wfaulk
quelle
1
hat es in meinem Fall nicht geholfen.
Eddified
0

Gehen Sie in die Terminaleinstellungen und ändern Sie die Einstellung "Terminal deklarieren als:" von "xterm-color" in "xterm". Das hat es für mich behoben (hat aber auch die Folge, dass Altscreen ausgeschaltet wird :()

Eddifiziert
quelle
Ich habe Terminal.app bereits auf diese Weise konfiguriert und es hilft mir bei meinem Problem nicht. Der Horizontal-Scroll-Modus ist laut Bildschirm-Manpage standardmäßig deaktiviert, und ich sehe nirgendwo, wo er aktiviert ist. Schade. Möchte wirklich eine Lösung dafür finden.
Tim Harper