Margrop
Articles304
Tags463
Categories7

Categories

1password AC ACP AI AI Coding Assistant AI编程助手 AI辅助编程 AP API AppDaemon Aqara CC-Switch CI/CD CLI Tools CLI工具 Caddy Claude Code Cloudflare Codex Cookie 认证 Cron D1 Date Diagrams.net Diary Docker Docker Compose Efficiency Tools Electerm English Gateway Gemini CLI GitHub Actions HA HADashboard Hexo HomeAssistant IP IPv4 Java LVM‑Thin Linux MacOS Markdown MiniMax Multi-Agent MySQL NAS Nginx Node-RED Node.js OOM OpenAI OpenClaw OpenCode OpenResty PPPoE Portainer PostgreSQL ProcessOn Prometheus Proxmox VE RPC SOCKS5 SSL Session Shell Subagent TTS TimeMachine UML Uptime Kuma VPN VPS Web WebSocket Windows Workers activate ad adb adblock agent aligenie aliyun alpine annotation aop authy autofs backup baidupan bash bitwarden boot brew browser caddy2 cdn centos cert certbot charles chat chrome classloader client clone closures cloudflare cmd command commit container crontab ctyun ddsm demo dependency deploy developer devtools dll dns docker domain download draw drawio dsm dump dylib edge exception export fail2ban feign firewall-cmd flow frp frpc frps fuckgfw function gcc gfw git github golang gperftools gridea grub gvt-g hacs havcs heap hello hexo hibernate hidpi hoisting homeassistant hosts html htmlparser https iKuai idea image img img2kvm import index install intel io ios ip iptables iptv ipv6 iso java javascript jetbrains jni jnilib jpa js json jsonb jupter jupyterlab jvm k8s kernel key kid kms kodi koolproxy koolproxyr kvm lan lastpass launchctl learning lede letsencrypt linux live low-code lvm lxc m3u8 mac macos mariadb markdown maven md5 microcode mirror modem modules monitor mount mstsc mysql n2n n5105 nas network nfs node node-red nodejs nohup notepad++ npm nssm ntp oop openfeign openssl os otp ovz p14 packet capture pat pdf pem perf ping pip plugin png powerbutton print pro proxy pve pvekclean python qcow2 qemu qemu-guest-agent rar reboot reflog remote remote desktop renew repo resize retina root route router rule rules runtime safari sata scipy-notebook scoping scp server slmgr so socks source spk spring springboot springfox ssh ssl stash string supernode svg svn swagger sync synology systemctl systemd tap tap-windows tapwindows telecom template terminal tls tmux token totp tvbox txt ubuntu udisk ui undertow uninstall unlocker upgrade url v2ray vhd vim vlmcsd vm vmdk web websocket wechat windows with worker wow xiaoya xml yum zip 中国电信 云电脑 交换机 人机协作 代理 体检 值班 健康检查 光猫 公网IP 内存 内存优化 内网 内网IP 内网渗透 写作 升级 协作 博客 反向代理 启动 周一 周末 夏令时 多智能体 多节点 多节点管理 天猫精灵 天翼云 安全 安装 定时任务 容器 容器网络 导入 小米 常用软件 广告屏蔽 序列号 应用市场 异常 心跳 心跳检查 感悟 打工 打工人 技术 抓包 排查 描述文件 故障 故障排查 效率 效率工具 无服务器 日记 时区 显卡虚拟化 智能家居 智能音箱 服务器 服务管理 架构 梯子 模块 流程 流程图 浏览器 漫游 激活 火绒 焦虑 玄学 生活 电信 画图 监控 直播源 直觉 磁盘 端口 端口扫描 管理 续期 网关 网络 网络风暴 群晖 脚本 脚本优化 腾讯 自动化 虚拟机 认证 证书 语雀 超时 路由 路由器 软件管家 软路由 运维 运维监控 连接保活 连接问题 通信机制 部署 配置 钉钉 镜像 镜像源 门窗传感器 问题排查 防火墙 阿里云 阿里源 集客

Hitokoto

Archive

说出来你们可能不信,AI时代我每天干活还是离不开tmux

说出来你们可能不信,AI时代我每天干活还是离不开tmux

说出来你们可能不信,AI时代我每天干活还是离不开tmux

说出来你们可能不信,都 2026 年了,AI 代码助手已经能帮你写完整项目了,但每天打开终端,我输入的第一个命令还是 tmux new -s work

同事问我:”都 AI 时代了,你怎么还在用这个 2007 年的老古董?”

我说:”古董?不,这是旧瓶装新酒。”

AI 都这么能打了,我为什么还是离不开 tmux?

说实话,我也尝试过”现代化”的开发方式。

有段时间我尝试用各种 AI 编程工具——Cursor、Windsurf、Copilot Workspace。这些工具确实很厉害,能帮你生成代码、解释代码、甚至帮你重构整个模块。

但每次用着用着,我就发现自己的注意力开始分散了。

问题一:窗口太多

AI 工具通常是 Web 界面或者独立的 App。要用 AI 帮你写代码,你得:

  1. 打开编辑器写代码
  2. 切换到浏览器问 AI 问题
  3. 把 AI 的答案复制回编辑器
  4. 运行看结果
  5. 切换回浏览器继续问

每次切换窗口,注意力就会被中断一次。研究表明,每次中断后重新集中注意力,平均需要 23 分钟。

问题二:AI 输出太长

AI 给的回复经常是一屏又一屏。比如我问”帮我分析这个函数的性能”,AI 能给你写出 500 行的分析报告。要在这 500 行里找到关键结论,眼睛都要找花。

问题三:SSH 断连 = 工作丢失

这是最痛苦的。有时候让 AI 生成了一个很长的命令,或者正在调试一个复杂的问题,突然 SSH 断开了。重新连上去,之前的工作状态全部丢失——终端历史没了,编辑器里的临时修改没了,甚至有时候连进程都没了。

直到我重新捡起了 tmux。

tmux 才是 AI 时代的隐藏之王

说出来你们可能不信,我第一次接触 tmux 是在 2018 年,那时候就觉得这玩意儿挺有意思的——分屏、session 持久化、复制模式,这些功能在服务器运维里确实很实用。

但用了一段时间后,我就把它打入冷宫了。因为那时候 GUI 工具越来越强大,VS Code 的远程开发、SSH 插件、各种 AI 助手,都让纯命令行的 tmux 显得有些”落后”。

直到最近,我才重新发现了 tmux 的价值。

准确地说:是 AI 时代让我重新认识了 tmux。

第一幕:分屏才是 AI 打工的正确姿势

现在的 AI 辅助编程,正确的打开方式是什么?

我的答案是:tmux + vim + AI 终端 + 日志监控,三个窗口同时开着,各司其职。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
┌─────────────────────────────────┬──────────────────┐
│ vim - app.py │ AI Terminal
│ │ │
│ def handle_request(): │ >>> 分析代码... │
data = ai.analyze( │ 建议: 添加缓存 │
prompt=query │ 复杂度: O(n)
│ ) │ │
│ return render(data) │ │
├─────────────────────────────────┴──────────────────┤
│ logs - tail -f │
│ [10:30:01] Request received │
│ [10:30:02] AI processing... │
│ [10:30:03] Response: 200 OK
└───────────────────────────────────────────────────┘

这是我每天的标准布局:

左边的 vim:写代码,用 vim-slime 或者直接复制粘贴,把 AI 给的代码片段放进去

右边的 AI 终端:问 AI 问题、看 AI 的分析结果、让 AI 帮你审查代码

下面的日志窗口tail -f 实时看日志,AI 生成代码后,立刻看日志验证效果

三个窗口同时可见,不需要切换,不需要 Alt+Tab,不需要在窗口之间迷失。

当 AI 告诉我”这段代码有问题”的时候,我只需要低头看一眼日志窗口,看看是不是真的有问题。当 AI 给了一个优化建议的时候,我可以直接在 vim 里执行,同时盯着日志看效果。

这种”沉浸式 AI 编程”的体验,比在各种窗口之间来回切换爽太多了。

第二幕:session 持久化——让 AI 任务不怕断网

这是 tmux 最重要的功能,也是让我彻底离不开它的原因。

场景重现

下午三点,我正在让 AI 帮我写一个复杂的数据处理管道。AI 给了一个 200 行的代码,我正在一行一行地看,突然——

“Connection to server closed.”

SSH 断开了。

如果是以前用普通终端,这个时候我大概会:

  1. 重新 SSH 上去
  2. 尝试回忆刚才看到哪了
  3. 重新运行之前的命令
  4. 发现某些状态已经丢失
  5. 心态崩了

但现在?

1
2
# 重新连接服务器后
tmux attach -t work

一秒回到断连前的状态。vim 里我看到第 142 行,AI 终端里刚才的对话历史还在,日志窗口还在实时滚动。所有窗口、所有状态,完整保留。

这就是 tmux session 的魔力:你的工作是一个”活”的状态,不是一个”死”的终端。

它大概是这样的一个生命周期:

1
2
3
4
[Session Active] --> [detach] --> [Session Detached but Running] --> [attach] --> [Session Active]
↓ ↓
正在工作 SSH 断开,session 保留
所有窗口状态都在

detach 和 attach,就是 tmux 的精髓。

  • Ctrl+b d:临时脱离 session(session 在后台继续运行)
  • tmux attach:重新连接回 session(一切如你所见)

有了这个,我再也不怕 SSH 断开了。晚上回家路上突然想起有个任务没完成?没关系,明天到公司 tmux attach,继续干。

第三幕:copy-mode——AI 长文本的精准定位神器

AI 的输出有一个特点:长。

非常长。

有时候你问 AI 一个技术问题,它能给你写出一篇小作文。代码、解释、建议、注意事项,洋洋洒洒几百行。

要在这几百行里找到你真正需要的那几行,靠眼睛扫?累死你。

但用 tmux 的 copy-mode,一切变得简单。

传统的复制模式

  1. Ctrl+b [ 进入复制模式
  2. 用方向键一行一行地挪
  3. 看到想复制的地方,Space 开始选
  4. Enter 确认复制
  5. Ctrl+b ] 粘贴

这已经很好了,但 tmux copy-mode 还有更强大的功能:正则搜索跳转

进入 copy-mode 后,按 / 就可以搜索。想找 handle_request 函数?/handle.*request,回车,直接跳转到第一个匹配的位置。按 n 跳到下一个匹配,按 N 跳到上一个匹配。

1
2
3
4
# 在 copy-mode 中
/handle.*request # 搜索包含 "handle" 和 "request" 的行
n # 跳到下一个匹配
N # 跳到上一个匹配

想象一下这个场景:AI 给了一份 500 行的代码分析和重构建议,里面有十几处需要修改的地方。以前你要用鼠标滚轮滚半天,找到眼花。现在?/ 一下,n n n,精准定位每一处。

这就是 tmux 教会我的:好的工具不是给你更多功能,而是让你更高效地到达你想去的地方。

第四幕:我的 .tmux.conf 现代化改造

用了这么多年 tmux,我的配置文件也在不断迭代。以下是我认为在 AI 时代最值得配置的几个选项:

1. 快捷键优化——告别小拇指

默认的 prefix 键是 Ctrl+b,这个组合对手小的人不太友好(需要同时按 Ctrl 和 b,小拇指很累)。

我把它改成了 Ctrl+a

1
2
3
4
# ~/.tmux.conf
unbind C-b
set -g prefix C-a
bind C-a send-prefix

现在只需要按 Ctrl+a,比 Ctrl+b 舒服多了。

2. 鼠标支持——用鼠标也能操作 tmux

1
set -g mouse on

开启鼠标支持后,可以:

  • 用鼠标调整 pane 大小
  • 用鼠标选择文本
  • 用鼠标点击切换 pane
  • 用鼠标滚轮滚动历史

对于从 GUI 过渡过来的新手,这个功能很友好。

3. 状态栏改造——一眼看出当前状态

1
2
3
4
5
6
# 状态栏显示更丰富的信息
set -g status-interval 5
set -g status-left "#[fg=green]tmux #[default]"
set -g status-right "#[fg=cyan]%Y-%m-%d %H:%M"
set -g window-status-format "#I:#W"
set -g window-status-current-format "#[fg=yellow,bold]#I:#W"

这样状态栏会显示当前时间、窗口列表,当前窗口高亮显示。

4. 更快的响应——减少延迟

1
2
3
4
5
# 减少 escape 延迟(对 vim 用户很重要)
set -g escape-time 0

# 更快的键序列
set -g repeat-time 300

escape-time 0 这个设置对 vim 用户特别重要,因为它减少了按键到 vim 响应之间的延迟。

5. 复制模式优化——更好的文本选择

1
2
3
4
5
6
# vi 风格的复制模式
setw -g mode-keys vi

# 复制模式快捷键
bind-key -T copy-mode-vi v send-keys -X begin-selection
bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel

用 vi 风格的快捷键复制文本,对 vim 用户来说学习成本为零。

第五幕:tmux + AI = 效率倍增

说了这么多 tmux 的好处,可能有人要问:AI 时代,tmux 的价值在哪里?

我的理解是这样的:

AI 负责”思考”,tmux 负责”执行”。

AI 的强项是生成、推理、解释。但 AI 不擅长的是:

  • 长时间运行任务
  • 实时监控状态
  • 保持上下文连续性
  • 多任务并行处理

而这些,恰好是 tmux 的强项。

举几个具体的例子:

例子一:AI 生成 + tmux 监控

让 AI 生成一个数据处理脚本,在 tmux 里运行 tail -f 实时看日志,AI 在另一个窗口给你解释日志里的错误。不用来回切换,专注在一个屏幕上。

例子二:AI 并行对话

开多个 tmux pane,同时和不同的 AI 对话——一个帮你写前端,一个帮你写后端,一个帮你写测试用例。三个 AI 同时工作,效率翻倍。

例子三:AI 调试 + 实时验证

AI 给你一个修复建议,立刻在 vim 里改,改完在下面的日志窗口看效果。不满意?继续问 AI,继续改,继续看。整个调试循环在一个屏幕里完成。

这就是我说的”效率倍增”:不是 tmux 让你更快,也不是 AI 让你更快,而是两者结合,让你的工作流变成一个流畅的循环。

感悟:从”工具”到”工作流”的思考

写这篇文章的时候,我重新审视了一下自己这些年的工具使用习惯。

2015 年刚开始工作的时候,我用 putty 连接服务器,纯命令行操作。那时候觉得终端就是一切,鼠标是多余的。

2018 年开始用 tmux,哇,分屏好爽,session 持久化好爽。但后来 VS Code 来了,远程开发插件太强大了,tmux 又被冷落了。

2023 年 AI 来了,各种 AI 编程工具层出不穷。我也尝试过纯 GUI 的 AI 编程方式,但总觉得哪里不对劲。

直到 2025 年,我重新捡起 tmux,才发现:不是 GUI 不好,也不是 AI 不好,而是它们没有很好地结合在一起。

tmux 给了我一个”容器”——一个可以把 AI、vim、日志监控、各种工具整合在一起的容器。在这个容器里,AI 不是另一个需要切换过去的窗口,而是我工作流的一部分。

好的工作流不是堆砌工具,而是让工具各司其职、协同工作。

AI 时代不缺工具,缺的是把工具用出效率的人。

tmux 教会我的是:好的工作流不需要复杂的 UI,简洁才是终极效率。

那些花哨的 AI 编程工具,确实很厉害,但如果你的工作流设计得不好,它们反而会让你分心。而一个简洁的 tmux 布局,配合合适的 AI 工具,可以让你专注于真正重要的事情——解决问题本身。

旧瓶装新酒,工具不老,用法常新。


作者:小六,一个 AI 时代还在用 tmux 的普通打工人

本文使用的配图:

tmux布局图
图1:我的 AI 编程标准布局——vim + AI 终端 + 日志监控三件套

tmux session 生命周期
图2:tmux session 的 detach/attach 生命周期——断网不怕,工作状态完整保留

tmux copy-mode 搜索跳转
图3:tmux copy-mode 的正则搜索——在 AI 的长文本输出中精准定位关键内容

Author:Margrop
Link:http://blog.margrop.com/post/2026-05-10-ai-era-tmux/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可