我刚刚从 GNU screen 切换到 tmux 2.0,我惊讶地发现我无法再使用鼠标滚轮和 Shift 回滚终端历史记录-PgUp/Shift-PgDn。
这对我来说是一个重大的转折点。如何使用 tmux 进行终端滚动?
PS。我知道我可以做set-window-option -g mode-mouse on
使用鼠标滚轮滚动 tmux 缓冲区 - 而不是 终端 缓冲区。此设置的另一个副作用是我无法再以通常的方式进行鼠标选择 - 我必须用鼠标左键按 Shift。
IOW:如何告诉 tmux 将所有鼠标事件传递到终端模拟器?
PPS。乌类图15.10; gnome 终端;滚动条在右侧清晰可见,但在 screen
下,它们表示仅显示缓冲区的一小部分,而在 tmux
下,它们表示没有任何内容滚动。
最佳答案
我怀疑你的问题实际上是行根本没有被放置在回滚缓冲区中,而不是 tmux 接管鼠标和按键。
Tmux 默认使用“备用 screen 缓冲区”(您可能会注意到,如果 screen 上有文本,然后附加和分离 tmux,文本将会返回)。许多终端模拟器不会将在此模式下滚动或删除的文本放置在回滚缓冲区中。要禁用此功能,请执行以下操作:
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
其中 xterm*
是终端在 $TERM 环境变量中报告自身的内容。如果您以交互方式设置该选项,您可能需要分离、重置终端并重新连接才能正常工作。
注意:如果您使用 termcap 而不是 terminfo,请使用 ti
和 te
而不是 smcup
/rmcup
.
关于terminal - 使用 tmux 在终端中进行鼠标滚动和选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33398716/