mac instalar and powershell terminal zsh oh-my-zsh windows-subsystem-for-linux

powershell - instalar - Problemas de color con zsh en wsl



oh my zsh plugins (1)

Podríamos examinar el $PROMPT (o $PS1 ).

De hecho, el tema PROMPT_SUBST de oh-my-zsh usa PROMPT_SUBST para eso. Por lo tanto, podemos obtener las secuencias de escape sin procesar con redirigir o canalizar la salida de print -P :

$ print $PROMPT %{%f%b%k%}$(build_prompt) $ print -P $PROMPT | cat -v ;# or redirect to a file as you like ^[[39m^[[0m^[[49m^[[40m^[[39m me@mycomputer ^[[44m^[[30mM-nM-^BM-0^[[30m ~ ^[[49m^[[34mM-nM-^BM-0^[[39m

Estas secuencias de escape crudas; los códigos de escape de ANSI están bien descritos en https://en.wikipedia.org/wiki/ANSI_escape_code#Colors . Son los códigos CSI nm SGR - Seleccionar renglón gráfico.

Intenta describir el resultado anterior:

( ^[[39m : Los dos primeros personajes se escapan por cat -v . Tenemos ESC[39m .]

  • ^[[39m^[[0m^[[49m : que son de %{%f%k%b%} parte de la salida print $PROMPT . ^[[39m para restablecer el color de primer plano predeterminado, ^[[0m reiniciar cada efecto y [[49m para restablecer el color de fondo predeterminado.
  • ^[[40m^[[39m me@mycomputer : bg color predeterminado fg negro y
  • ^[[44m^[[30m M-nM-^BM-0 : bg azul y fg color por defecto ( M-nM-^BM-0 es cat -v forma de escape de )

En este punto, parece que el prompt produce un código bg blue para pwd. Podrías consultar con
print -P ''%b%F{red}co%F{green}lo%F{blue}rs%f%b'' (Nota: el primer ''% b'')

Esto significa que la configuración de la paleta de colores de PowerShell no coincide con las secuencias de escape ANSI. Podríamos verificar si la configuración de la paleta de colores de la terminal es correcta o no con 16colors.sh en la distribución de xterm si tenemos sh con la salida de sh ./16colors.sh . (Un ejemplo de salida de la configuración por defecto de xterm podría encontrarse, por ejemplo: https://www.in-ulm.de/~mascheck/various/xterm/16-table.html )

Parece que el tema Solarized (?) De tu PowerShell mapea la secuencia de color del ansi en azul ( ^[[44m o ^[[34m ) como grey grisáceo para nuestros ojos.

Entonces, estoy tratando de configurar oh-my-zsh dentro de una terminal wsl (usando powershell como consola aquí, pero obtengo el mismo problema en cmd). Creo que configuré todos mis colores correctamente:

Y cuando ejecuto esto:

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

Me sale lo esperado:

Pero mi mensaje sigue siendo incorrecto, como puede ver. Estoy usando el tema agnoster y el fondo gris en el pwd debería ser azul.

¿Hay alguna forma de ver las secuencias de escape para poder determinar si el problema es con la secuencia de escape frente a la representación de la misma?