向终端应用程序添加页面

向终端应用程序添加页面

我可以用一个例子来解释我的问题,让我们举一个命令的例子 man,当我们在终端中运行这个命令时,它会在新窗口中打开页面,你无法看到你之前在终端中所做的事情。如何做到这一点?

我正在开发一个终端应用程序,我希望它以类似的方式工作,当我输入应用程序名称时,它应该在新页面上打开。

编辑:Vim 的示例,当我们vim在终端中键入时打开 vim,它的界面会显示在屏幕上。我怎样才能用我正在制作的应用程序做到这一点。

答案1

您所询问的称为备用屏幕缓冲区,应用程序通过向终端发送 ESC 代码来切换到或从备用屏幕切换。

如果您的应用程序使用 ncurses 库,则会有函数来执行此操作。如果您想从 shell 脚本执行此操作,可以使用tput发送适当的代码。

tput smcup  # switch to alt screen

tput rmcup  # switch back from alt screen

注意:大多数(但不是全部)终端仿真器都支持此功能。那些没有(或者禁用了它,这是某些终端仿真器中的一个选项)的人只是忽略这些代码。

相关内容