ANSI 转义码的标准

主要观点:介绍了 ANSI 转义码,包括其在终端中的作用、相关标准(如 ECMA-48、xterm 控制序列、terminfo 等)、程序处理转义码的不同方式(使用 terminfo 或硬编码常见集)、是否存在“单一通用转义码集”及使用 terminfo 的原因等,探讨了标准化 ANSI 转义码的意义及挑战。
关键信息:

  • ANSI 转义码用于终端的各种信息通信,有输入码和输出码。
  • ECMA-48 定义了转义码的格式和一些具体代码,但不全面。
  • xterm 控制序列中的一些代码在其他终端中广泛实现。
  • terminfo 是终端相关转义码的数据库,标准为 X/Open Curses。
  • 程序处理转义码有使用 terminfo 和硬编码常见集两种方式。
  • 不确定是否存在“单一通用转义码集”,缺乏相关资源。
  • 使用 terminfo 的原因包括用户对 TERM 环境变量的期望等。
    重要细节:
  • 如按下终端左箭头键显示为^[[D,其中ESC等是转义字符。
  • 常见的终端应用如 vim 等支持鼠标的转义码未在 ECMA-48 中定义。
  • 可通过特定 bash 代码查看系统中不同终端的“清屏”转义码。
  • 一些程序如 kakoune 等采取不使用 terminfo 的方式处理转义码。
  • 终端景观比网络更碎片化且资金支持更少。
  • 提到多个与转义码相关的文档和标准,如 Linux console_codes 等。
阅读 9
0 条评论