學習
學習
ANSI跳脫序列(ANSI escape sequences)
ANSI跳脫序列(ANSI escape sequences),是一種控制字元序列,用於控制終端機上的文字顯示效果,游標(cursor)位置和其他選項。這些序列通常以ESC跳脫字元和”[“字元開始,相容的終端機(例如: VT100)會將這些escape sequences解釋為相應的指令,而不是一般的普通文字。
這些序列有各種不同的功能,序列的開頭字元皆為 ESC (ASCII 27=0x1B)
,
以下列出幾種常見的ANSI序列,
對於本研究的一部分,與PTT論壇互動而言,我們將會用到是其中的 **CSI序列(Control Sequence Introducer)**,也就是 ESC [ = 0x9B
。
CSI序列(Control Sequence Introducer)
CSI序列,主要可以分為下列幾種主要的功能,游標控制(Cursor Controls)、螢幕清除(Erase Functions)、和顏色(Colors / Graphics Mode)控制等,以下列出幾種常見的CSI序列,
SGR (Select Graphic Rendition)
SGR序列可用於更改文字的顏色、背景色、斜體、加粗、和下劃線等不同效果。這些序列是為了在終端機上顯示顏色設計的,已廣泛應用於終端機、命令列介面(CLI)應用程式和日誌輸出等用途。
SGR序列(CSI n m)
,以CSI 字元開始,以 m 字元結束,中間包含想要的參數,參數部分以分號(semicolons)隔開,我們可以組合不同的參數來達到多種效果。
例如,以下序列: ESC[1;34mHello ESC[47mWorld
n 值 30-37 設定的是字體顏色(foreground color),40 - 47 設定的是背景色( background color),而1為將格式設為粗體,0則可以恢復預設顏色及字體,
所以透過上述規則,上述序列代表的意思為,
- 切換為粗體,將字體顏色設為藍色,輸出”Hello”。
- 將背景色設為白色,輸出”World”。