使用tmux在终端中滚动和选择鼠标

我刚刚从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;侏儒末端;滚动条在右侧清晰可见,但在屏幕下,它们表示只显示缓冲区的一小部分,而在tmux下,它们表示没有可滚动的内容.

最佳答案 我怀疑你的问题实际上是根本没有将行放在回滚缓冲区中,而不是tmux接管鼠标和键.

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

set -g terminal-overrides 'xterm*:smcup@:rmcup@'

其中xterm *是您的终端报告自己在$TERM环境变量中的任何内容.如果以交互方式设置选项,则可能需要分离,重置终端并重新连接,以使其正常工作.

注意:如果您使用termcap而不是terminfo,请使用ti和te而不是smcup / rmcup.

点赞