Konsole 中的一些新行为阻止了 screen 和 tmux 滚动窗口。我主要使用屏幕,当使用鼠标滚轮滚动时,它会旋转命令行历史记录。很烦人,但您仍然可以在滚动条中使用鼠标滚轮。在过去的几天里,这个已经停止工作了。屏幕会话根本不会滚动,滚动条是固定的并且不起作用。我改用 tmux,但也有同样的问题。 tmux 有一个鼠标通过模式,虽然还可以,但很笨重,而且剪切和粘贴不起作用。基本的 xterm 不会显示该问题。我想不出有什么改变可以做到这一点。
答案1
滚动条是固定的并且不起作用
您已切换到备用屏幕缓冲区。 Konsole 是几个终端仿真器之一,它使备用屏幕缓冲区与主屏幕缓冲区神奇地不同。它神奇地不可滚动,并且没有回滚缓冲区。
切换回来tput
:
输出(此功能的 terminfo 名称为
rmcup
)或使用我的便携式setterm
工具:setterm --altbuffer 关闭或者通过直接使用 输出控制序列(DEC 专用模式 1047 的 RM)
printf
。
进一步阅读
- 乔纳森·德博因·波拉德 (2018)。
setterm
。 小吃指南。软件。
答案2
我通过修改本地TERM环境变量解决了这个问题。当通过以下方式登录到远程会话时,我尝试了多种变体屏幕但标准 VT100 / xterm 仿真没有任何区别。
问题似乎围绕着屏幕采用 konsole 会话终端定义并动态生成另一个 TERMCAP。解决方案是更改 TERM 环境变量:“TERM=vt100 ssh -t 用户@主机 screen -RR" 对于会话。生成的 TERMCAP 具有正确的滚动条行为。
不确定这是否有意义,但它为我解决了这个问题。