ANSI转义0x1b [0A和其他0值代码应该做什么?

立方的

我正在为jQuery Terminal开发ANSI格式代码。它几乎可以正常工作,但我有一个问题,它与应该移动光标的0A ansi代码有关(还有其他0光标代码:BCDEF)

我已经用ervy库进行了测试,如果\x1b\[0[A-D]在输出到终端之前从字符串中删除,它会有所不同

我不确定如果我正确地处理了ANSI转义,我会在每行增加y位置并将x设置为0之前将输出分成几行,当有光标ANSI转义代码时,我将移动光标。我正在使用数组数组来保存屏幕的输出。(不确定,但是我认为如果直到最后才将这些行连接到一个字符串中会更快,但是我之所以这样创建是因为这不是出于速度而是第一个想法)。

我不确定是否应设置为0。

这是来自ervy库的两个图的输出

在此处输入图片说明

正确的情节

在此处输入图片说明

没有零代码的情节。

我正在尝试调试我的代码(我认为在某一点上该图在第二个屏幕上显示),但是我不知道如何处理0个ANSI转义代码。

我使用维基百科作为参考。

jerch

考虑到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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将0x1b 0x31之类的十六进制发送到delphi中的com端口

"\0" 转义和 xargs 0n1 在这里做什么?

什么是aw | 用grep和-sort剪切-d“” -f 1-应该做什么?

\ u001B] 0; kuba @ jcubic:〜\ u0007转义代码是做什么的?

该代码块在做什么?(u> 0)-(u <0)

为什么不解析值0却解析其他数字?

什么是tput sgr0的ANSI转义等同物?

我的索引[0]和[1]引用相同的值,熊猫在这里做什么?

杀--0做什么?

代码中的 X[y==0,1] 操作是做什么的?

shape [0]和shape [1]在python中做什么?

在NODE.JS中,换行代码(%0A)将解码回什么字符?

可以比较返回-1、0和1以外的其他值吗?

如果 board [i][j]==0 的代码行是做什么的?

0xaa和0x55在做什么?

OR 0x80是做什么的?

kill -0是做什么的?

为什么 x^(-1/0) = 0

Google表格:过滤器/查询/其他从行和列中省略“0”值

代码`np.transpose(image_tensor,(2,1,0))``的行是做什么的?

为什么hexdump在python输出的开头显示0a?

@ firebase / app-types @ 0.x是做什么的,我什么时候应该使用它?

从串行连接中获取b'\ x08'b'\ x9e'b'\ x1d'或b'\ xe0'b'\ xe0'b'错误

孩子数0应该是5我在做什么错?

线程1:EXC_BAD_ACCESS(代码= 1,地址= 0x176b)

为什么此代码返回0和1?

创建具有随机0和1值的矩阵的代码

与MySQL等效的MongoDB:选择count(*)c,sum(if(x ='A',1,0))作为a,sum(if(x ='B',1,0))作为b

扑; 类 AMSupportURLConnectionDelegate 在两个 ?? (0x1eb0e27a0) 和 ?? (0x1162f02b8)