如何在 less 或 man 等终端中获取命令的叠加输出?
How to get an overlay output for a command in terminal like less or man?
一些 linux 命令,如 less
或 man
在当前终端中显示它们的输出,占据整个屏幕。但是一旦程序退出,之前的交互就会重新出现。
我们如何才能为我们的自定义程序实现相同的行为?
谢谢。
实际上,less
和 可比较的 程序使用 termcap 接口可以由各种图书馆提供。问题的重点是如何恢复 "previous interactions" 。这是 xterm 和其他程序的一个功能,称为 alternate screen,通常通过终端 capabilities 用于开始和结束 游标寻址 模式。该功能完全依赖于终端(ncurses 仅提供信息)。
延伸阅读:
- Why doesn't the screen clear when running vi?(xterm 常见问题解答)
- Types of library users(ncurses 常见问题解答)
一些 linux 命令,如 less
或 man
在当前终端中显示它们的输出,占据整个屏幕。但是一旦程序退出,之前的交互就会重新出现。
我们如何才能为我们的自定义程序实现相同的行为?
谢谢。
实际上,less
和 可比较的 程序使用 termcap 接口可以由各种图书馆提供。问题的重点是如何恢复 "previous interactions" 。这是 xterm 和其他程序的一个功能,称为 alternate screen,通常通过终端 capabilities 用于开始和结束 游标寻址 模式。该功能完全依赖于终端(ncurses 仅提供信息)。
延伸阅读:
- Why doesn't the screen clear when running vi?(xterm 常见问题解答)
- Types of library users(ncurses 常见问题解答)