Tho*_*key 11
关于@Keith Thompson的答案- 不完全是:
smcup和rmcup自动.相反,它是一个termcap应用程序.它遵循大多数(并非所有)termcap应用程序使用的约定.有一些实现vi不是(例如,在IRIX64上).smcup是set-mode-cursor-positioning或开始光标定位模式的(模糊)缩写.(还有光标寻址).的r在rmcup装置"复位"(和m表示"模式").set/reset与save/restore有不同的含义; 对于后者,用户被认为可以堆积价值.Kei*_*son 10
大多数终端仿真器都能够保存和恢复屏幕内容.
对此的terminfo代码是smcup进入全屏模式并rmcup离开它.(较旧的termcap代码是ti和te.)
如果在terminfo数据库中启用了这些功能,则使用的任何程序都ncurses将smcup在条目上打印字符串,并rmcup在退出时打印字符串.
在我正在使用的系统上,字符串是(\E代表Escape字符):
smcup: \E7\E[?1;47h
rmcup: \E[2J\E[?1;47l\E8
Run Code Online (Sandbox Code Playgroud)
这将恢复屏幕的先前内容以及光标位置.
该序列(xterm中)的具体含义记录在这里:
\E7 保存光标\E[?1;47h应用程序游标键; 使用备用屏幕缓冲区\E[2J 擦除屏幕\E[?1;47l应用程序游标键; 使用普通屏幕缓冲区\E8 恢复光标(这假设我正确理解分号的使用;我不是百分之百确定.)