2

%k我可以使用(背景)或%f(前景)轻松切换回终端默认着色方案。还可以选择使用%K(default)%F(default)产生相同的结果。

如何将前景色更改为默认背景色?如果不准确命名颜色代码,这是否可能?

用法示例:正确着色左侧电力线分隔符:⮂。(左边是背景色,右边是前景色)

4

1 回答 1

4

您可以使用突出模式 切换前景色和背景色%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

于 2014-06-13T05:17:35.970 回答