Invite de 256 colors dans Zsh

Comment puis-je définir mon message à colorier en 256 colors? Je cherche un équivalent à l'invite bash:

local DEFAULT="\[\033[0;39m\]" local ROOK="\[\033[38;5;24m\]" PS1="${ROOK}\$${DEFAULT} " 

Tout d'abord, assurez-vous que votre terminal supporte 256 colors, ce que je suppose que vous avez déjà. Deuxièmement, utilisez une variable PS1 avec le code correct, par exemple:

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

Cela vous donnera une invite avec le nom d'hôte en gras, avec une couleur de premier plan de 214 et une couleur d'arrière-plan de 123.

Notez que le ^[ est "entré" en tapant Ctrl + v et Ctrl + [ . Voir cet excellent article " That 256 Color Thing " pour toute la list des attributes.

 export PS1='%F{214}%K{123}%m%k%f' 

De l' 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 atsortingbute; 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. 

Aussi pour l'essayer, il pourrait être utilisé comme ça:

 $> print -P '%F{214}%K{123}%m%k%f'