了解CUB ansi转义序列

时间:2015-03-11 19:11:09

标签: terminal ansi-escape

我不明白为什么有时CUB序列可以继续通过前一行,有时候不允许。文件告诉它不是,但在实际情况...... http://vt100.net/docs/vt100-ug/chapter3.html#CUB

例如,我的屏幕上有80列和24行的空格。

我位于第4列的第3行,可以使用转义序列设置:\ 033 [3; 4H

我用序列\ 033 [10D]将光标向左移动10次 这将使我处于位置:第2行第76列

所以它有效吗?!! 有时它不会

请救救我! :)

我可以减少情况,但这是我看到的地方:

我正在写一个vt *模拟器,并且正常工作正常。我可以启动emacs / vim和其他人,但后来我使用“script”命令在putty中启动vttest来记录每个键入的字符和序列。像这样:

# script test
Script started, file is test
# vttest
...

当我在腻子中做“猫测试”时,它像我一样重播每一件事。当我用我的模拟器播放时,我能够解析并分析它们提供的每个转义序列,但显示不一样。

1 个答案:

答案 0 :(得分:0)

VT100.net上的措辞非常明确:

If an attempt is made to move the cursor to the left of the left margin,
the cursor stops at the left margin.

recent discussion中,有人指出PuTTY尊重(非VT100)功能bw,该功能引用了ncurses' terminfo手册:

   auto_left_margin              bw         bw        cub1 wraps from col‐
                                                      umn 0 to last column 

正如您所见,PuTTY在边缘包装的行为与VT100不同。 ncurses有一个名为" putty"的终端条目,原因很简单,因为PuTTY与所有其他终端的区别在于足以使用麻烦。

相关问题