CTRLWenn ich vom Bash-Terminal aus auf einen Linux-Server ssh, kann ich + verwenden, Aum ordnungsgemäß zum Zeilenanfang zurückzukehren, und CTRL+ E, um zum Zeilenende zu gehen, und alles funktioniert einwandfrei.
Wenn ich bash lokal auf meinem Mac verwende, geht es bei Verwendung von CTRL+ Alogischerweise zurück zum Anfang der Zeile, zeigt den Cursor jedoch nicht an der richtigen Stelle an. Es zeigt den Cursor etwa 7 Zeichen entfernt an und aktualisiert den Zeilentext nicht korrekt.
Beispiel
find . -name "hello.cpp"
CTRL+ A!
find . -name "hello.cpp"
^~~ cursor shows here ????
Fügen Sie "Dies ist ein Test" ein (nur um zu zeigen)
Anzeigen:
find . this is a test -name "hello.cpp"
^~~ cursor is still here ???
^~~~~~~~~~~~~^ text inserted here ???
^~~~~~^ unchanged for some reason
Befehl ausgeführt
this is a test find . -name "hello.cpp"
Ich benutze das gleiche
PS1=\n \e[1;95m \u@\h \e[0;32m\w \e[1;30m $(__git_ps1 " (%s)" ) \n \e[1;95m \@ \n $ \e[0;30m
wie ich es unter Linux mache.
Versions Information
Fügen Sie \[
und \]
um die Farbcodes herum hinzu, damit bash die Zeilenlänge korrekt berechnen kann. Etwas wie das:
PS1=\n \[\e[1;95m\] \u@\h \[\e[0;32m\]\w \[\e[1;30m\] $(__git_ps1 " (%s)" ) \n \[\e[1;95m\] \@ \n $ \[\e[0;30m\]
(Diese Antwort stammt aus dem Kommentar von @Mark zu der Frage.)
mmmmmm
pyj
\[
und\]
um die Farben herum löste das Problem. Es ist eigentlich das Gegenteil des anderen Problems, für das ich empfehlen würde, die Betreffzeile zu ändern, da dies ein allgemeineres Problem ist als nur für "Emacs-Stil". Soll ich als Duplikat markieren, obwohl sie vertauscht sind? Ich denke, dieses Thema würde es einfacher machen, es zu finden.mmmmmm
Bennett McElwee