4

我在 cygwin 环境中配置 GNU 屏幕。实际上重新配置——它以前总是有效的,当我升级到 cygwin-64 时,相同的配置文件给了我意想不到的行为。

发生的情况是,每当我在终端中执行溢出全屏的操作时,终端都不会滚动。相反,每个新行都会“覆盖”窗口底行的最后一行。即使进程完成,如果我按 CTRL+l,终端的最后三行也会留下一堆垃圾。此外,当我使用占据整个屏幕的程序时,例如 vim 或 irssi,“标题”行会消失。

我怀疑我的 xterm 设置和屏幕的“术语”设置之间存在一些差异,但是我在这里有点不知所措,正如我所说,所有相同的配置文件都可以正常工作(并且在其他机器上都可以正常工作 - 两者cygwin 和本机 linux)。谁能推荐一种让我心爱的屏幕再次运行的方法?

这是我的.screenrc:

shell /bin/bash

screen -t bash 0

select 0

escape ^Zz # Instead of Control-a, make the escape/command character be Control-z

autodetach on # Autodetach session on hangup instead of terminating screen completely

startup_message off # Turn off the splash screen

defscrollback 30000 # Use a 30000-line scrollback buffer

nethack on

# Misc h4x to make scrollback work
terminfo * te@:ti@
termcapinfo xterm|xterms|xs|rxvt ti=\E7\E[?47l

# Bells are annoying
bell_msg ''
vbell off

caption always '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'
4

4 回答 4

3

你正在运行(我自己一直screenxterm做的事情)。该screen过程“知道”终端有多大,但该信息可能与现实不同步。screen -dr当我从不同的窗口运行时,我发现这种情况经常发生。

调整xterm窗口大小会导致它向在其下运行的进程发送SIGWINCH信号,这通常会导致该进程重新查询 tty 设置。

单击最大化按钮两次。如果您已经最大化,则将其恢复为普通窗口,然后重新最大化它;如果它还没有最大化,它会做相反的事情。在任何一种情况下,都应该screen重新计算窗口大小。

于 2013-09-18T20:35:55.927 回答
1

我今天遇到了同样的问题。感谢大家的提醒。我发现的最终解决方案是将薄荷术语类型设置为:vt220。“xterm”一定有什么不对的地方。在那之后,一切都很好。

于 2015-09-09T18:06:44.120 回答
0

我在这里回答我自己的问题,因为虽然@Keith Thompson 的回答确实解决了问题的症状,但它并没有阻止症状的发生。他确实让我走上了正确的道路,那就是在 cygwin-64 中安装 xterm 包。这似乎解决了这个问题。

于 2013-09-19T14:07:03.107 回答
0

我在 2014 年 4 月 28 日将屏幕版本降级为屏幕版本 4.02.01 (GNU) 并且可以正常工作。

于 2015-10-06T10:09:45.837 回答