當然這東西已經不是什麼新的技術,只是許多人不知道怎麼使用而已,事實上 ANSI/VT100 control 當然不只是加些顏色這種小功能,還有一堆諸如文字定位等等,不過這邊只針對 Color 說明。
先用下面這段 Code 跑個小 Sample..
#include
int main()
{
int i;
printf(" | \\e[0m | \\e[1m | bg |\n");
printf("--------+-------+-------+--------+------\n");
for (i = 0; i < 8; i++) {
printf(" \\e[%dm | \e[0;%dmColor\e[m ",
i + 30, i + 30);
printf("| \e[1;%dmColor \e[m",
i + 30, i + 30);
printf("| \\e[%dm | \e[0;%dm \e[m\n",
i + 40, i + 40);
}
printf("--------+-------+-------+--------+------\n");
}
上面程式只是跑個簡單的 loop 將色碼印出來,可以看到下面的效果

加入顏色只要印出下面控制碼即可,其中 x1~xn 代表的是要使用的 control 屬性,以顏色部分而言,可以有 0 | 1, 30~37, 40~47 等三種屬性,0 | 1 代表是否要開始高亮度,30~37 代表前景顏色,40~47 代表背景顏色,可以單獨使用也可以交錯使用,每個屬性都以分號隔開。
\e[<x1>;<x2>;...;<xn>m
當然插入控制碼之後記得必須在文字結束後再插入一次控制碼將顏色還原,一樣使用上面的格式,其中屬性部分全部不要輸入即可還原預設值。更詳細資料可以參考下面網址
ANSI/VT100 Control 參考資料 http://graphcomp.com/info/specs/ansi_col.html
...
Read more.
