预期行为:
输出的速度ls /*
非常快。
实际行为:
$ time ls /*
...
real 0m21.003s
user 0m0.082s
sys 0m0.095s
此命令需要 21 秒才能完成。线条缓慢滚动。有什么不对劲。我正在运行这个,screen
其中正在运行xterm
。我尝试对其进行故障排除,但尚未弄清楚发生了什么。却发现了一些奇怪的东西……
解决方法:
无论出于何种原因,执行我编写的这个脚本都会使其按预期工作:http://sprunge.us/zdvZEO
$ fastout
...
$ time ls /*
...
real 0m1.375s
user 0m0.116s
sys 0m0.116s
通过弄乱一些 TERMCAP 文件(不记得是哪些文件)偶然发现了这一点,并注意到当我将cat
文件(的一部分)发送到终端时问题就消失了。您认为可能会发生什么情况?我如何在不依赖解决方法的情况下正确解决此问题?
编辑1:
使用默认设置进行了测试urxvt
,并附加了相同的screen
会话:
$ time ls /*
...
real 0m0.281s
user 0m0.051s
sys 0m0.080s
xterm
由此看来,问题与其设置有关。
编辑2:
为了确保不是我的任何自定义xterm
设置执行此操作,我尝试过:
$ xrdb -remove
$ /bin/xterm
相同的结果。
也许xterm
这不是问题,这只是 gnuscreen
对被运行的反应xterm
?
还不确定,但尽管已经习惯了xterm
很多年,我可能会切换到urxvt
除了在我的设置上没有这个问题之外 - 还允许我进行块选择。
编辑3:
发现如果我在 .screenrc 中更改
hardstatus alwaysfirstline
为 , 则运行时hardstatus alwayslastline
问题就会消失(输出按预期进行)。在这两种设置下都可以正常工作。我可以更改该设置并坚持使用,但我希望该栏位于顶部。xterm
screen
urxvt
xterm