这意味着终端正在使用备用屏幕缓冲区。有一个主屏幕,它滚动到回滚日志中,而另一个屏幕则没有。默认情况下,诸如top,less,emacs,vim和screen之类的“全屏”或“面向屏幕”程序会将终端切换到备用屏幕。
每个屏幕都有其自己的内容和状态。有了备用屏幕,程序可以接管整个显示,然后在退出时恢复原来的内容,方法是切换回主屏幕。
从Mac OS X Lion 10.7开始,终端提供了一个菜单项,您可以用来手动切换屏幕:
查看>显示/隐藏备用屏幕
主要是为了提供此功能,以便您可以在退出“全屏”程序后从备用屏幕查看或复制文本。Xterm具有类似的命令。
您还可以使用它来手动强制程序使用特定屏幕,例如,控制输出是否进入回滚日志。但是,如果您当前正在使用一个显式切换到备用屏幕的程序,则在程序运行时将其强行切换到主屏幕时,可能会造成混淆或获得意外结果,因此请谨慎使用。
根据程序的不同,它可能具有命令行参数或其他某种方式来配置它以使用主屏幕。例如less -X
。
一些terminfo条目经过专门设计以禁止使用备用屏幕,例如xterm1
。TERM=xterm1 emacs
将在主屏幕上运行Emacs。我不建议xterm1
永久使用,因为与xterm-256color
Lion 的默认功能相比,它会禁用许多其他有用的功能。
您还可以使用tput
命令切换屏幕,以从shell或脚本内部发出转义序列。tput smcup
切换到备用屏幕,然后tput rmcup
切换回主屏幕。
要查看当前正在运行的程序,请查看“终端”窗口或选项卡标题中显示的程序名称,或查看“检查器”窗口(Shell> Show Inspector)。检查器列表中的最后一个过程(通常)是使用屏幕的当前程序。那就是您需要配置以使用主屏幕的那个。