代码之家  ›  专栏  ›  技术社区  ›  Beefster

为什么ANSI颜色转义以“m”而不是“]”结尾?

  •  2
  • Beefster  · 技术社区  · 6 年前

    ANSI端子颜色转义可以通过 \033[...m 在大多数编程语言中。(您可能需要执行以下操作 \e \x1b 在某些语言中)

    我一直觉得奇怪的是他们是怎么开始的 \033[ ,但最终 m 这有什么历史原因吗(也许 ] 已映射到现在由占用的插槽 m级 在ASCII表中?)还是一个任意的角色选择?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Thomas Dickey    6 年前

    它不是完全武断的,但遵循委员会制定的计划,并记录在 ECMA-48 (与ISO 6429相同)。除了首字母 逃跑 字符,后续字符由范围指定。

    而这对 逃跑 [ 被广泛使用(这被称为控制序列导入器 CSI公司 ),还有其他控制序列(例如 逃跑 ] 这个 操作系统命令 OSC公司 )。这些序列可能有参数,并且 最终字节

    在问题中,使用 CSI公司 这个 m 是一个 最终字节 ,它正好告诉终端序列应该做什么。参数(如果给定)是一个数字列表。另一方面 OSC公司 ,命令类型位于开头,参数约束较少(它们可能是任何可打印字符字符串)。