我正在解释串行端口的一些输出。输出采用VT100 协议。VT100 终端协议使用一些控制字符序列来设置光标在屏幕上的位置。控制序列如下所示:
ESC[行;列H
例如,
ESC[01;01H 表示将光标设置到第 1 行第 1 列。
但是当列号超过 2 位数字时,我会看到以下序列。
ESC[10;:0H
请注意分号后的额外“ : ”。此控制序列出现在 之后ESC[10;99H
,即第 10 行第 99 列。
我的理解是:0
= 100
。但是如果列号是 200 呢?
我正在解释串行端口的一些输出。输出采用VT100 协议。VT100 终端协议使用一些控制字符序列来设置光标在屏幕上的位置。控制序列如下所示:
ESC[行;列H
例如,
ESC[01;01H 表示将光标设置到第 1 行第 1 列。
但是当列号超过 2 位数字时,我会看到以下序列。
ESC[10;:0H
请注意分号后的额外“ : ”。此控制序列出现在 之后ESC[10;99H
,即第 10 行第 99 列。
我的理解是:0
= 100
。但是如果列号是 200 呢?
不,相关标准没有规定位数限制为2,例如因为 VT100 可以寻址 24 行 x 132 列。
参数中的前导零被忽略。很可能,OP 正在报告仅使用两位数的问题(来自一些未提及的程序)。这与终端本身无关(可能在针对终端模拟器开发人员的错误报告的上下文中除外)。
调整大小程序假定一个终端不大于 999 x 999 以将光标定位到“过去”屏幕的右下角。对于那些不依赖多个像素来识别字符的人,xterm 确实使用了一种称为“不可读”的字体,这可能会导致更大的屏幕。