1.多彩终端1.多彩终端
goer ... 2022-01-10 大约 1 分钟
[toc]
# 多彩终端
打字机TTY -> VT100 -> VT100控制码
控制符是 \033 或 \e 打头(即 ESC 的 ASCII 码)用输出字符语句来输出。
# VT100控制符
\033[0m // 关闭所有属性
\033[1m // 设置为高亮
\033[4m // 下划线
\033[5m // 闪烁
\033[7m // 反显
\033[8m // 消隐
\033[nA // 光标上移 n 行
\033[nB // 光标下移 n 行
\033[nC // 光标右移 n 行
\033[nD // 光标左移 n 行
\033[y;xH // 设置光标位置
\033[2J // 清屏
\033[K // 清除从光标到行尾的内容
\033[s // 保存光标位置
\033[u // 恢复光标位置
\033[?25l // 隐藏光标
\033[?25h // 显示光标
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# \033[30m – \033[37m 为设置前景色
30: 黑色
31: 红色
32: 绿色
33: 黄色
34: 蓝色
35: 紫色
36: 青色
37: 白色
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# \033[40m – \033[47m 为设置背景色
40: 黑色
41: 红色
42: 绿色
43: 黄色
44: 蓝色
45: 紫色
46: 青色
47: 白色
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
package main
import "fmt"
func main() {
fmt.Printf("\x1b[4;30;46mhello golang\x1b[0m")
}
1. \x1b[ :控制序列导入器
2. 4;30;46:由分号分隔的参数。4 表示下划线,30 表示设置前景色黑色,46 表示设置背景颜色青色
3. \x1b[0m 包含 0m用来表示清除显示属性
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
// 简单打印颜色
package main
import (
"fmt"
)
func main() {
fontColor()
fmt.Println("----------------")
bgColor()
}
func fontColor() {
for i := 1; i < 8; i++ {
color := i + 30
fmt.Printf("\x1b[5;%dm hello go \x1b[0m\n", color)
}
}
func bgColor() {
for i := 0; i < 9; i++ {
color := i + 30
bgcolor := 47 - i
fmt.Printf("\x1b[%d;%dm hello world \x1b[0m\n", bgcolor, color)
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
\x1b[5m
5的确在linux
是闪烁的