标签: text scroll terminal window ncurses
我正在寻找关于使用ncurses在窗口或平板中滚动方法的明确答案。
我想显示一个stdout流,它快速填充屏幕上可用行的数量并开始溢出。使用stdio终端只需滚动内容。但据我所知,ncurses的输出仅限于屏幕区域。这完全准确吗?
通常的方法是将stdout的全部内容放入缓冲区,然后将缓冲区的特定部分读入ncurses窗口或填充区?还有哪些方法可以使用ncurses滚动文本?
答案 0 :(得分:2)
您可能忽略了scrollok:
scrollok
scrollok 选项可控制光标时发生的情况 一个窗口的窗口移出窗口边缘或 滚动区域,或者作为换行动作的结果 在底线,或键入的最后一个字符 最后一行。如果禁用,( bf 为FALSE),则保留光标 在底线。如果启用,( bf 为TRUE),则为窗口 向上滚动一行(请注意,以获得物理 在终端上滚动效果,也是必要的 致电 idlok )。
使用它,您可以写入任何窗口,并将其向上滚动 - 就像stdio一样。
进一步阅读:
答案 1 :(得分:0)
使用scrollok,例如:
scrollok(win, TRUE);