我正在为jQuery Terminal开发ANSI格式代码。它几乎可以正常工作,但我有一个问题,它与应该移动光标的0A ansi代码有关(还有其他0光标代码:BCDEF)
我已经用ervy库进行了测试,如果\x1b\[0[A-D]
在输出到终端之前从字符串中删除,它会有所不同。
我不确定如果我正确地处理了ANSI转义,我会在每行增加y位置并将x设置为0之前将输出分成几行,当有光标ANSI转义代码时,我将移动光标。我正在使用数组数组来保存屏幕的输出。(不确定,但是我认为如果直到最后才将这些行连接到一个字符串中会更快,但是我之所以这样创建是因为这不是出于速度而是第一个想法)。
我不确定是否应设置为0。
这是来自ervy库的两个图的输出
正确的情节
没有零代码的情节。
我正在尝试调试我的代码(我认为在某一点上该图在第二个屏幕上显示),但是我不知道如何处理0个ANSI转义代码。
我使用维基百科作为参考。
考虑到ZDM(零默认模式),在DEC VT中看到的行为更容易理解。从ECMA-48:
参数值0表示默认参数值,该值可能与0不同。
对于光标移动序列,规范将默认值定义为“ 1”,因此在ZDM中它们都相等:
CSI A
(省略的参数默认为1)CSI 0 A
(0具有默认值的特殊含义)CSI 1 A
(参数恰好是默认值)据我所知,在DEC设备中实现的所有CSI序列都遵循ZDM方案。
后来ZDM从规格中删除,因此“ 0”现在应该读作数字,而不再是默认值的特殊占位符。但是DEC设备没有切换该行为。因此,可以归结为一个问题,即VT100 +兼容的仿真器是否完全符合规格。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句