Как определить шестнадцатеричные триплеты RBG для ZSH?

Согласно руководству ZSH, для ZSH V5.1+ цвета должны быть определены как #, за которым следует цветовой код RGB в виде шестнадцатеричного триплета, например. #ff00ff. Однако я не нашел документации, которая бы давала конкретный пример, демонстрирующий, как именно это достигается, и как бы я ни пытался определить цветовую переменную, мне никогда не удавалось получить нужный мне цвет (или любой другой цвет, если на то пошло). Я пробовал все следующие форматы, и пока ни один из них не работал, когда я пытался использовать их в %F или %K в определении подсказки (например, PS1="%F{$var} >> %f")

var=#ff00ff
var="#ff00ff"
var='#ff00ff'
var=$"#ff00ff"
var=$'#ff00ff'

Я запускаю оболочку в эмуляторе терминала котенка, в котором по умолчанию включена поддержка truecolor. Все 255 номеров цветов (например, var=231) в zsh работают нормально, имена цветов (например, yellow) тоже. В настоящее время я использую ZSH V5.5.1. Я искал информацию на странице руководства zsh [] и до сих пор не было ничего, кроме упоминания об этом.

Я ищу пример того, как определить цвета шестнадцатеричного кода (и назначить их переменным) в недвусмысленных терминах.


person Lord Ubuntu    schedule 29.10.2019    source источник


Ответы (1)


Еще немного поэкспериментировав, я определил, что проблема частично в документации, а частично в версии. По сути, для объявления шестнадцатеричных троек в zsh используется формат var='#f0f0f0'. Для этого требуется, чтобы у вас была ZSH V5.7+, несмотря на то, что документация может говорить о том, что он работает в ZSH V5.1+.

Я надеюсь, что этот ответ будет полезен всем, кто сталкивается с этой трудностью.

person Lord Ubuntu    schedule 03.11.2019