【发布时间】:2017-09-13 01:16:49
【问题描述】:
一些像less或man这样的linux命令在当前终端显示它们的输出,占据整个屏幕。但是一旦程序退出,之前的交互就会重新出现。
我们如何才能为我们的自定义程序实现相同的行为?
谢谢。
【问题讨论】:
-
使用stackoverflow.com/a/11024208/1897481 中提到的
tput轻松工作
一些像less或man这样的linux命令在当前终端显示它们的输出,占据整个屏幕。但是一旦程序退出,之前的交互就会重新出现。
我们如何才能为我们的自定义程序实现相同的行为?
谢谢。
【问题讨论】:
tput 轻松工作
实际上,less 和 comparable 程序使用了一个 termcap 接口,该接口可由各种库提供。问题的重点是如何恢复“以前的交互”。这是 xterm 和其他称为 alternate screen 程序的功能,通常通过终端 capabilities 用于开始和结束 cursor-addressing模式。该功能完全依赖于终端(ncurses 仅提供信息)。
进一步阅读:
【讨论】:
tput 我能够让它工作。