Invite 256 couleurs dans Zsh

14

Comment puis-je configurer mon invite pour qu'elle soit colorisée en 256 couleurs? Je recherche un équivalent à l'invite bash:

  local DEFAULT="\[\033[0;39m\]"
  local ROOK="\[\033[38;5;24m\]"
  PS1="${ROOK}\$${DEFAULT} "
Sardathrion - contre les abus SE
la source
1
Honte à tous ceux qui ont regardé sans voter!
phunehehe
export PS1='%{[38;5;24m%};%{[0m%} 'c'est exactement ce que je voulais.
Sardathrion - contre SE abus

Réponses:

9

Tout d'abord, assurez-vous que votre terminal prend en charge 256 couleurs, ce que je suppose que vous avez déjà. Deuxièmement, utilisez une PS1variable avec le bon code, 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+ vet Ctrl+ [. Voir cet excellent article " That 256 Color Thing " pour la liste complète des attributs.

phunehehe
la source
Oui, j'utilise le terminal d'activation de la couleur urxvt 256.
Sardathrion - contre les abus SE
Comment puis-je vérifier si mon terminal prend en charge 256 couleurs? Par exemple, gnome-terminal (Ubuntu) prend-il en charge 256 couleurs?
Amelio Vazquez-Reina
Utilisez ce script (article complet frexx.de/xterm-256-notes ). gnome-terminalprend en charge 256 couleurs.
phunehehe
1
L'hôte du lien est rompu (502 passerelle incorrecte).
Pikrass
1
@Pikrass J'ai 404 introuvable.
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.

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

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