zsh (256 цветов): цвет фона по умолчанию в качестве цвета переднего плана

Я могу легко переключиться обратно на схему окраски терминала по умолчанию, используя %k (фон) или %f (На переднем плане). Также есть возможность использовать %K(default) или же %F(default) который дает те же результаты.

Как я могу изменить цвет переднего плана на цвет фона по умолчанию? Возможно ли это даже без точного наименования цветового кода?

Пример использования: правильно окрасить левый направляющий разделитель линии электропередачи: ⮂. (левая сторона - цвет фона, правая сторона - цвет переднего плана)

1 ответ

Решение

Вы можете переключать цвета переднего плана и фона в режиме ожидания %S (%s),

Чтобы напечатать что-либо с цветом фона по умолчанию, вам просто нужно установить цвет фона по умолчанию, цвет переднего плана на любой, какой вы хотите в качестве фона, и включить режим ожидания.

Примеры:

print -P $' unchanged output colors'
print -P $'%f%k default colors %S standout mode %s'
print -P $'%F{blue}%K{red} blue on red %f%k'
print -P $'%S%F{blue}%K{red} red on blue %s blue on red %f%k'
print -P $'%K{default}%F{blue}%Sdefault background on blue %s%f%k'
print -P $'%K{red}%F{default}%S red on default foreground %f%k%s'

Как видите, не имеет значения, в каком порядке установлены цвета и режимы (работает одинаково для жирного и подчеркнутого режимов). Вы можете установить цвет переднего плана с %F{color} до или после запуска режима ожидания с %S, он просто используется в качестве фона после %S пока вы не остановите режим ожидания %s,

Другие вопросы по тегам