我想要实现的是鼠标滚轮滚动行为,这是我在常规 ssh 会话中习惯的。在 bash 提示符中,鼠标滚轮应该滚动我的终端输出,在 less/vim 内部 - 它们使用的备用缓冲区,以便在退出时,less 中显示的文本不会留下任何内容。如果我在 .screenrc 中禁用备用缓冲区功能,如下所示:
termcapinfo xterm ti@:te@
那么它也会被 vim/less 禁用,并且它们将无法处理鼠标滚轮滚动。启用屏幕的内部备用缓冲区模拟,如下所示:
altscreen on
仅有助于在 less/vim 退出后恢复 bash 输出。无法在其中滚动鼠标滚轮。
那么,是否有任何屏幕选项,也许在某些屏幕分叉/替代方案中,可以禁用屏幕本身使用备用缓冲区?
答案1
您可能需要考虑使用 tmux 而不是 screen (https://tmux.github.io)。Tmux 具有 xterm 鼠标支持,因此您可以使用滚轮滚动缓冲区,而无需禁用备用缓冲区。
请注意,tmux 的默认配置使用 ctrl-b 作为前缀,但您可以轻松将其更改为 ctrl-a,还可以添加类似屏幕的绑定以使其更容易。网上有很多这样的例子,例如http://blog.obnox.de/tmux-with-screen-like-key-bindings/
确保添加mouse on
到配置中以使 xterm 鼠标支持正常工作。作为附加奖励,它还允许您在窗口和窗格之间单击并使用鼠标调整它们的大小。
Tmux 还有许多其他优点,尤其是垂直分割(我猜现在终于被添加到屏幕上了)以及在一个窗口中拥有多个分割(窗格)的能力。