Indicador de 256 colores en Zsh

14

¿Cómo puedo configurar mi aviso para que se coloree en 256 colores? Estoy buscando un equivalente al indicador de bash:

  local DEFAULT="\[\033[0;39m\]"
  local ROOK="\[\033[38;5;24m\]"
  PS1="${ROOK}\$${DEFAULT} "
Sardathrion - contra el abuso SE
fuente
1
¡Qué vergüenza para cualquiera que mirara pero no votara!
phunehehe
export PS1='%{[38;5;24m%};%{[0m%} 'Es exactamente lo que quería.
Sardathrion - contra el abuso SE
1
Consulte también ¿Es posible usar colores con nombre en Zsh más allá de los nombres ANSI?
Gilles 'SO- deja de ser malvado'

Respuestas:

9

Primero, asegúrese de que su terminal admita 256 colores, lo que supongo que ya tiene. Segundo, use una PS1variable con el código correcto, por ejemplo:

export PS1='%{^[[01;38;05;214;48;05;123m%}%m%{^[[0m%} '

Esto le dará un mensaje con el nombre del host en negrita, con un color de primer plano de 214 y un color de fondo de 123.

Tenga en cuenta que ^[se "ingresa" escribiendo Ctrl+ vy Ctrl+ [. Consulte este excelente artículo " That 256 Color Thing " para ver la lista completa de atributos.

phunehehe
fuente
Sí, estoy usando el terminal de habilitación de color urxvt 256.
Sardathrion - contra el abuso SE
¿Cómo puedo verificar si mi terminal admite 256 colores? Por ejemplo, ¿gnome-terminal (Ubuntu) admite 256 colores?
Amelio Vazquez-Reina
Utilice este script (artículo completo frexx.de/xterm-256-notes ). gnome-terminaladmite 256 colores.
phunehehe 01 de
1
El host del enlace está roto (502 puerta de enlace incorrecta).
Pikrass
1
@Pikrass Tengo 404 no encontrado.
Totor
13
export PS1='%F{214}%K{123}%m%k%f'

De man zshmisc:

   %F (%f)
          Start (stop) using a different foreground colour, if supported by the terminal.  The colour may be specified two ways: either as a numeric argument, as normal, or by a sequence in braces following the %F, for example %F{red}.  In the latter case the values allowed are as described for the fg zle_highlight attribute; see  Char
          acter Highlighting in zshzle(1).  This means that numeric colours are allowed in the second format also.

   %K (%k)
          Start (stop) using a different bacKground colour.  The syntax is identical to that for %F and %f.

También para probarlo podría usarse así:

$> print -P '%F{214}%K{123}%m%k%f'
ДМИТРИЙ МАЛИКОВ
fuente