ANSI ESCAPE个人笔记

ESC(\033)

CSI sequences(\033[)

SGR – Select Graphic Rendition(\033[ n m)

0 重置所有参数
1 粗体
3 斜体
4 下划线
7 反相,即背景与字体颜色交换
\33[1;3;4;7m Hello World \33[0m
0 重置所有参数
21 双下划线
31 红,30-39|90-97为字体颜色,其中90-97为aixterm中的亮色
47 绿,40-49|100-107为背景颜色,其中100-107同上
\33[21;31;47m Hello World \33[0m

特别的,其中的38与48可以后接参数以设定颜色

  1. 38|48;5;n,其中n的值为0-255,0-7与30-37的颜色一致,8-15与aixterm中的90-97一致,16-231为6x6x6色值,即r * 36 + g * 6 + b + 16,232-255为黑色至白色的24分色
for (my $i = 0; $i < 255; $i++)
{
    $i % 16 == 0 and
    print(qq(\n));
    print(qq( \33[48;5;${i}m \33[49m));
}   print(qq(\n));
__END__
\33[48;5;0-255m \33[0m
  1. 38|48;2;r;g;b,常见的rgb色彩设定
\33[1;3;38;2;148;0;211;48;2;255;250;250m Hello World \33[0m
0 重置所有参数
53 上划线
\33[1;3mHello \33[4;38;2;148;0;211;53mX_Mingset\33[0m

光标控制

sub OvO{while(my $str = shift(@_)){print(
    qq(\33[1;4;38;5;129;47;53m\33[$str\33[0m\n)); }
1; }OvO(
    qq(9C^             ),
    qq(8C/ \\          ),
    qq(3C) . (q(-) x 13),
    qq(4C\\ /\33[5C\\ /),
    qq(5Cx\33[7Cx      ),
    qq(4C/ \\\33[5C/ \\),
    qq(3C) . (q(-) x 13),
    qq(8C\\ /          ),
    qq(9Cv             )); 1;
__END__
神经病程序的输出
\33[ + 效果
nA
nB
nC
nD
光标向上n行
光标向下n行
光标向右n列
光标向左n列
n;mH
n;mf
光标定位至n行m列,默认1;1H,即
\33[H = \33[1H = \33[;1H = \33[1;1H
nJ 清屏
n = 0(默认,光标至屏末)
n = 1(光标至屏首)
n = 2(全屏,光标置于左上,测试时没动来着
n = 3(已滚的屏的缓存)
nK 清行
n = 0(默认,光标至行末)
n = 1(光标至行首)
n = 2(整行,光标位置不动)

详见ANSI ESC WIKI

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 英文模式下的命令 代码功能 CR回车 ESC !设置打印方式 ESC %选择或取消用户自定义字符集 ESC &定义...
    NemoWei阅读 8,633评论 0 1
  • 编译标签方式 例如: 在源码头部放置条件编译标签,将限制文件仅能在BSD系统进行编译 当一个文件有多个编译标签,总...
    杀破魂阅读 2,507评论 0 1
  • 想了好长时间,其实异地恋很简单,就是锻炼心性,比别人更懂得成长,比别人更懂得珍惜,更比别人懂得面对。多少人打着...
    简瑟阅读 596评论 3 6
  • 文/林沫花 (本故事纯属虚构) 1 初见虞时,虞正值豆蔻年华。宴会之上,一舞倾城,入了项羽的眼。 在虞眼中,正席之...
    鱼利阅读 481评论 2 2
  • 翻译自:Understanding Scopes 摘要 在AngularJS中,子作用域通常会原型继承于其父作用域...
    paradisefj阅读 1,028评论 0 5