256-kolorowy monit w Zsh

14

Jak ustawić wyświetlanie monitu w 256 kolorach? Szukam odpowiednika polecenia bash:

  local DEFAULT="\[\033[0;39m\]"
  local ROOK="\[\033[38;5;24m\]"
  PS1="${ROOK}\$${DEFAULT} "
Sardathrion - przeciw nadużyciom SE
źródło
1
Wstydź się każdemu, kto patrzył, ale nie był pochwalony!
phunehehe,
export PS1='%{[38;5;24m%};%{[0m%} 'jest dokładnie tym, czego chciałem.
Sardathrion - przeciwko nadużyciom SE
1
Zobacz także Czy można używać nazwanych kolorów w Zsh poza nazwami ANSI?
Gilles 'SO - przestań być zły'

Odpowiedzi:

9

Po pierwsze, upewnij się, że twój terminal obsługuje 256 kolorów, które, jak przypuszczam, już masz. Po drugie, użyj PS1zmiennej z poprawnym kodem, na przykład:

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

Spowoduje to wyświetlenie monitu z pogrubioną nazwą hosta, kolorem pierwszego planu 214 i kolorem tła 123.

Zauważ, że ^[„wpisuje się”, wpisując Ctrl+ vi Ctrl+ [. Zobacz ten doskonały artykuł „ That 256 Color Thing ”, aby zobaczyć całą listę atrybutów.

phunehehe
źródło
Tak, używam terminalu włączania kolorów urxvt 256.
Sardathrion - przeciwko nadużyciom SE
Jak mogę sprawdzić, czy mój terminal obsługuje 256 kolorów? Na przykład, czy gnome-terminal (Ubuntu) obsługuje 256 kolorów?
Amelio Vazquez-Reina
Użyj tego skryptu (pełny artykuł frexx.de/xterm-256-notes ). gnome-terminalobsługuje 256 kolorów.
phunehehe
1
Host łącza jest uszkodzony (502 zła bramka).
Pikrass
1
@Pikrass Nie znaleziono 404.
Totor
14
export PS1='%F{214}%K{123}%m%k%f'

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

Aby go wypróbować, można go użyć w następujący sposób:

$> print -P '%F{214}%K{123}%m%k%f'
ДМИТРИЙ МАЛИКОВ
źródło