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 编程效率翻倍。