256 цветных подсказок в Zsh

14

Как мне настроить окраску приглашения в 256 цветов? Я ищу эквивалент командной строки bash:

  local DEFAULT="\[\033[0;39m\]"
  local ROOK="\[\033[38;5;24m\]"
  PS1="${ROOK}\$${DEFAULT} "
Сардатрион - против злоупотребления SE
источник
1
Позор тому, кто смотрел, но не голосовал!
phunehehe
export PS1='%{[38;5;24m%};%{[0m%} 'это именно то, что я хотел.
Сардатрион - против злоупотребления SE
1
См. Также Можно ли использовать именованные цвета в Zsh помимо имен ANSI?
Жиль "ТАК - перестань быть злым"

Ответы:

9

Во-первых, убедитесь, что ваш терминал поддерживает 256 цветов, которые, я полагаю, у вас уже есть. Во-вторых, используйте PS1переменную с правильным кодом, например:

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

Это даст вам приглашение с именем хоста, выделенным жирным шрифтом, с цветом переднего плана 214 и цветом фона 123.

Обратите внимание, что ^[«вводится», набирая Ctrl+ vи Ctrl+ [. См. Эту превосходную статью « Та 256 цветов » для полного списка атрибутов.

phunehehe
источник
Да, я использую терминал разрешения цвета urxvt 256.
Сардатрион - против злоупотребления SE
Как я могу проверить, поддерживает ли мой терминал 256 цветов? Например, поддерживает ли GNOME-терминал (Ubuntu) 256 цветов?
Амелио Васкес-Рейна
Используйте этот скрипт (полная статья frexx.de/xterm-256-notes ). gnome-terminalдействительно поддерживает 256 цветов.
phunehehe
1
Хост ссылки не работает (плохой шлюз 502).
Пикрасс
1
@Pikrass у меня 404 не найден.
Тотор
13
export PS1='%F{214}%K{123}%m%k%f'

От 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.

Также, чтобы попробовать это, это можно использовать так:

$> print -P '%F{214}%K{123}%m%k%f'
ДМИТРИЙ МАЛИКОВ
источник