我基本上想操纵连接到终端的某些程序的输出,以便文本的底部始终是任意文本块(我们称之为页脚),而程序的正常输出显示在其上方。如果此页脚仅限于单个终端行,则只需清除当前行,在每次write
调用之前将光标移动到行首,然后重写页脚,就可以很容易地做到这一点。但是,如果我想要的页脚跨越多个终端行,无论是通过包含换行符还是通过环绕屏幕边缘的行,事情都会变得复杂。我想我可以使用“保存光标”和“恢复光标”VT100 控制代码来解决这个问题,每次写入都会发出这些代码:
- 恢复光标
- 想要的
write
电话 - 保存光标
- 输出页脚
但是,当输出文本到达终端底部时,这些不起作用,因为保存的光标将始终位于底行。
有没有办法实现这个任意的终端页脚?只有 VT100 代码的东西是理想的,但如果唯一的方法是使用诅咒,那么我想这也是可能的。