是否有一个ANSI控制序列将光标移动到行尾?

时间:2018-11-05 22:03:20

标签: ansi-escape

我知道\33[nC会将光标n的列向前移动;问题是,我不知道特定行包含多少个字符。

3 个答案:

答案 0 :(得分:1)

没有任何显式,但是屏幕是“小”的,您可以使用任何光标移动命令将其移动到任意远的目的地,并且终端将通过屏幕的移动来限制移动大小。

例如,光标向前(在terminfo中, cuf )控件使用重复计数和水平位置绝对值(在terminfo中, hpa)控件使用列值。这些都应该为您工作:

tput cuf 999
tput hpa 999

(假设您的屏幕少于一千列)。在您的终端(仿真器...)中可能还有其他实现,但是这些相当普遍。

顺便说一句,对于硬编码, cuf 与问题中的示例相同。那是 ,而不是被移动的 。要按 来移动光标,可以使用 cud escape> [ n B )。

答案 1 :(得分:0)

不,没有这样的ANSI控制序列。

答案 2 :(得分:0)

如果有人遇到类似的问题,我设法通过在程序中获取其值并使用字符串内插,来明确了解n中的\33[nC的必要性>将变量n的值放入包含上述转义序列的字符串中。

这不是通用解决方案,因为在某些情况下n很难确定。