Farbprobleme mit zsh in WSL

8

Also, ich versuche oh-my-zsh in einem WSL-Terminal einzurichten (hier benutze ich Powershell als Konsole, aber ich bekomme das gleiche Problem in cmd). Ich denke, ich habe alle meine Farben richtig eingestellt:

Und wenn ich das mache:

print -P '%B%F{red}co%F{green}lo%F{blue}rs%f%b'

Ich bekomme das erwartete:

Aber meine Eingabe ist immer noch falsch, wie Sie sehen können. Ich verwende das Agnosterthema und der graue Hintergrund auf dem Pwd sollte blau sein.

Gibt es eine Möglichkeit, die Escape-Sequenzen zu sehen, so dass ich feststellen kann, ob das Problem mit der Escape-Sequenz im Vergleich zum Rendering auftritt?

    
Tejay Cardon 11.08.2017, 17:37
quelle

1 Antwort

2

Wir könnten das $PROMPT (oder $PS1 ).

Ja, oh-my-zshs Agnosterthema verwendet PROMPT_SUBST dafür. So können wir die rohen Escape-Sequenzen mit Umleiten oder Verteilen der Ausgabe von % co_de erhalten % :

%Vor%

Diese rohen Escape-Sequenzen; Die ANSI-Escape-Codes sind in Ссылка gut beschrieben. Es sind die CSI-Codes print -P SGR - Wählen Sie Graphic Renditoin.

Versuchen Sie, die obige Ausgabe zu beschreiben:

( CSI n m : Die ersten zwei Zeichen werden von ^[[39m gemerkt. Wir haben cat -v .)

  • ESC[39m : Die sind von ^[[39m^[[0m^[[49m Teil der %{%f%k%b%} Ausgabe. print $PROMPT zum Zurücksetzen der Standard-Vordergrundfarbe, ^[[39m zum Zurücksetzen aller Effekte und ^[[0m zum Zurücksetzen der Standardhintergrundfarbe.
  • [[49m : bg schwarz und fg Standardfarbe
  • ^[[40m^[[39m me@mycomputer : bg blau und fg Standardfarbe ( ^[[44m^[[30m M-nM-^BM-0 ist M-nM-^BM-0 entkommete Form von )

An dieser Stelle scheint es, dass die Eingabeaufforderung einen bg blauen Code für pwd ausgibt. Du könntest das mit
cat -v überprüfen (Anmerkung: das erste '% b')

Dies bedeutet, dass die Farbpaletteneinstellung der Powershell nicht mit den ANSI-Escape-Sequenzen übereinstimmt. Mit print -P '%b%F{red}co%F{green}lo%F{blue}rs%f%b' konnten wir prüfen, ob die Farbpaletteneinstellung des Terminals korrekt ist oder nicht 16colors.sh distribution wenn wir xterm mit der Ausgabe von sh haben. (Ein Beispiel für eine Ausgabe der xterm-Standardeinstellungen könnte beispielsweise lauten: Ссылка )

Es scheint, dass das solarisierte (?) Theme Ihrer Powershell die ansi Farbsequenz blau ( sh ./16colors.sh oder ^[[44m ) als ^[[34m -ish Farbe für unsere Augen abbildet.

    
hchbaw 18.09.2017 04:20
quelle