Tmux 101 - AI 编程效率倍增指南
Tmux 101
为什么需要
AI 编程的典型痛点
| 痛点 | 场景 |
|---|---|
| SSH 断线丢失进度 | 让 Claude 分析大型代码库,耗时 10 分钟,网络断了全部重来 |
| 窗口混乱 | 同时开 Claude Code、Codex、本地测试、日志监控,切来切去头大 |
| 无法边生成边验证 | AI 在生成代码,你想同时运行测试,只能干等 |
| 多任务并行难 | 需要对比 Claude、GPT-4、Codex 的输出,只能一个个来 |
tmux 解决:会话持久化、多窗格并行、任务后台运行。
核心概念
| 概念 | 类比 | 用途 |
|---|---|---|
| Session | 工作区/项目 | 一个 AI 任务一个 Session,断线重连不丢失 |
| Window | 标签页 | 同一任务的不同视图(代码 ↔ 测试 ↔ 日志) |
| Pane | 分屏 | 同时看多个内容(AI 生成 + 实时测试) |
┌─────────────────────────────────────┐
│ Session: ai-project │
│ ┌─────────────┬─────────────────┐ │
│ │ Pane 0 │ Pane 1 │ │
│ │ Claude Code │ 测试终端 │ │
│ │ (生成代码) │ (实时验证) │ │
│ └─────────────┴─────────────────┘ │
│ [Window 0: 开发] [Window 1: 日志] │
└─────────────────────────────────────┘
必会操作
Session 管理
# 创建新会话(AI 任务专用)
tmux new -s claude-task
# 断线后重新连接
tmux attach -t claude-task
# 列出所有会话
tmux ls
# 结束会话
tmux kill-session -t claude-task
Pane 分屏(最常用)
# 快捷键前缀(默认 Ctrl+b)
# 先按 Ctrl+b,松开后按以下键
" # 水平分屏(上下)
% # 垂直分屏(左右)
方向键 # 切换 pane
z # 当前 pane 全屏/还原(看代码神器)
x # 关闭当前 pane
Window 标签
# 先按 Ctrl+b,然后:
c # 创建新 window
n # 下一个 window
p # 上一个 window
0-9 # 跳到指定 window
, # 重命名 window(推荐:code, test, log)
典型场景
场景 1:后台跑长任务
AI 分析大型代码库,关闭 SSH 也不中断:
# 创建后台会话
tmux new -d -s deep-analysis
# 发送命令到该会话
tmux send-keys -t deep-analysis "claude -p '分析这个项目的架构'" Enter
# 随时查看进度
tmux attach -t deep-analysis
# 看完 detach(Ctrl+b d),任务继续后台跑
场景 2:多工具并行
| Pane | 工具 | 用途 |
|---|---|---|
| 左上 | Claude Code | 主开发 |
| 右上 | Codex | 辅助生成 |
| 左下 | 终端 | 运行测试 |
| 右下 | htop | 监控资源 |
# 一键创建 AI 开发布局
tmux new -s ai-dev \\; \
split-window -h \\; \
split-window -v \\; \
select-pane -t 0 \\; \
split-window -v
场景 3:边生成边验证
Claude 生成代码的同时,你在另一个 pane 实时测试:
# 启动 Claude Code
tmux new -s code-and-test
# 分屏(Ctrl+b %)
# 左 pane:Claude Code 对话
# 右 pane:运行测试
# 当 Claude 生成完一个函数
# → 右 pane 立即 import 测试
# → 有问题马上反馈给 Claude
场景 4:对比多个 AI 输出
同时问 Claude、Codex、OpenCode 同一个问题:
# 创建 3 个 pane 的窗口
tmux new -s ai-compare
# 分屏布局
Ctrl+b % # 左右分
Ctrl+b " # 再水平分(选中右 pane 后)
# 三个 pane 分别运行
# Pane 0: claude -p "优化这个函数"
# Pane 1: codex --yolo "优化这个函数"
# Pane 2: opencode "优化这个函数"
# 同步滚动对比输出(Ctrl+b : 输入 setw synchronize-panes)
配置(~/.tmux.conf)
# 改前缀为 Ctrl+a(更符合习惯)
unbind C-b
set -g prefix C-a
bind C-a send-prefix
# 鼠标支持(滚轮滚动、点击切换 pane)
set -g mouse on
# 256 色支持(AI 工具输出更美观)
set -g default-terminal "screen-256color"
# 状态栏显示会话名
set -g status-left "[#S] "
# 快速重载配置
bind r source-file ~/.tmux.conf \\; display "Config reloaded!"
# 窗格编号从 1 开始(方便左手按)
set -g base-index 1
setw -g pane-base-index 1
# 大缓冲区(AI 输出长内容不丢失)
set -g history-limit 50000
速查卡
Ctrl+b ? 帮助
Ctrl+b d 分离会话(后台继续运行)
Ctrl+b c 新建窗口
Ctrl+b n/p 下/上一个窗口
Ctrl+b " 水平分屏
Ctrl+b % 垂直分屏
Ctrl+b 方向键 切换 pane
Ctrl+b z pane 全屏/还原
Ctrl+b x 关闭 pane
Ctrl+b [ 滚动模式(q 退出)
总结:tmux = 会话不丢 + 一屏多用 + 后台常驻,AI 编程效率翻倍。