2017-02-08 3 views
0

Ich habe die folgende Bash-Prompt bekam:Warum werden meine Bash Prompt Farben machen Cursor in der falschen Stelle erscheinen

# helper function to set colors 
function ps1c() { 
    tput setaf $1; 
} 

PS1='$(ps1c 243)\h $(ps1c 177)\W $(ps1c 214)$ \[\e[m\]'; 

Bei der Eingabe, manchmal meinen Cursor auf der linken Seite des Bildschirms zurück und sieht aus wie es zu überschreiben die Aufforderung. Wenn Sie den Pfeil nach oben verwenden, um durch meine Geschichte zu navigieren, werden die Dinge merkwürdig und der Cursor bewegt sich überall hin.

Ich habe die folgende Option aktiviert ist, aber sie bieten nicht wirklich eine klare Antwort, wie das Problem zu beheben:

Ich weiß, dass das Problem hat etwas mit der Länge der Prompt zu tun, nicht was Bash erwartet, aber ich bin eine komplette bash noob. Was kann ich tun, um das zu beheben?

+0

Welche Version von Bash verwenden Sie? – kevin

+0

3.2.57 (1) -Release – JakeParis

Antwort

1

Die Ausgabe von ps1c sollte nicht zur Länge Ihrer Eingabe gezählt werden, daher muss sie auch in \[...\] eingeschlossen werden.

PS1='\[$(ps1c 243)\]\h \[$(ps1c 177)\]\W \[$(ps1c 214)\]$ \[\e[m\]' 
Verwandte Themen