如何在 less 或 man 等终端中获取命令的叠加输出?

How to get an overlay output for a command in terminal like less or man?

一些 linux 命令,如 lessman 在当前终端中显示它们的输出,占据整个屏幕。但是一旦程序退出,之前的交互就会重新出现。

我们如何才能为我们的自定义程序实现相同的行为?

谢谢。

实际上,less可比较的 程序使用 termcap 接口可以由各种图书馆提供。问题的重点是如何恢复 "previous interactions" 。这是 xterm 和其他程序的一个功能,称为 alternate screen,通常通过终端 capabilities 用于开始和结束 游标寻址 模式。该功能完全依赖于终端(ncurses 仅提供信息)。

延伸阅读: