Problem mit der interaktiven Shell von zsh

769
Jack

Wenn ich zsh im interaktiven Modus verwende, bekomme ich einige Störungen. Dies geschieht hauptsächlich, wenn der Befehl auf eine neue Zeile übergeht und ich die Rücktaste verwende, wobei die Rücktaste einige Störungen auf dem Bildschirm hinterlässt und den Cursor an eine ungerade Position bewegt.

Es passiert in einem VT, in xterm und in urxvt, obwohl es am meisten bei meinem gewählten Endgerät, urxvt, auffällt.

Wenn ich zsh als Login-Shell verwende, passiert dies überhaupt nicht.

Was könnte das verursachen?

2
Your description is a bit vague. Are you using a fancy prompt? (Does it still happen with a simple prompt?) Is the prompt the same in non-login and login instances of *zsh*? Are you using any non-ASCII characters in your prompt or in your input (e.g. a UTF-8 terminal with multibyte UTF-8 text involved)? Chris Johnsen vor 14 Jahren 0

2 Antworten auf die Frage

3
Dennis Williamson

Es wäre hilfreich, wenn Sie zeigen würden, worauf Ihre PROMPTVariable eingestellt ist, wenn sie nicht funktioniert. Es ist jedoch wahrscheinlich, dass Sie Escape-Sequenzen haben, die in der Breite der Eingabeaufforderung gezählt werden. Sie können dies beheben, indem Sie den Wert so bearbeiten, dass diese Sequenzen von umgeben sind %{ ... %}.

Das war es genau :) Jack vor 14 Jahren 0
0
DevSolar

Die Shell und Ihr Terminalprogramm müssen sich darauf einigen:

  • die Größe, Fähigkeiten und das Verhalten des Fensters;

  • die Anzahl der darauf angezeigten Zeichen; Diese Zahlen können sich unterscheiden, z. B. wenn eine Seite Unicode annimmt, während die andere die lateinische Codierung annimmt oder wenn ein Rückschritt nicht korrekt behandelt wird.

Ihre termcap / terminfo-Einstellungen und die Konfiguration Ihres Terminalprogramms müssen konsistent sein, oder Sie erhalten genau das von Ihnen beschriebene Verhalten.

Leider bin ich mit diesen Einstellungen nicht so gut, wie ich gerne wäre, und ich kann nicht genau bestimmen, was Sie wo ändern sollten. (Muss anderen Raum lassen, um Upvotes zu verdienen, oder? ;-))