Go如何输出ANSI 颜色代码

SunnyGo · · 5416 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

这连天bee升级到了1.5版本,在执行bee version的时候会输出一个有颜色的BEE的logo,很多人觉着很神奇,其实这个就是ANSI颜色代码。

其实在Linux,我们编写C语言轻易可以实现这个效果。

具体的书写格式如下:

格式:\033[显示方式;前景色;背景色m
 
说明:
前景色            背景色           颜色
---------------------------------------
30                40              黑色
31                41              红色
32                42              绿色
33                43              黃色
34                44              蓝色
35                45              紫红色
36                46              青蓝色
37                47              白色
显示方式           意义
-------------------------
0                终端默认设置
1                高亮显示
4                使用下划线
5                闪烁
7                反白显示
8                不可见
 
例子:
\033[1;31;40m    
\033[0m          

详细资料,请参看https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

但是在windows下就比较难做到。

The Win32 console did not support ANSI escape sequences at all until Windows 10 "Threshold 2".[10] Some replacements or additions for the console window such as JP Software's TCC (formerly 4NT), Michael J. Mefford's ANSI.COM, Jason Hood's ANSICON[11] and Maximus5's ConEmu do interpret ANSI escape sequences printed by programs.

从这段可以看出win 10才支持。

内事不明问百度,外事不清问谷歌。搜索到https://github.com/fatih/color这个神器。

go get github.com/fatih/color

下面我就模仿bee写一个小程序。

package main

import (
	"fmt"

	"github.com/fatih/color"
)

func main() {

	beeStrUp := `______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v1.5.0
`
	beeStrDown := `
├── Beego     : 1.7.0
├── GoVersion : go1.6.2
├── GOOS      : windows
├── GOARCH    : amd64
├── NumCPU    : 8
├── GOPATH    : x:\Eagle\go
├── GOROOT    : y:\Go\
├── Compiler  : gc
└── Date      : Friday, 19 Aug 2016`
	color.Set(color.FgMagenta, color.Bold)
	defer color.Unset()
	fmt.Println(beeStrUp)
	color.Set(color.FgGreen, color.Bold)
	fmt.Println(beeStrDown)
}

运行结果:


有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:SunnyGo

查看原文:Go如何输出ANSI 颜色代码

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5416 次点击  ∙  1 赞  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传