我想使用 ncurses 在当前终端上创建覆盖。通过查看 C 示例,有一个cur_scr
变量包含当前屏幕的数据,我假设我可以使用它来清除屏幕,以创建覆盖终端的 ncurses 外观。
我想用似乎有问题的 ruby ncurses 来做到这一点,因为我不知道如何cur_scr
从 ruby 访问变量。
我怎样才能做到这一点?
恐怕这是不可能的。
当你启动 ncurses 时,它无法知道屏幕当前包含什么,所以它做的第一件事就是清除屏幕。一旦屏幕被清除,ncurses 确实知道屏幕的状态,因此它可以覆盖内容,但它通过始终在内存中保持屏幕的完整状态来做到这一点。(请参阅ncurses 等人如何工作?)
一些终端能够保存屏幕内容,并在 ncurses 应用程序结束时重新显示,但这不是 ncurses 的功能,而是终端的功能。