鼠标滚动不起作用tmux当我运行没有 tmux 的 shell 时(在 Gnome 终端中),它的工作方式是这样的。似乎 tmux 发送鼠标滚动事件,就像我按下了向上/向下键一样。但我希望它在 shell 中滚动输出历史。有没有办法让 tmux 像这样工作?
笔记:我知道如何使用键盘滚动(感谢另一个问题这里)。
我尝试在两个版本的 tmux 中使用鼠标滚动:
- 0.8-5hardy1(Ubuntu 8.04(哈代·赫伦))
- 1.3-1(关于Ubuntu 10.10(特立独行的猫鼬))
答案1
要在输出历史记录内滚动,您可以使用^b
+[
然后可以使用 M+V 向上翻页,使用 ^V 向下翻页。我不知道您是否可以使用真正的PgUpand PgDown。我的终端不会将这些键发送到 tmux。相反,它会自行滚动,而不是 tmux 历史记录。
要退出复制模式,请按 ESC
要在此模式(称为复制模式)下使用鼠标,请按^b
+:
并输入以下内容:
setw -g mouse on
注意:在 tmux <2.1 中,该选项名为mode-mouse
,而不是mouse
现在,当您切换到复制模式时,您可以使用鼠标滚动浏览它。如果您愿意,您可以将此命令放入 ~/.tmux.conf 中,这样每次运行 tmux 时它都会加载。
更新:从 tmux 1.5 开始,此选项使使用滚轮自动切换到复制模式并向后滚动 tmux 回滚缓冲区。不再需要先按Ctrl-B
+ [
。向下滚动回到提示符也会自动结束复制模式。
答案2
Tmux 2.1 有一些变化
鼠标模式已重写。现在不再有以下选项:
- 鼠标调整窗格大小
- 鼠标选择窗格
- 鼠标选择窗口
- 模式鼠标
相反,只有一个选项:“鼠标”,它可以完全启用鼠标支持。
那将是
set -g mouse on
# to enable mouse scroll, see https://github.com/tmux/tmux/issues/145#issuecomment-150736967
bind -n WheelUpPane if-shell -F -t = "#{mouse_any_flag}" "send-keys -M" "if -Ft= '#{pane_in_mode}' 'send-keys -M' 'copy-mode -e'"
答案3
当前版本的 tmux(1.5)允许您简单地设置模式鼠标选项,并允许您使用鼠标滚轮滚动。
mode-mouse [on | off]
Mouse state in modes. If on, the mouse may be used to
enter copy mode and copy a selection by dragging, to
enter copy mode and scroll with the mouse wheel, or to
select an option in choice mode.
在我的.tmux.conf中:
set-window-option -g mode-mouse on
更新- 从 tmux 2.1 开始,此选项已重命名为mouse
答案4
有人(来自我丢失的来源)建议将以下内容添加至~.tmux.conf
:
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
我不知道它是如何工作的,也不知道它能做什么,但现在我可以在 tmux 会话中使用鼠标滚轮滚动,而无需进入 tmux 的复制模式;我只需滚动滚轮,BAM!它就可以工作了。请注意,我使用的是 terminal.app,但我记得 OP 给出了专门用于 的答案gnome-terminal
。