vi退出终端后如何恢复终端内容?

诸如vi或man的程序或任何其他程序如何用该程序自己的内容替换终端内容,然后在退出这些程序后将其带回旧的终端内容?

回答:

Vi切换到终端支持的备用屏幕缓冲区。这是通过使用转义序列来实现的。有关完整的详细信息,请参见此链接。

这些的termcap条目为“ ti”输入,而为“ te”退出全屏模式。

正如@Celada在下面指出的那样,对xterm转义序列进行硬编码不是一个好主意,因为该序列根据$ TERM而有所不同,例如:

xterm-颜色

ti:<Esc> 7 <Esc> [吗?47小时

te:<Esc> [2 J <Esc> [?4 7 l <Esc> 8

xterm-256color

ti:<Esc> [?1 0 4 9小时

te:<Esc> [?1 0 4 9升

另一方面,如今,xterm支持在非xterm终端中非常广泛。仅支持xterm不太可能引起问题,除非用户使用$

TERM设置异常或过时。资料来源:我支持执行此操作的产品。

以上是 vi退出终端后如何恢复终端内容? 的全部内容, 来源链接: utcz.com/qa/398520.html

回到顶部