zoukankan      html  css  js  c++  java
  • 使用ANSI改变终端输出样式

      默认情况下程序输出到终端的字符样式为白字黑背景,样式、字体比较单一。如想改变程序输出到终端字符的样式等可使用ANSI转移码使其输出具有不同样式;

    ANSI转义序

      ANSI转义序列包括这三个部分组成:前置引导,CSI转义序列,结束符号
    1、前置引导: 为ESC的ASCII值(33,x1b),标志此为控制命令,此时终端不会把后续当字符串解释,shell下可用e标识。
    2、CSI转义序列:
      控制输出样式,颜色、光标、下划线等
      CSI转义序列由 [CSI序列;结束符 组成。
      CSI序列包括:< PREFIX>;< COLOR>;< TEXT DECORATION> 三部分组成,分别为:
      前缀;颜色;文本修饰器
      文本修饰器:加粗 1,下划线 4,闪烁 5 前缀:颜色模式 16色,256色
      颜色: 31-37 字体颜色、41-47 背景颜色

    颜色代码:
      0:黑色,1:红色,2:绿色,3:黄色,4:深蓝色,5:紫色,6:浅蓝色,7:白色
      上述代码+30为字体颜色,代码+40为背景颜色;
    例如:
      [33;1m:
    表示:黄色;下划线
    3、结束符: m
      结束符号m: 控制字符结尾,[0m :没有特殊参数的CSI序列,通知终端恢复正常,0m 关闭所有属性;
    示例:
      echo -e "x1b[33;1m字体x1b[0m"
    终端输出的字符为:黄色加粗字体

    在Golang中的使用:

     func main() {
       fmt.Printf("%c[33;1m黄色字体加粗%c[0m
    ", 0x1B, 0x1B)
       fmt.Printf("%c[33;4m黄色字体下划线%c[0m
    ", 0x1B, 0x1B)
       fmt.Printf("%c[42;30;1m绿色背景黑色字体下划线%c[0m
    ", 0x1B, 0x1B)
     }
    

    程序输出如图所示:

  • 相关阅读:
    并发容器梳理
    CAS总结
    原子类总结and-Git提交出现error: src refspec master does not match any的问题
    简单工厂模式小结
    JVM学习与问题总结——java内存区域与内存溢出异常
    反射机制学习记录
    观察者模式
    IDEA的一些常用设置
    建造者模式
    【[AH2017/HNOI2017]礼物】
  • 原文地址:https://www.cnblogs.com/softlin/p/15140919.html
Copyright © 2011-2022 走看看