我知道\33[nC
会将光标n
的列向前移动;问题是,我不知道特定行包含多少个字符。
答案 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
很难确定。