腻子和屏幕和回滚缓冲区

当我在putty会话中使用屏幕时,似乎无法使用putty的回滚缓冲区来查看只是滚动屏幕的内容。 相反,我只是在运行屏幕之前看到腻子会话中发生了什么。

我在这里错过了什么? 我喜欢能够回滚,而且我不想使用屏幕function来查看过去的缓冲区; 我的鼠标上的滚轮没有钩入屏幕,我不指望它会。

谢谢!

你也可以看看屏幕常见问题,它允许一种混合行为:

总结:将该行添加到.screenrc文件中:

termcapinfo xterm ti @:te @

参考( 腻子FAQ )

PuTTY的terminal仿真器总是有这样的策略:当使用“备用屏幕”时,没有任何东西被添加到回滚中。 这是因为通常使用替代屏幕的程序类似于文本编辑器,它们往往在同一个文档中来回滚动; 所以(a)他们会用大量无益的文本填满回滚,(b)他们自己的方法让用户回滚到他们感兴趣的位置。我们一般认为这个政策是做的几乎所有情况下都是正确的。

不幸的是,屏幕是一个例外:它使用备用屏幕,但通常PuTTY的回滚仍然有效。 最简单的解决scheme是去function控制面板,并勾选“禁用切换到备用terminal屏幕”。 (更多细节,请参阅第4.6.4节。)或者,您可以告诉屏幕本身不要使用替代屏幕:屏幕FAQbuild议将'termcapinfo xterm ti @:te @'行添加到.screenrc文件。

要回滚,请按^ACtrl-A ,或者如果您重新映射了屏幕控制顺序),然​​后Esc 。 这将使您可以上下移动光标。 PgUp / PgDn将让你在屏幕上下滚动。

原因是屏幕处理回滚缓冲区的方式。 屏幕总是绘制全文区域,并且拥有自己的后台缓冲区,您必须使用屏幕进行控制。 这类似于使用像vi或joe这样的程序来占用整个文本区域并提供自己的缓冲区:在terminal模拟器中滚动只是给了垃圾,但是在这些程序中滚动会产生预期的结果。

这是因为屏幕的工作原理。 屏幕会对整个文本区域进行dynamic更新,而不是在屏幕的底部按新行,然后将顶部行压入回滚区域。 当一个新行出现时,它会重画整个屏幕,从而防止更多的数据进入回滚。 不使用屏幕时,“less”存在同样的问题。

屏幕腻子回滚在Solaris 10自动工作。它似乎在做KnipSter默认说的,即使我没有.screenrc文件。 这种方法的问题是,如果你分离并重新连接,那么在Putty中没有回滚缓冲区,你必须使用Scagnelli所描述的使用Screen的回滚。