gpt4 book ai didi

terminal - ANSI 转义序列 : save and restore a row position

转载 作者:行者123 更新时间:2023-12-01 01:26:33 25 4
gpt4 key购买 nike

我正在编写一个非常简单的小控制台应用程序,我正在玩一些 ANSI escape sequences以获得更好的输出。

我正在尝试做的是这样的事情。有一个带有名称的标题,然后在程序运行时在下面打印几行。打印每一行时,我想用进度表更新标题行。例如:

My header row                 [ 0/5 ]
-------------------------------------

然后经过一些处理
My header row                 [ 1/5 ]
-------------------------------------
here is some output

...
My header row                 [ 2/5 ]
-------------------------------------
here is some output
the output could
be over several
lines

我已经尝试使用保存光标位置代码 (ESC + [s ),然后使用 ESC + [u 恢复该位置,但是这只会恢复 栏目 ,不是行。

对于某些背景,这是一个 Node.JS 程序。我看过 node-ncurses简单地说,但是对于这项任务来说似乎有点矫枉过正(?)

最佳答案

当您在屏幕的最后一行打印并且必须向下滚动时,就会出现这个问题。文本滚动不会更新保存的光标位置。您需要检测发生了一些滚动(我不知道如何)并采取相应的操作,例如发送序列在 Esc[u 序列之后向上移动光标以转到原始位置。

再见。-

关于terminal - ANSI 转义序列 : save and restore a row position,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com