Answers:
您还可以查看“屏幕常见问题解答”,它允许一种混合行为:
摘要:将行添加到您的.screenrc文件中:
termcapinfo xterm ti @:te @
参考(腻子常见问题解答)
PuTTY的终端仿真器始终具有以下策略:当使用“备用屏幕”时,不会向回滚添加任何内容。这是因为使用备用屏幕的常用程序是诸如文本编辑器之类的程序,它们经常在同一文档中来回滚动。因此(a)他们将用大量无助的无序文本填充回滚,并且(b)他们包含了供用户滚动回他们感兴趣的位的自己的方法。我们通常发现该政策可以做到在几乎所有情况下都是正确的事情。
不幸的是,屏幕是一个例外:它使用备用屏幕,但是让PuTTY的回滚继续工作通常还是有帮助的。最简单的解决方案是转到“功能”控制面板,然后选中“禁用切换到备用终端屏幕”。(有关更多详细信息,请参见第4.6.4节。)或者,您可以告诉屏幕本身不要使用备用屏幕:屏幕常见问题解答建议在您的.screenrc文件中添加'termcapinfo xterm ti @:te @'行。
要向后滚动,请按^A
(Ctrl-A
或,如果您重新映射,则按屏幕控制顺序的顺序),然后按Esc
。这将使您可以上下移动光标。 PgUp
/ PgDn
将使您在屏幕内上下滚动。
这样做的原因是屏幕处理回滚缓冲区的方式。屏幕始终绘制整个文本区域,并具有必须使用屏幕控制的自己的后缓冲区。这类似于使用vi或joe之类的程序,它们占用了整个文本区域并提供了自己的缓冲区:在终端仿真器中向上滚动只会产生垃圾,而在这些程序内部向上滚动则会产生预期的结果。
那是因为屏幕是如何工作的。屏幕会动态更新整个文本区域,而不是在屏幕底部压入新行,而这又会将顶部压入回滚区域。当出现新行时,它将重新绘制整个屏幕,以防止更多数据回滚。不使用屏幕时,“少”也存在相同的问题。
具有Putty回滚功能的Screen在Solaris 10中自动运行。即使我没有.screenrc文件,默认情况下它似乎也按照KnipSter的说明进行操作。这种方法的问题在于,如果分离并重新连接,则腻子中没有回滚缓冲区,您必须诉诸使用Scagnelli描述的Screen的回滚。