腻子,屏幕和回滚缓冲区


38

当我在腻子会话中使用屏幕时,我似乎无法使用腻子的回滚缓冲区来查看刚从屏幕上滚动出来的内容。取而代之的是,我只是在运行屏幕之前看到油灰会话中发生了什么。

我在这里想念什么?我喜欢能够向后滚动,并且我不想使用屏幕功能来查看过去的缓冲区。鼠标上的滚轮没有钩子进入屏幕,而且我也希望不会。

谢谢!

Answers:


40

您还可以查看“屏幕常见问题解答”,它允许一种混合行为:

摘要:将行添加到您的.screenrc文件中:

termcapinfo xterm ti @:te @

参考(腻子常见问题解答

PuTTY的终端仿真器始终具有以下策略:当使用“备用屏幕”时,不会向回滚添加任何内容。这是因为使用备用屏幕的常用程序是诸如文本编辑器之类的程序,它们经常在同一文档中来回滚动。因此(a)他们将用大量无助的无序文本填充回滚,并且(b)他们包含了供用户滚动回他们感兴趣的位的自己的方法。我们通常发现该政策可以做到在几乎所有情况下都是正确的事情。

不幸的是,屏幕是一个例外:它使用备用屏幕,但是让PuTTY的回滚继续工作通常还是有帮助的。最简单的解决方案是转到“功能”控制面板,然后选中“禁用切换到备用终端屏幕”。(有关更多详细信息,请参见第4.6.4节。)或者,您可以告诉屏幕本身不要使用备用屏幕:屏幕常见问题解答建议在您的.screenrc文件中添加'termcapinfo xterm ti @:te @'行。


一套更好的解决方案。
Zanchey

16

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

这样做的原因是屏幕处理回滚缓冲区的方式。屏幕始终绘制整个文本区域,并具有必须使用屏幕控制的自己的后缓冲区。这类似于使用vi或joe之类的程序,它们占用了整个文本区域并提供了自己的缓冲区:在终端仿真器中向上滚动只会产生垃圾,而在这些程序内部向上滚动则会产生预期的结果。


所以唯一的办法我可以使用滚轮对我的鼠标(好吧,我懒惰!)是,如果我重新映射它以某种方式发送[屏退出键],然后ESC键,然后向上和向下?gh,这工作太多了……
克里斯

@chris:如果您正在使用腻子,则应该已经将手放在键盘上。如果您有笔记本电脑,请尝试查看是否可以将一些不常用的键重新映射到PgUp / PgDn。
Andrew Scagnelli 09年

很多时候,您正在查看腻子中的长命令输出,并且使用滚轮来回滚动比使用键盘更方便。
Elazar Leibovich

2

那是因为屏幕是如何工作的。屏幕会动态更新整个文本区域,而不是在屏幕底部压入新行,而这又会将顶部压入回滚区域。当出现新行时,它将重新绘制整个屏幕,以防止更多数据回滚。不使用屏幕时,“少”也存在相同的问题。


我不能说我从来没有注意到更少的东西,但这可能是因为我一直都在屏幕之内。感谢您提供方式和原因的详细信息!
克里斯,2009年

1

具有Putty回滚功能的Screen在Solaris 10中自动运行。即使我没有.screenrc文件,默认情况下它似乎也按照KnipSter的说明进行操作。这种方法的问题在于,如果分离并重新连接,则腻子中没有回滚缓冲区,您必须诉诸使用Scagnelli描述的Screen的回滚。


这几天屏幕随附solaris 10吗?是太阳按摩版还是从牛油中得到的任何东西?在这种特定情况下以这种方式工作非常有趣。谢谢(你的)信息!
克里斯,克里斯,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.