ANSI ESCAPE个人笔记

2018-04-10  本文已影响0人  X_Mingest

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

上一篇下一篇

猜你喜欢

热点阅读