Tmux 技术笔记:启用 Mouse Mode 及其机制解析
在 Tmux 默认配置下,鼠标滚轮通常只能滚动终端模拟器的 Viewport,无法查看 Pane 内部的历史输出。这是因为 Tmux 默认未捕获鼠标事件。
以下是开启鼠标支持的方法、原理及副作用处理。
1. 快速开启 (Runtime)
无需重启会话,在当前窗口立即生效:
- 按下前缀键:Ctrl + B
- 输入冒号进入命令模式::
- 执行以下指令:
set -g mouse on
变更效果:
- 历史回溯:滚动滚轮将直接触发 Tmux 的 Copy Mode,允许查看当前 Pane 的历史日志。
- 交互增强:支持鼠标点击激活 Pane、拖拽边框调整 Pane 大小。
2. 永久配置 (Persistent)
为了持久化该设置,需修改配置文件 ~/.tmux.conf:
# ~/.tmux.conf
set -g mouse on
修改后需重载配置:
tmux source-file ~/.tmux.conf
3. 技术细节与副作用 (Side Effects)
机制差异
- Default:终端模拟器处理鼠标信号。滚动仅影响终端窗口缓冲区。
- Mouse on:Tmux 接管鼠标信号。点击和滚动被转化为 Tmux 内部指令(如切换 Window、进入 Copy Mode)。
剪贴板冲突 (Clipboard Conflict)
Tmux 接管鼠标后,终端原生的“划选即复制”功能会被覆盖。
- 解决方案:按住 Shift 键(macOS 部分终端需按 Option 或 Fn)进行选择。
- 原理:按住 Shift 强制绕过 Tmux 的鼠标捕获,将控制权暂时交还给终端模拟器,从而调用系统剪贴板。
Tmux Cheat Sheet (速查表)
前缀键 (Prefix): 默认为
Ctrl + b。
所有快捷键需先按前缀键,松开后再按对应功能键。
1. 会话管理 (Sessions)
| 快捷键 | 功能描述 |
|---|---|
s | 列出并切换会话 (Session List) |
d | 分离当前会话 (Detach) |
$ | 重命名当前会话 |
( / ) | 切换至 上一个 / 下一个 会话 |
常用终端命令:
# 新建命名会话
tmux new -s mysession
# 接入会话
tmux a -t mysession
# 列出所有会话
tmux ls
# 杀死会话
tmux kill-session -t mysession
2. 窗口管理 (Windows)
| 快捷键 | 功能描述 |
|---|---|
c | 创建新窗口 (Create) |
w | 列出窗口进行切换 |
, | 重命名当前窗口 |
n / p | 下一个 / 上一个 窗口 (Next/Prev) |
0 - 9 | 根据编号直接切换窗口 |
& | 关闭当前窗口 (需确认) |
3. 窗格管理 (Panes)
| 快捷键 | 功能描述 |
|---|---|
% | 左右 分屏 (Vertical Split) |
" | 上下 分屏 (Horizontal Split) |
方向键 | 在窗格间移动焦点 |
z | 最大化/恢复当前窗格 (Zoom) |
x | 关闭当前窗格 |
{ / } | 交换窗格位置 |
Ctrl+方向键 | 调整窗格大小 (需按住前缀键不放,或配置快捷键) |
q | 显示窗格编号 (输入数字可跳转) |
4. 复制/滚动模式 (Copy Mode)
| 快捷键 | 功能描述 |
|---|---|
[ | 进入复制模式 (可使用滚轮或方向键翻页) |
] | 粘贴缓冲区内容 |
| Space | (复制模式下) 开始选择文本 |
| Enter | (复制模式下) 结束选择并复制 |
5. 系统指令
| 快捷键 | 功能描述 |
|---|---|
: | 进入命令行提示符 |
? | 列出所有快捷键绑定 (Help) |
~ | 显示操作日志 |
配置文件重载 (在 : 模式下输入):
source-file ~/.tmux.conf

4788

被折叠的 条评论
为什么被折叠?



