Jak rozwiązać ten problem za pomocą monitu „dostrojonego” w ZSH?


1

Mam dostosowany monit w mojej konfiguracji ZSH. Główną cechą jest to, że ten monit ma kolor czerwony, dzięki czemu mogę go łatwo odróżnić od wyników programów. Mój monit jest zdefiniowany w następujący sposób:

PROMPT=$'\e[0;31m%n@%m:%~> \e[0m'

Działa to głównie dobrze, ale czasami mój kursor przełącza się na inną pozycję po zakończeniu tabulacji, a niektóre znaki są pozostawione na ekranie i przesuwają się po linii poleceń. To trochę denerwujące, ale jeśli ktoś zna rozwiązanie tego, doceniłbym to.

Odpowiedzi:


2

Musisz owinąć sekwencje niedrukowalne w %{ ... %}:

PROMPT=$'%{\e[0;31m%}%n@%m:%~> %{\e[0m%}'

Powinieneś być w stanie zrobić:

PROMPT=$'%F{red}%n@%m:%~> %f'

który jest prostszy, łatwiejszy do odczytania i będzie działał z typami terminali, które używają różnych sekwencji ucieczki.


Druga linia nie działa dla mnie, ale pierwsza działa świetnie. Wielkie dzięki!
Mnementh

@Mnementh: Przepraszam, w drugiej linii była literówka - brakowało litery „F”. Spróbuj teraz.
Dennis Williamson,

Dzięki, teraz działa obie linie. Chciałbym głosować jeszcze raz, gdybym mógł. :-)
Mnementh
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.