他们如何实施这个恢复过程?
他们没有。实施不是他们的。
这就是所谓的交替屏幕缓冲区被切入和切出。它是在终端(或终端模拟器程序)本身中实现的。终端响应由此类 TUI 程序发出的控制序列。该TUI程序控制时发生这种情况,但执行什么情况是完全在终端内。事实上,TUI 程序甚至没有相同的正在发生的事情模型。对他们来说,他们正在切换“光标寻址模式”。
并非所有终端和终端仿真程序甚至都有备用屏幕缓冲区。例如:内置于 Linux 和 BSD 内核中的终端仿真程序提供其内核虚拟终端通常不具备此功能。
在这样的终端上,没有控制序列。因此,终端类型的 termcap/terminfo 数据库记录将没有这样的控制序列;切换“光标寻址模式”会覆盖当前屏幕内容,无需保存和恢复。
vim、nano 和诸如此类的东西对此一无所知。他们没有做任何不同的事情。它们不是执行功能的东西。它们只是发出 termcap/terminfo 告诉它们将进入和退出“光标寻址模式”的控制序列。对于某些具有该机制的终端,“光标寻址模式”也意味着使用备用屏幕缓冲区。对于一些没有,它没有。