ESC发送\x1b
. 那是1 个字节:实际的转义字符。
Page Up发送\x1b[H
. 那是3 个字节。
F2发送\x1b[OQ
. 那是4 个字节。
F5发送\x1b[15~
. 那是5 个字节。
其中之一的最大长度是多少?这是在某处记录的吗?
控制序列的长度没有预定义的限制。OP 给出了一些由特殊键发送的字符串作为示例,这些字符串记录在XTerm 控制序列中。
xterm 以可能的键代码列表开头,可以添加修饰符代码,如Alt 和 Meta 键部分所述。没有长度表。这样做的一个复杂问题是,有几个资源设置可以协同工作以进行数千种可能的键盘排列。xterm 终端描述不是描述所有这些,而是作为一组 terminfo 构建块(带有“+”的名称)呈现,包括用户定义的修改键(例如control,shift, 等)的功能。
其他一些终端实现了 xterm 方案,但仅适用于特定组合。所以这些会更容易列举。它们在某种意义上是“预定义的”。
然而,特殊键并不是唯一的控制序列类型。每个使用 ECMA-48 格式的终端都接受主机发送的控制序列。一般来说,它们接受数字或字符串参数:
同样,其他终端仿真器可能会对它们接受的控制序列的长度使用它们自己的限制。