Un prompt di 256 colori in Zsh


14

Come posso impostare il mio prompt per essere colorato in 256 colori? Sto cercando un equivalente al prompt di bash:

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

1
Peccato per chiunque abbia fissato ma non votato!
phunehehe,

export PS1='%{[38;5;24m%};%{[0m%} 'è esattamente quello che volevo.
Sardathrion - contro l'abuso di SE

Risposte:


9

Innanzitutto, assicurati che il tuo terminale supporti 256 colori, che suppongo tu abbia già. In secondo luogo, utilizzare una PS1variabile con il codice corretto, ad esempio:

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

Questo ti darà un prompt con il nome host in grassetto, con un colore di primo piano di 214 e un colore di sfondo di 123.

Si noti che ^[è "inserito" digitando Ctrl+ ve Ctrl+ [. Vedi questo eccellente articolo " Quella cosa a 256 colori " per l'intero elenco di attributi.


Sì, sto usando il terminale abilitazione colore urxvt 256.
Sardathrion - contro l'abuso di SE

Come posso verificare se il mio terminale supporta 256 colori? Ad esempio, gnome-terminal (Ubuntu) supporta 256 colori?
Amelio Vazquez-Reina

Usa questo script (articolo completo frexx.de/xterm-256-notes ). gnome-terminalsupporta 256 colori.
phunehehe,

1
L'host del collegamento è interrotto (502 gateway non valido).
Pikrass,

1
@Pikrass Ho 404 non trovato.
Totor

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

Da 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.

Anche per provarlo potrebbe essere usato così:

$> print -P '%F{214}%K{123}%m%k%f'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.