我终于学会了黑客帝国里的矩阵雨

bgBlue: () => ansi.color(44),

bgMagenta: () => ansi.color(45),

bgCyan: () => ansi.color(46),

bgWhite: () => ansi.color(47),

},

};

module.exports = ansi;

这里面 ansi 对象上的每一个方法不做过多解释了。我们看到,每个方法都是返回一个奇怪的字符串,通过这些字符串可以改变命令行的显示效果。

这些字符串其实是一个个控制字符组成的控制序列。那什么是控制字符呢?我们应该都知道 ASC 字符集,这个字符集里面除了定义了一些可见字符以外,还有很多不可见的字符,就是控制字符。这些控制字符可以控制打印机、命令行等设备的显示和动作。

有两个控制字符集,分别是 CO 字符集和 C1 字符集。C0 字符集是 0x00 到 0x1F 这两个十六进制数范围内的字符,而 C1 字符集是 0x80 到 0x9F 这两个十六进制数范围内的字符。C0 和 C1 字符集内的字符和对应的功能可以在[这里](()查到,我们不做详细描述了。

上面代码中,\x1b[ 其实是一个组合,\x1b 定义了 ESC 键,后跟 [ 表示这是一个[控制序列导入器(Control Sequence Introducer,CSI)](()。在 \x1b[ 后面的所有字符都会被命令行解析为控制字符。

常用的控制序列有这些:

| 序列 | 功能 |

| — | — |

| CSI n A | 向上移动 n(默认为 1) 个单元 |

| CSI n A | 向下移动 n(默认为 1) 个单元 |

| CSI n C | 向前移动 n(默认为 1) 个单元 |

| CSI n D | 向后移动 n(默认为 1) 个单元 |

| CSI n E | 将光标移动到 n(默认为 1) 行的下一行行首 |

| CSI n F | 将光标移动到 n(默认为 1) 行的前一行行首 |

| CSI n G | 将光标移动到当前行的第 n(默认为 1)列 |

|

CSI n ; m H

| 移动光标到指定位置,第 n 行,第 m 列。n 和 m 默认为 1,即 CSI ;5H 与 CSI 1;5H 等同。 |

| CSI n J | 清空屏幕。如果 n 为 0(或不指

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值