ANSI 轉義序列（ANSI escape sequences）是一種的轉義序列標準，用於控制影片文字終端上的游標位置、顏色和其他選項。在文字中嵌入確定的位元組序列，大部分以 ESC 跳脫字元和 字元開始，終端會把這些位元組序列解釋為相應的指令，而不是普通的字元編碼。 ANSI 序列是在二十世紀七十年代引入的標準，用以取代特定於終端供應商的序列，並在二十世紀八十年代早期開始在計算機裝置市場上廣泛使用。與早期缺少游標移動功能的系統相比，新生的電子公告板系統使用 ANSI 序列改進其顯示。正是因為這個原因，ANSI 序列變成了所有制造商共同採用的標準。 在 21 世紀，儘管硬體文字終端已經越來越少了，但 ANSI 標準依然存在，因為大多數終端模擬器會對部分 ANSI 轉義序列進行解釋。一個值得注意的例外是，在微軟 Windows 10 更新 TH2 之前，Windows 作業系統的 Win32 控制檯是不支援 ANSI 轉義序列的。 歷史 最初，幾乎每個影片終端製造商都各自添加了特定的轉義序列用於執行一些特殊操作，比如把游標置於螢幕上的某個位置。舉例來說，終端允許透過傳送 ESC 字元、y 字元，後面跟上兩個等於 xy 位置的數值加上 32 的字元（這是為了從 ASCII 空格字元開始，並避開控制字元），將游標置於螢幕上的 xy 位置。 由於這些序列對於不同的終端並不一樣，因此人們不得不開發了一些複雜的庫（比如）和實用程式（比如），以便程式可以使用同一套 API 應對各種終端。另外，在很多終端中需要藉助字元的二進位制值傳送數字（如行和列）。對於某些程式語言，以及內部不使用 ASCII 的系統來說，把數字轉換為正確的字元常常是有困難的，甚至完全做不到。 ANSI 標準試圖解決這些問題。標準制訂了一種所有終端共用的指令集，並要求用 ASCII 的數字字元傳遞所有數值資訊。該系列的第一個標準是 1976 年透過的 ECMA48。它是一系列字元編碼標準的延續，其中第一個是從 1965 年的，一個 7 位標準，ISO 646 就源自此標準。ANSI 轉義序列 的名稱可以追溯到 1979 年 ANSI 採用 ANSI X364。此外，ANSI X3L2 委員會與 ECMA 委員會 TC 1 合作制訂了一個幾乎一模一樣的標準。以上兩個標準合併為 ISO 6429 的國際標準。1994 年，ANSI 取消了其標準，以支援國際標準。 第一個支援這個標準的流行影片終端是 1978 年推出的 Digital 。這個終端在市場上非常成功，引發了各種各樣的仿製品，其中最早和最流行的是 1979 年的。其他品牌還有 QVT108， TVI970， WY99GT。另外，許多其他品牌的終端也不同程度地相容可選的 VT100、VT103 或 ANSI 模式。 隨著越來越多的軟體（尤其是 BBS 系統）普及，越來越多的軟體依賴轉義序列起作用，導致幾乎所有新的終端和終端模擬器都支援了此標準。 1981 年，ANSI X364 被美國政府採用（FIPS 86）。後來，美國政府停止複製行業標準，所以 FIPS 86 又被撤回了。 ECMA48 已經經歷了多次更新換代，目前是從 1991 年開始的第 5 版。它也被 ISO 和 IEC 用作標準 ISOIEC 6429。 平臺支援 類 Unix 系統和 AmigaOS 隨著諸多 BBS 和線上服務廣泛使用 ANSI，到 20 世紀 80 年代中期，ANSI 幾乎得到了全平臺支援。儘管許多作業系統在標準文字輸出中越來越多地支援 ANSI，但大多數情況下 ANSI 支援是由終端模擬器完成的（例如 UnixLinux 上的 xterm、、Konsole，MacOS 上的 OS X Terminal 或，以及 IBM PC 上的許多通訊程式）。 Unix 和 AmigaOS 都在作業系統中包含了對 ANSI 的一些支援，因此在這些平臺上執行的程式廣泛使用 ANSI。 類 Unix 作業系統可以透過像和之類的庫來生成 ANSI 程式碼，許多軟體使用這些庫升級顯示方式。這些庫也應該支援非 ANSI 終端，但是現在很少有人測試，所以很可能已經不起作用了。許多遊戲和 shell 指令碼直接輸出 ANSI 序列（如彩色的提示資訊），因此無法在不支援 ANSI 的終端上執行。 AmigaOS 不僅支援輸出到螢幕上的文字使用 ANSI 序列，還支援印表機驅動程式使用 ANSI 序列（需要 AmigaOS 的專有擴充套件，這會將它們轉換為與特定印表機實際通訊所需的程式碼）。 儘管 ANSI 很普及，卻並沒有得到全平臺支援。比如原始的 經典 Mac OS 就沒有內建對 ANSI 的支援，再比如 Atari ST 使用的是 VT52 改編的命令系統，需要用一些擴充套件程式來支援顏色顯示 Using CKermit p 88。 Windows 和 DOS MSDOS 1x 不支援 ANSI 或任何其他轉義序列，只有少數控制字元（BEL、CR、LF、BS）可以由底層 BIOS 解釋，所以幾乎螢幕顯示可以透過從底部繪製整個新螢幕的內容來替代，滾動上一螢幕以充分擦除所有舊文字內容。使用者會看到滾動，硬體游標會留在最底部。 一些早期的批處理檔案以這種方式實現了基本的 全屏 顯示。不可能做出任何全屏應用程式。所有顯示效果都必須透過 BIOS 呼叫，或者直接控制 IBM PC 硬體來完成，呼叫速度非常慢。 DOS 20 引入了新增裝置驅動程式來支援 ANSI 轉義序列的功能（事實上的標準是 ANSISYS，但也使用了 ANSICOM、NANSISYS 和 ANSIPLUSEXE 等其他程式。因為繞過了 BIOS，所以這些程式的速度比以前快了不少）。但由於實際執行速度仍然比較慢，以及預設並沒有安裝，所以還是很少得到利用。應用程式往往還是繼續用直接控制硬體的方式來顯示所需的文字。ANSISYS 和類似的驅動程式繼續在 Windows 9x 上工作，直到 Windows Me，在 NT 衍生系統中用於在下執行的 16 位傳統程式。 Win32 控制檯完全不支援 ANSI 轉義序列。不過有一些控制檯的替代品或者附加軟體具有解釋程式輸出的 ANSI 轉義序列的功能，例如 JP Software 的 TCC（以前的 4NT）、Michael J Mefford 的 ANSICOM、Jason Hood 的 ANSICON 和 Maximus5 的 ConEmu。有一個 Python 軟體包在內部解釋了列印文字中的 ANSI 轉義序列，將它們轉換為系統呼叫來操縱顏色和游標位置，以便更容易地將使用 ANSI 的 Python 程式碼移植到 Windows。 2016 年，在 Windows 10 釋出 Threshold 2 時，微軟開始在控制檯應用程式中支援 ANSI 轉義序列，使得從 Unix 移植軟體或者遠端訪問 Unix 變得更容易。這是與 Windows Subsystem for Linux 一起完成的，允許基於終端的類 Unix 軟體在 Win32 控制檯中使用轉義序列。2019 年，微軟推出了 Windows Terminal，並且正在用其替換掉 Win32 控制檯 轉義序列 序列具有不同的長度。所有序列都以 ASCII 字元 ESC（27 十六進位制 0x1B）開頭，第二個位元組則是 0x400x5F（ASCII AZ _）範圍內的字元。 標準規定，在 8 位環境中，這兩個位元組的序列可以合併為 0x800x9F 範圍內的單個位元組（詳情請參閱 C1 控制字元集）。但是，在現代裝置上，這些程式碼通常用於其他目的，例如 UTF8 的一部分或 CP1252 字元，因此並不使用這種合併的方式。 除 ESC 之外的其他 C0 程式碼（通常是 BEL，BS，CR，LF，FF，TAB，VT，SO 和 SI）在輸出時也可能會產生與某些控制序列相似或相同的效果。 一些 ANSI 轉義序列（不完整列表） 序列 C1 名稱 作用 0x8e 從其中一個替代字元集中選擇一個字元。在 xterm 中，SS2 選擇 G2 字元集，SS3 選擇 G3 字元集。 0x8f 從其中一個替代字元集中選擇一個字元。在 xterm 中，SS2 選擇 G2 字元集，SS3 選擇 G3 字元集。 0x90 控制裝置。在 xterm 中，這個序列的使用包括定義使用者自定義的金鑰，以及請求或設定 TermcapTerminfo 資料。 0x9b 大部分有用的序列，請參閱下一節。結束於 ASCII 64 到 126 到～ 十六進位制 0x40 到 0x7E 0x9c 終止其他控制元件（包括 APC，DCS，OSC，PM 和 SOS）中的字串。 0x9d 啟動作業系統使用的控制字串。OSC 序列與 CSI 序列相似，但不限於整數引數。通常，這些控制序列由 ST 終止。在 xterm 中，它們也可能被 BEL 終止。例如，在 xterm 中，視窗標題可以這樣設定：OSC 0this is the window title BEL。 0x98 引用由 ST 終止的一串文字的引數。這些字串控制序列的用途由應用程式或私有規則來定義。這些函式沒有實現，引數被 xterm 忽略。 0x9e 引用由 ST 終止的一串文字的引數。這些字串控制序列的用途由應用程式或私有規則來定義。這些函式沒有實現，引數被 xterm 忽略。 0x9f 引用由 ST 終止的一串文字的引數。這些字串控制序列的用途由應用程式或私有規則來定義。這些函式沒有實現，引數被 xterm 忽略。 將裝置重置為原始狀態。可能包括（如果適用的話）：重置圖形格式，清除製表符，重置為預設字型等等。 按下鍵盤上的特殊鍵，以及輸出 xterm CSI、DCS 或 OSC 序列，常常用於產生從終端傳送到計算機的 CSI，DCS 或 OSC 序列，就像使用者使用鍵盤輸入的一樣。 CSI 序列 CSI 序列由 ESC 、若干個（包括 0 個）引數位元組、若干個 中間位元組，以及一個 最終位元組 組成。各部分的字元範圍如下： 組成部分 字元範圍 ASCII 引數位元組 0x300x3F 09 中間位元組 0x200x2F 空格、 最終位元組 0x400x7E 所有常見的序列都只是把引數用作一系列分號分隔的數字，如 123。缺少的數字視為 0（如 13 相當於中間的數字是 0，ESC m 這樣沒有引數的情況相當於引數為 0）。某些序列（如 CUU）把 0 視為 1，以使缺少引數的情況下有意義。 一部分字元定義是 私有 的，以便終端製造商可以插入他們自己的序列而不與標準相沖突。包括引數位元組 的使用，或者最終位元組 0x700x7F（pz ）例如序列 CSI25h 和 CSI25l 的作用是開啟和關閉游標的顯示。 當 CSI 序列含有超出 0x200x7E 範圍的字元時，其行為是未定義的。這些非法字元包括 C0 控制字元（範圍 00x1F）、DEL（0x7F），以及高位位元組。 一些 ANSI 控制序列（不完整列表） 程式碼 名稱 作用 CSI n A CUU 游標上移（Cursor Up） 游標向指定的方向移動 n（預設 1）格。如果游標已在螢幕邊緣，則無效。 CSI n B CUD 游標下移（Cursor Down） 游標向指定的方向移動 n（預設 1）格。如果游標已在螢幕邊緣，則無效。 CSI n C CUF 游標前移（Cursor Forward） 游標向指定的方向移動 n（預設 1）格。如果游標已在螢幕邊緣，則無效。 CSI n D CUB 游標後移（Cursor Back） 游標向指定的方向移動 n（預設 1）格。如果游標已在螢幕邊緣，則無效。 CSI n E CNL 游標移到下一行（Cursor Next Line） 游標移動到下面第 n（預設 1）行的開頭。（非） CSI n F CPL 游標移到上一行（Cursor Previous Line） 游標移動到上面第 n（預設 1）行的開頭。（非 ANSISYS） CSI n G 游標移動到第 n（預設 1）列。（非 ANSISYS） CUP 游標位置（Cursor Position） 游標移動到第 n 行、第 m 列。值從 1 開始，且預設為 1（左上角）。例如 CSI 5H 和 CSI 15H 含義相同；CSI 17H、CSI 17H 和 CSI 171H 三者含義相同。 CSI n J ED 擦除顯示（Erase in Display） 清除螢幕的部分割槽域。如果 n 是 0（或缺失），則清除從游標位置到螢幕末尾的部分。如果 n 是 1，則清除從游標位置到螢幕開頭的部分。如果 n 是 2，則清除整個螢幕（在 DOS ANSISYS 中，游標還會向左上方移動）。如果 n 是 3，則清除整個螢幕，並刪除回滾快取區中的所有行（這個特性是 xterm 新增的，其他終端應用程式也支援）。 CSI n K EL 擦除行（Erase in Line） 清除行內的部分割槽域。如果 n 是 0（或缺失），清除從游標位置到該行末尾的部分。如果 n 是 1，清除從游標位置到該行開頭的部分。如果 n 是 2，清除整行。游標位置不變。 CSI n S SU 向上滾動（Scroll Up） 整頁向上滾動 n（預設 1）行。新行新增到底部。（非 ANSISYS） CSI n T SD 向下滾動（Scroll Down） 整頁向下滾動 n（預設 1）行。新行新增到頂部。（非 ANSISYS） 同 CUP。 SGR 選擇圖形再現（Select Graphic Rendition） 設定 SGR 引數，包括文字顏色。CSI 後可以是 0 或者更多引數，用分號分隔。如果沒有引數，則視為 CSI 0 m（重置 常規）。 CSI 5i 開啟輔助埠 啟用輔助序列埠，通常用於本地序列印表機 CSI 4i 關閉輔助埠 停用輔助序列埠，通常用於本地序列印表機 CSI 6n DSR 裝置狀態報告（Device Status Report） 以 ESC nmR（就像在鍵盤上輸入）嚮應用程式報告游標位置（CPR），其中 n 是行，m 是列。 CSI s SCP 儲存游標位置（Save Cursor Position） 儲存游標的當前位置。 CSI u RCP 恢復游標位置（Restore Cursor Position） 恢復儲存的游標位置。 選擇圖形再現（SGR）引數 程式碼 作用 備註 0 重置 正常 關閉所有屬性。 1 粗體或增加強度 2 弱化（降低強度） 未廣泛支援。 3 斜體 未廣泛支援。有時視為反相顯示。 4 下劃線 5 緩慢閃爍 低於每分鐘 150 次。 6 快速閃爍 MSDOS ANSISYS；每分鐘 150 以上；未廣泛支援。 7 反顯 前景色與背景色交換。 8 隱藏 未廣泛支援。 9 劃除 字元清晰，但標記為刪除。未廣泛支援。 10 主要（預設）字型 1119 替代字型 選擇替代字型 n10。 20 尖角體 幾乎無支援。 21 關閉粗體或雙下劃線 關閉粗體未廣泛支援；雙下劃線幾乎無支援。 22 正常顏色或強度 不強不弱。 23 非斜體、非尖角體 24 關閉下劃線 去掉單雙下劃線。 25 關閉閃爍 27 關閉反顯 28 關閉隱藏 29 關閉劃除 3037 設定前景色 參見下面的顏色表。 38 設定前景色 下一個引數是 5n 或 2rgb，見下。 39 預設前景色 由具體實現定義（按照標準）。 4047 設定背景色 參見下面的顏色表。 48 設定背景色 下一個引數是 5n 或 2rgb，見下。 49 預設背景色 由具體實現定義（按照標準）。 51 Framed 52 Encircled 53 上劃線 54 Not framed or encircled 55 關閉上劃線 60 表意文字下劃線或右邊線 幾乎無支援。 61 表意文字雙下劃線或雙右邊線 幾乎無支援。 62 表意文字上劃線或左邊線 幾乎無支援。 63 表意文字雙上劃線或雙左邊線 幾乎無支援。 64 表意文字著重標誌 幾乎無支援。 65 表意文字屬性關閉 重置 6064 的所有效果。 9097 設定明亮的前景色 aixterm（非標準）。 設定明亮的背景色 aixterm（非標準）。 顏色 34 位 初始的規格只有 8 種顏色，只給了它們的名字。SGR 引數 3037 選擇前景色，4047 選擇背景色。相當多的終端將 粗體（SGR 程式碼 1）實現為更明亮的顏色而不是不同的字型，從而提供了 8 種額外的前景色，但通常情況下並不能用於背景色，雖然有時候反顯（SGR 程式碼 7）可以允許這樣。例如：在白色背景上顯示黑色文字使用 ESC 3047m，顯示紅色文字用 ESC 31m，顯示明亮的紅色文字用 ESC 131m。重置為預設顏色用 ESC 3949m（某些終端不支援），重置所有屬性用 ESC 0m。後來的終端新增了功能，可以直接用 9097 和 100107 指定 明亮 的顏色。 當硬體開始使用 8 位 DAC 時，多個軟體為這些顏色名稱分配了 24 位的程式碼。下面的圖表顯示了傳送到 DAC 的一些常用硬體和軟體的值。 名稱 前景色程式碼 背景色程式碼 VGA 在啟動 PC 並將其保留在文字模式下時使用的典型顏色，使用 16 個條目的顏色表。EGAVGA 圖形模式中的顏色不同。 CMD 從 Windows XP 起 Terminalapp PuTTY mIRC xterm 以上顏色名稱來自 X11 rgbtxt 顏色資料庫，用 light 作為明亮顏色的字首。 Ubuntu 用於虛擬終端，來自 etcvtrgb。 黑 30 40 000 000 000 000 000 000 000 111 紅 31 41 17000 12800 1945433 18700 12700 20500 25500 2225643 綠 32 42 01700 01280 3718836 01870 01470 02050 02550 5718174 黃 33 43 170850 在基於 CGA 相容硬體（如在 DOS 上執行的 ANSISYS）的終端上，正常強度的前景色呈現為橙色。 CGA RGBI 顯示器包含一些硬體，透過減少綠色成分將深黃色修改為橙色 棕色。 1281280 17317339 1871870 2521270 2052050 2552550 2551996 藍 34 44 00170 00128 7346225 00187 00127 00238Changed from 00205 in July 2004 00255 0111184 品紅 35 45 1700170 1280128 21156211 1870187 1560156 2050205 2550255 11838113 青 36 46 0170170 0128128 51187200 0187187 0147147 0205205 0255255 44181233 白 37 47 170170170 192192192 203204205 187187187 210210210 229229229 255255255 204204204 亮黑（灰） 90 100 858585 128128128 129131131 858585 127127127 127127127 128128128 亮紅 91 101 2558585 25500 2525731 2558585 25500 25500 25500 亮綠 92 102 8525585 02550 4923134 8525585 02520 02550 144238144 02550 亮黃 93 103 25525585 2552550 23423635 25525585 2552550 2552550 255255224 2552550 亮藍 94 104 8585255 00255 8851255 8585255 00252 9292255Changed from 00255 in July 2004 173216230 00255 亮品紅 95 105 25585255 2550255 24953248 25585255 2550255 2550255 2550255 亮青 96 106 85255255 0255255 20240240 85255255 0255255 0255255 224255255 0255255 亮白 97 107 255255255 255255255 233235235 255255255 255255255 255255255 255255255 8 位 隨著 256 色查詢表在顯示卡上越來越常見，相應的轉義序列也增加了，以從預定義的 256 種顏色中選擇： ESC 385n m 選擇前景色（n 是下表中的一種） ESC 485n m 選擇背景色 0 7：標準顏色（同 ESC 3037 m） 8 15：高強度顏色（同 ESC 9097 m） 16231：6 6 6 立方（216 色） 16 36 r 6 g b 0 r g b 5 232255：從黑到白的 24 階灰度色 ITU 的 T416 資訊科技 開放文件體系結構（ODA）和交換格式：字元內容體系結構使用 作為分隔符： ESC 385n m 選擇前景色（n 是下表中的一種） ESC 485n m 選擇背景色 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 256 色模式 前景色：ESC 385m 背景色：ESC 485m 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 標準色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 高強度色 stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold stylewidth100textaligncenterfontweightbold 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 24 位 隨著 16 位到 24 位顏色的 真彩色 顯示卡的普及，Xterm、KDE 的 Konsole，以及所有基於 libvte 的終端（包括）支援了 ISO86133 的 24 位前景色和背景色設定。 ESC 382rgb m 選擇 RGB 前景色 ESC 482rgb m 選擇 RGB 背景色 作為 ISO IEC 國際標準 86136 採用的 ITU 的 T416 資訊科技 開放文件體系結構（ODA）和交換格式：字元內容體系結構給出了一個似乎不太受支援的替代版本： ESC 382ColorSpaceIDrgbunusedCS toleranceColorSpace 0CIELUV 1CIELABm 選擇 RGB 前景色 ESC 482ColorSpaceIDrgbunusedCS toleranceColorSpace 0CIELUV 1CIELABm 選擇 RGB 背景色 請注意，這裡使用了保留的 字元來分隔子選項，這可能是在實際實現中造成混淆的始作俑者。它還使用 3 作為第二個引數來指定使用青 品紅 黃方案的方案，4 用於青 品紅 黃 黑的方案，後者使用上面標記為 unused（未使用）的位置作為黑色元件。 還要注意，許多識別 作為分隔符的實現錯誤地忽視了色彩空間識別符號引數，並因此改變了其餘部分的位置。 示例 CSI 2 J 清除螢幕、（在某些裝置上）把游標置於 11 位置（左上角）。 CSI 32 m 使文字呈綠色。在 MSDOS 上，一般綠色是暗淡的綠色，可以用 CSI 1 m 啟用粗體使其變成明亮的綠色，或者將兩者合併為 CSI 32 1 m。MSDOS ANSISYS 用粗體狀態使字元變亮，閃爍狀態（透過 INT 10 AX 1003h BL 00h 使背景色變成明亮模式。MSDOS ANSISYS 並不直接支援 SGR 程式碼 9097 和 100107。 CSI 0 6 8 DIR 13 p 重新分配 F10 鍵的功能為傳送字串 DIR 和回車符到鍵盤快取中，在 DOS 命令列裡會顯示當前目錄的內容（僅 MSDOS ANSISYS）。這種序列有時用於 。這是一個私用編碼（如字母 p 所示），用非標準的擴充套件使其包含一個字串引數。如果按標準，會認為字母 D 是序列的末尾。 CSI s 儲存游標的位置。用序列 CSI u 會把游標重置回這個位置。假設當前的游標位置是 7（y）、10（x）。序列 CSI s 會儲存這兩個數值。現在可以把游標移動到其他位置，比如用序列 CSI 20 3 H 或 CSI 20 3 f 把游標移動到 20（y）、3（x）。現在如果用序列 CSI u，游標會回到 7（y）、10（x）。某些終端需要使用 DEC 序列 ESC 7ESC 8，這得到了更廣泛的支援。 使用 Shell 指令碼的示例 ANSI 轉移程式碼常常用於 UNIX 和類 UNIX 終端，以提供語法高亮功能。例如，在相容的終端上，以下 ls 命令按型別對檔案和目錄的名稱進行顏色編碼。 ls color 使用者可以在指令碼中使用轉義碼，將其作為標準輸出或標準錯誤輸出的一部分。例如，下面的 GNU sed 命令透過反顯 WARN 開頭的單詞的行，以及使用暗紅色背景色和亮黃色前景色顯示以 ERR 開頭的單詞（字母大小寫被忽略）的行來修飾 make 命令的輸出。突出顯示了設定 ANSI 程式碼的部分。 make 21 sed esbWARNx1b 7mx1b 0mi esbERRx1b 9341 mx1b 0mi 以下 Bash 函式會使終端閃爍（透過交替傳送反相和正常顯示模式程式碼），直到使用者按下任意鍵。這個函式可以用於當一個冗長的命令終止時提醒使用者，用法如 make flasher。 flasher while true do printf e 5h sleep 01 printf e 5l read s n1 t1 break done 下面這個命令可以重置控制檯，類似現代 Linux 系統的 reset 命令。然而，即使在較早的 Linux 系統和其他（非 Linux）UNIX 變體上，也應該能起作用。 printf 033c 參見 控制字元 腳註 參考資料 外部連結 Standard ECMA48 Control Functions For Coded Character Sets 5th edition June 1991 European Computer Manufacturers Association Geneva 1991 also published by ISO and IEC as standard ISOIEC 6429 vt100net DEC Documents Xterm Escape Sequences AIXterm Escape Sequences A collection of escape sequences for terminals that are vaguely compliant with ECMA48 and friends ANSI Escape Sequences ITUT Rec T416 0393 Information technology Open Document Architecture ODA and interchange format Character content architectures Category 計算機標準 CategoryEcma 標準 Category 文字使用者介面