16 кольорів у ZShell


11

Мені здається, що я можу викликати 8 кольорів у моєму рядку zshell.

Приклад:

PROMPT="[%n@%{$fg[magenta]%}%m%{$reset_color%} %.]
%# "

Добре працює. Однак,

PROMPT="[%n@%{$fg[brmagenta]%}%m%{$reset_color%} %.]
%# "

Не працює. В основному жодна з "яскравих" варіацій кольорів не з'являється.

Провівши деякі дослідження, я виявив, що кольори zsh називаються септопом "кольори".

робити

echo ${(o)color}

дає цей вихід:

00 01 02 03 04 05 07 08 22 23 24 25 27 28 30 30 30 30 31 31 32 32 33 33 34 34 35 35 36 36
37 37 39 39 40 40 41 42 43 44 45 46 47 49 bg-black bg-blue bg-cyan bg-default bg-green
bg-magenta bg-red bg-white bg-yellow black blink blue bold conceal cyan default faint green
magenta no-blink no-conceal no-reverse no-standout no-underline none normal red reverse
standout underline white yellow

Як бачите, доступні лише стандартні 8 кольорів. Я спробував використовувати варіанти "bg-", які також залишають вихідний колір як колір тексту за замовчуванням.

Будь-яка допомога, яку ви можете надати, буде дуже вдячна. Я, звичайно, міг би просто використовувати один із звичайних кольорів, але тоді я нічого б не навчився!

Відповіді:


9

Який термінальний емулятор ви використовуєте? Ви можете перевірити кількість підтримуваних кольорів, запустивши echotc Co. Наприклад, мої urxvtпідтримують 88 кольорів, але xtermпідтримують лише 8, і яскраві варіанти не входять.

Якщо я запускаю його, urxvtя отримую:

# Dark magenta/violet:
PS1="[%F{34}%n%F{reset}@%F{magenta}%m%F{reset} %.] " 
# Bright Thistle purple:
PS1="[%F{54}%n%F{reset}@%F{magenta}%m%F{reset} %.] "

Джерела: man zshall


4

Усі "кольори", про які ви говорите, - це лише послідовності втечі у формі \e[{color_code}m. Функція Zsh colorsне більше нічого, ніж додавання декількох змінних асоціативних масивів zsh для відображення читаних іменами кольорів в ідентифікаційні послідовності терміналу. Таким чином, ви можете або безпосередньо використовувати

PS1=%{$'\e[54m'%}...

або спробуйте відповідь @Mischa Arefiev, вона легше читається. Зауважте, що послідовності втечі працюють у будь-якій оболонці, тоді як конструкції, подібні до %F{54}...роботи, лише у zsh.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.