Ich habe Cygwin auf meiner Windows 7-Box installiert und ich habe ein Problem, wo läuft, wenn ich einen Befehl eingeben wird es gelegentlich zurück auf die verpackt werden gleiche Zeile, Löschen der Bash-Eingabeaufforderung. Hier ist ein Beispiel:Cygwin wickelt Text zurück in die gleiche Zeile, wodurch Text überschrieben wird
Der Befehl betreffenden Befehl "201" (4 Zeilen von unten). Ich habe die anderen für den Kontext einbezogen.
Der Text des Befehls war ich tippe
git commit -m "Forced LF line endings."
(Anmerkung: Ich diese git Befehle mit meistens bin Entsendung, aber das Problem tritt bei jedem Befehl, den ich habe kein Muster noch bemerkt.)
Es sprang auf Anfang der Zeile und begann meine Eingabeaufforderung zu überschreiben.
Wenn ich den Pfeil nach oben schieben (die Geschichte zu sehen) das Ergebnis ist noch seltsamer:
(Beachten Sie den Cursor viele Zeichen über das Ende des Befehls.) Wenn
Dann, als ich: ich versuche, den Cursor von dieser Position ein Zeichen zurückzugehen, kann ich nur so weit gehen zurück steigen in die Geschichte von dieser backspaced Linie, bekomme ich diese:
Der Befehl beginnt mit dem Ende des Textes, der angezeigt wird. (Dies ist konsistent für die gesamte Geschichte) Aber wenn ich in der Geschichte auf die fehlerhafte git commit ...
gehe es zeigt wie zuvor mit dem überschriebenen Text, aber wenn ich daran vorbei, löscht es eine Zeile der Aufforderung und zeigt an der vorherige Eintrag in der Geschichte auf die gleiche Weise wie vorher (a la Bild 2).
Als ich meine PS1-Variable erstellte, habe ich eine ungerade Ausgabe wie diese, aber ich habe seitdem meine Klammern und Dinge geschlossen und denke nicht, dass das das Problem verursacht. Wenn Sie jedoch meine .bash_profile
(die die PS1 setzt) sehen möchten, zögern Sie nicht, es auf GitHub zu sehen. Es ist wirklich kurz.
Ich habe versucht, nach dem Problem zu suchen und kann nur einige Cygwin E-Mail-Archive über die Zeilenumbruch in Xterm finden, aber keine Lösungen.
PS: Als ich das letzte .bash_profile
schob, um sie zu verbinden, ich in das Problem wieder lief, als ich git add .bash_profile
eingegeben und die Eingabetaste drücken, lief er den Befehl aber den Cursor an den Anfang des gleichen zurückgegeben Befehl statt eine neue Eingabeaufforderung zu drucken. Dann wenn ich eine andere Commit-Zeile schreiben, tat es das gleiche wie das erste Bild, aber es geschwärzt den Rest der Zeile (Es wickelte die Zeile, aber überschrieb die gesamte Zeile und nicht nur die ersten paar Zeichen.)
Ich denke, dies passiert, weil Sie die Escape-Sequenzen in Ihrer Eingabeaufforderung nicht richtig codieren, so dass Bash über die Menge an verbleibendem Speicherplatz in der Zeile verwirrt ist. – Barmar
Können Sie bitte ausarbeiten? Wie würde ich das beheben? – Vidia