給Console一點顏色-Ansi Escape Codes
2018/12/24 01:28:58
0
134
給Console一點顏色-Ansi Escape Codes
簡介 |
看看無聊的console介面,讓我們跟spring boot 一樣給console多一點顏色吧! |
作者 |
薛泰綸 |
給Console一點顏色-Ansi Escape Codes
前言:
看久了單一顏色的Console,我們常常不容易找到自己印出來的東西,在Debug的時候總是想快速找到自己Print出來的文字,
這時候Ansi Escape Codes 就可以提供很好的幫助。
在這篇文章裡面我們直接使用Eclipse的Console來顯示顏色。(Ansi Escape Codes一般都是使用在控制台也就是我們的Command Line)
環境:
• Spring Tool Suite ( Version: 3.9.5.RELEASE )
• java version 11.0.1
Ansi Escape Codes 介紹:
Ansi Escape Codes最基礎的用途就是讓控制台顯示的文字以∗富文本的形式輸出,比如設置字體颜色、背景颜色以及各種樣式。
讓我们先来學習如何設置字體颜色,而不用再忍受那枯燥的黑白二色!(
∗
註
)
字體顏色:
通過Ansi指令(即Ansi Escape Codes)給控制台的文字上色是最為常見的操作。比如:
• 紅色:/u001b[31m
• 重置:/u001b[0m
絕大部分的Ansi Codes 都是以/u001b 開頭,馬上用Java來印一段吧!

在上面輸出了兩次Hello World 第一次加上了Ansi Codes,所以可以看到字體顏色變成了紅色,
但是在第二次還是紅色,是因為只要改了Ansi Codes 在同一個區域範圍內,就會是改變過後的顏色,所以我們需要給他重置指令,讓它回復原狀。
不過比較好的處理方式以及習慣就是在最後再加上重置碼,確保每次都是乾淨的Ansi Codes。如下:

這樣輸出就會回復成一樣的顏色,那我們的重置指令其實可以放在任何地方,
這樣就可以很自由的調配顏色了,大家可以自己試試看。
例如:System.out.println("\u001b[31mHello \\u001b[0mWorld");
8色:
我們剛剛介紹了紅色以及重置,基本上所有的控制台都支援以下8種顏色
。黑色:\u001b[30m
。紅色:\u001b[31m
。綠色:\u001b[32m
。黄色:\u001b[33m
。藍色:\u001b[34m
。洋紅色:\u001b[35m
。青色:\u001b[36m
。白色:\u001b[37m

上面把它全部印出來了,可以清楚地看到有8色。
256色
•關於字體我們還可以印出更多種不一樣的顏色,部分控制台可以印出256色,那我們這邊也就為大家印出來看一下:
命令碼:\u001b[38;5;{n}m;
{n}為變數

以上就是Ansi Codes 基本上改變文字顏色的方法。
當然對於富文本還有更多的效果,我在下面一一列出來,有興趣的人可以自己去嘗試。
背景色:
黑色背景:\u001b[40m
红色背景:\u001b[41m
绿色背景:\u001b[42m
黄色背景:\u001b[43m
蓝色背景:\u001b[44m
洋红色背景:\u001b[45m
青色背景:\u001b[46m
白色背景:\u001b[47m
重置背景:\u001b[39m
如果要更多顏色的話,命令碼在這:\uoo1b[48;5;{n}m
{n} 為變數。
樣式
除了给文本設置颜色之外,我们還可以给文本設置樣式:
粗體:\u001b[1m
下底線:\u001b[4m
反色:\u001b[7m
不管是Console畫面或是終端機介面,我們都可以用AnsiCode來改變顏色方便閱讀或是DeBug。
註: