在 tmux 中,默认的鼠标滚轮行为是进入 复制模式(copy-mode) 来查看历史输出(终端日志)。如果你希望 鼠标滚轮向上 直接滚动查看之前的终端日志(而不是触发其他操作),可以这样优化配置:
~/.tmux.conf(如果不存在就新建)bash展开代码nano ~/.tmux.conf  # 或者用 vim
sh展开代码# 启用鼠标支持(包括滚轮、窗格选择)
set -g mouse on
# 鼠标滚轮向上:进入复制模式并向上滚动(查看历史日志)
bind -n WheelUpPane {
    if -F "#{pane_in_mode}" {
        send-keys -M  # 如果已在复制模式,继续滚动
    } {
        copy-mode -e  # 进入复制模式
        send-keys -M  # 模拟向上滚动
    }
}
# 鼠标滚轮向下:退出复制模式或向下滚动
bind -n WheelDownPane {
    if -F "#{pane_in_mode}" {
        send-keys -M  # 如果已在复制模式,继续滚动
    } {
        send-keys -M  # 否则直接发送滚轮事件(可能被终端处理)
    }
}
# 左键拖动:选择文本或调整窗格(根据上下文自动判断)
bind -n MouseDrag1Pane if -F "#{mouse_any_flag}" {
    if -F "#{pane_in_mode}" {
        # 在复制模式中:继续选择文本
        send-keys -M
    } {
        # 不在复制模式:调整窗格大小或交互
        select-pane -M
    }
}
# 左键单击:激活窗格或开始选择
bind -n MouseDown1Pane select-pane -M \; send-keys -M
# 确保终端兼容性(防止鼠标事件被拦截)
set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Ctrl + O → 回车 → Ctrl + XEsc → :wq → 回车bash展开代码tmux kill-server  # 关闭所有 tmux 会话
tmux              # 重新启动
bash展开代码# 在 tmux 中按:
Ctrl + B  # 前缀键
:source-file ~/.tmux.conf  # 输入这些,然后回车
如果仍然无效:
检查终端模拟器设置:
Preferences > Profiles > Terminal → 勾选 Enable mouse reporting。Preferences > 当前配置文件 > Compatibility → 勾选 Enable mouse reporting。升级 tmux(推荐):
bash展开代码# macOS (Homebrew)
brew upgrade tmux
# Linux (Ubuntu/Debian)
sudo apt update && sudo apt install tmux
强制刷新终端:
bash展开代码# 在 tmux 中按:
Ctrl + B  # 前缀键
:kill-pane -a  # 回车
copy-mode?less 或 vim 的滚动)。q 或 Esc(如果你在复制模式中)。Ctrl + B → :set mouse off → 回车。这样设置后,你的鼠标滚轮向上应该可以流畅查看终端历史日志了!


本文作者:Dong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!