Terminal

如何根據 ISO/IEC 6429:1992 使用 SGR 功能使顏色變亮?

  • March 24, 2022

wiki上,我找到了以下 SGR(選擇圖形再現)功能的亮色程式碼

FG   BG
90  100     Bright Black
91  101     Bright Red
92  102     Bright Green
93  103     Bright Yellow
94  104     Bright Blue
95  105     Bright Magenta
96  106     Bright Cyan
97  107     Bright White 

在 wiki 上,據說“後來的終端增加了直接用 90-97 和 100-107 指定“明亮”顏色的能力。” 但是,我在 ECMA-48/5th 中找不到這些程式碼。只有從 0 到 65 的參數值。誰能在 wiki 上解釋這些程式碼以及如何根據 ISO/IEC 6429:1992 使顏色變亮?

ECMA-48 沒有定義“鮮豔的顏色”。這是由於 PC 顯示器。這是一個常見問題解答

ECMA-48 使用程式碼 0-7 定義顏色,包括前景和背景。文本 (ECMA-48) 可以用粗體顯示。PC 顯示器不會顯示粗體文本(將粗體等同於明亮是反轉原因/結果),但使用該功能的亮度。由於在 xterm 和其他終端(例如 Linux 控制台)中,正常(非粗體)黃色顯示為brown等,顏色 8-15 是一個理想的功能(在 xterm, boldColors資源中)。

  boldColors (class ColorMode)
          Specifies whether to combine bold attribute with colors like
          the IBM PC, i.e., map colors 0 through 7 to colors 8 through
          15.  These normally are the brighter versions of the first 8
          colors, hence bold.  The default is "true"

一些應用程序將其稱為明亮的顏色(這是不必要的限制)。您必須返回一段時間才能查看哪個術語先出現。在 xterm 中,它最初被稱為“16 色”。在aixterm聯機幫助頁中,既不使用粗體也未使用亮:

30..37 前景色—Xh, H
40..47 背景顏色—Xh, H
90..97 前景色—Xh, H
100..107 背景顏色—Xh, H

(Xh 和 H 指端子類型)。

順便說一句,Linux 控制台“最近”(在過去的 2-3 年中)為“明亮”顏色添加了 aixterm 程式碼 90-107。

引用自:https://unix.stackexchange.com/questions/696590