如何在使用emacs -nw和gnu screen时保留我的putty滚动缓冲区?

3
这是我的问题 - 希望我能够足够清楚地解释:
我在 Windows 上使用 Putty,并启动一个 gnu screen 会话。我可能会在 Putty 中运行几个 shell 命令,然后在同一个 screen 中运行 emacs -nw。问题是,当我退出 emacs 时,回滚缓冲区(在 putty 中)就会出现问题。当我开始运行 emacs 时屏幕上显示的内容消失了,如果向上滚动,我会看到各种 screen 的工件(例如底部的屏幕“条”等)。
如果我不使用 screen,只直接从 putty 打开 emacs -nw,则退出 emacs 时所有历史记录仍然存在于缓冲区中。
同样,如果我使用 screen,并在 screen 中使用 vi 而不是 emacs,当我退出 vi 时,一切都还在。
这只是 Putty 和 emacs 的一些奇怪交互吗?有没有办法修复它?

“screen” 当然有自己的滚动条功能。Ctrl-a esc. - tripleee
是的,当我使用它时,所有历史记录都完全消失了。因此,如果我使用鼠标滚轮或右侧的滚动条向上滚动,我可以看到一点点历史记录,如果我使用屏幕的滚动缓冲区向上滚动,则无法看到任何内容(我只能一直向上滚动,并且所有东西都是空白)。 - Jer
3个回答

1

您尝试将滚动缓冲区大小设置为默认值以外的其他值了吗?scrollback

在.screenrc文件中添加以下行:

defscrollback 10000

这是我的配置文件.screenrc。尝试复制此问题,但没有成功...您可以尝试看看是否解决了问题:
termcapinfo xterm* ti@:te@
startup_message off
vbell off
autodetach on
altscreen on
shelltitle "$ |bash"
defscrollback 10000
defutf8 on
nonblock on

hardstatus alwayslastline
hardstatus string '%{= kw}[ %{= kb}%H%{= kw} ][%= %{= kw}%?%-Lw%?%{= kW}%n*%f %t%?%?%{= kw}%?%+Lw%?%?%= ][ %{r}%l%{w} ]%{w}[%{r} %d/%m/%y %C %A %{w}]%{w}'

bind 'q' quit

最后,我也建议您熟悉tmux -> http://tmux.sourceforge.net/

顺便提一句,希望您正在使用最新版本的PuTTy :) -> http://puttytray.goeswhere.com/


0

这听起来像是Emacs和Screen在终端的备用屏幕功能上互相干扰。

我无法重现此问题,但将以下内容放入您的~/.screenrc文件中可能会有所帮助:

altscreen on

0

你考虑过使用tmux作为GNU screen的替代品吗?


我听说过它的好处,但是首先,在我的工作中没有安装它 - 我可能可以让他们安装,但是那样我就需要学习全新的东西(最大的担忧是窗口切换、分割窗口等肌肉记忆问题),而我除了这个问题之外对屏幕非常满意。 - Jer
好的。最起码你可以要求安装tmux,这样你就可以快速尝试它是否解决了你的问题,如果没有,你甚至不需要考虑切换。 - Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接