我刚刚从 GNU屏幕切换到 tmux 2.0 ,但惊讶地发现我无法再使用鼠标滚轮和Shift-PgUp/Shift-PgDn来回滚终端历史记录。

这对我来说是一个重大的转变。如何使用tmux滚动终端

PS。我知道我可以使用 set-window-option -g mode-mouse on 使用鼠标滚轮滚动浏览 tmux 缓冲区-而不是终端缓冲区。此设置的另一个副作用是,我无法再按常规方式进行鼠标选择-我必须用鼠标左键按Shift键。

IOW:我如何告诉tmux将所有鼠标事件传递给终端仿真器?

PPS。 Ubuntu 15.10; gnome-terminal;滚动条在右侧清晰可见,但是在screen下,它们指示只显示了缓冲区的一小部分,而在tmux下,它们指示没有要滚动的内容。

最佳答案

我怀疑您的问题实际上是根本没有将行放置在回滚缓冲区中,而不是tmux接管了鼠标和键。

Tmux默认情况下使用“备用屏幕缓冲区”(您可能会注意到,如果屏幕上有文本,然后附加和分离tmux,文本将返回)。许多终端仿真器不会将在此模式下滚动或擦除的文本放在回滚缓冲区中。要禁用此功能,请执行以下操作:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'
xterm*是您的终端在$ TERM环境变量中所报告的内容。如果以交互方式设置选项,则可能需要拆离,重置终端并重新连接,以使其正常工作。

注意:如果使用termcap而不是terminfo,请使用tite代替smcup/rmcup

08-05 10:49
查看更多