Verwandt:Warum tritt in meiner Bash-Eingabeaufforderung ein Fehler auf, wenn ich den Verlauf durchsuche?
Die Geschichte sieht so aus:
1831 git remote -v
1832 gs
1833 gd
1834 gc -am 'moved apsum options etc to their own file
set routes to allow cors
changes to the apsum pull '
1835 git push
1836 reset
1837 history
1838 __git_ps1
1839 reset
1840 history
1841 Kill 99894
1842 history
g*
sind alles Aliase für Git-Befehle. Wenn ich durch den Verlauf scrolle, ist alles in Ordnung, bis ich zur Nummer 1833 komme (Unterstrich bezeichnet die Cursorposition):
$ gd _
[ up arrow]
$ gds_
[up arrow]
$ gdit remote -v_
Ich dachte, es läge an nicht druckbaren Zeichen auf meiner PS1, aber das habe ich alles ausgeklammert:
PS1="\n\[$FCYN\]\$(date +%H:%M:%S) \w\[$IGreen\]\$(__git_ps1)\[$Black\] $ \[$DarkGray\]"
Habe ich etwas übersehen? Passiert das nur, wenn Sie mehrzeilige Commit-Nachrichten haben?
bearbeiten: meine endgültige Lösung ist zu umfangreich, um sie in einen Kommentar zu packen:
export PS1="\\n\[\033[38;5;246m\]\u@\[$(tput sgr0)\]\[\033[38;5;245m\]\h\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;28m\]\w\[$(tput sgr0)\]\[\033[38;5;15m\]\[$(tput sgr0)\]\[\033[38;5;2m\]`__git_ps1`\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;90m\]\t\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\[\033[38;5;232m\]\[$(tput sgr0)\]\[\033[38;5;15m\] \[$(tput sgr0)\]\n\[$(tput sgr0)\]\[\033[38;5;0m\]\\$\[$(tput sgr0)\] "
Das scheint verrückt, erzeugt aber eine nette Eingabeaufforderung mit dem Git-Zweig und Farben, die auf einem hellen Hintergrund (den Sie hier nicht sehen können) leicht zu lesen sind:
collumj@machineName ~ (dev) 17:35:42
$
Vielen Dank anhttp://bashrcgenerator.com/.
Antwort1
"Alles" ist eingeklammert, aber es gibt mehrere Unbekannte. Da die Spalte nach rechts verschoben ist, bedeutet dies, dass etwas Text sendet, den Bash nicht bemerkt.
Es ist zwar möglich, dass eine Nichtübereinstimmung des Gebietsschemas dies verursacht, Sie werden es wahrscheinlich bemerkenDas.
Ich würde überprüfen und sicherstellen, dass Ihre Konfiguration nicht die Farbfunktion von verwendet __git_ps1
. LautFedoradas ein Skript namensgit-prompt.sh
, das wiederum (sofern Sie gesetzt haben GIT_PS1_SHOWCOLORHINTS
) Escape-Sequenzen senden kann, die Bash hinsichtlich der tatsächlichen Spalte verwirren könnten.