go实现终端输出颜色文本

go实现终端输出颜色文本

// 示例
fmt.Printf("33[1;31;40m%s33[0m
","高亮显示 - 红色文字,黑色底哒")
fmt.Printf("33[4;31;40m%s33[0m
","下划线 -  红色文字,黑色底哒")
fmt.Printf("33[5;31;40m%s33[0m
","闪烁 - 红色文字,黑色底哒")
fmt.Printf("33[7;31;40m%s33[0m
","反白显示 - 红色文字,黑色底哒")
fmt.Printf("33[8;31;40m%s33[0m
","红色文字,黑色底哒")

33 [1;31;40m 红色文字,黑色底哒 33 [0m
33 操作类型
033
表示转义 设置颜色
[1;31;40m 设置颜色
[ 1 ; 31 40 m
设置开始 显示方式
1表示高亮,下面说明
分号分隔 前景色(文字颜色) 背景色 设置结束
33 操作类型
033
表示转义 设置颜色
[0m 恢复默认的中断样式

显示方式

代码 意义
0 终端默认显示
1 高亮显示(文字会略粗一点显示。)
4 使用下划线
5 闪烁
7 反白
8 不可见

颜色示例

前景色(文字颜色) 背景色 高亮色(加粗) 颜色
30 40(左边的30+10) 90(30+60) 黑色
31 同上 同上 红色
32 同上 同上 绿色
33 同上 同上 黄色
34 同上 同上 深蓝色
35 同上 同上 紫色
36 同上 同上 Tiffany蓝
37 同上 同上 白色
type Color int

// Foreground text colors.
const (
	FgBlack Color = iota + 30
  FgRed
  FgGreen
  FgYellow
  FgBlue
  FgMagenta
  FgCyan
  FgWhite
)

// Foreground Hi-Intensity text colors.
const (
	FgHiBlack Color = iota + 90
  FgHiRed
  FgHiGreen
  FgHiYellow
  FgHiBlue
  FgHiMagenta
  FgHiCyan
  FgHiWhite
)

// Colorize a string based on given color.
func ColorSize(s string, c Color) string {
  return fmt.Sprintf("33[1,%s,40m%s33[0m", strconv.Itoa((int c)), s)
}

原文地址:https://www.cnblogs.com/sweetXiaoma/p/14430278.html