同时开10个AI写代码 -- AI工作流中必备软件:TMUX
介绍如何利用 TMUX 终端复用工具构建高效的 AI 编程工作流,实现多任务并行开发与自动化管理。
UP主: TheCW · 时长: 13:32 · 🔗 B站原视频
标签: TMUX · AI编程 · 效率工具 · 终端工具 · 工作流自动化
AI 编程的效率瓶颈与 TMUX 的优势
嘿大家好,今天我来介绍一个对于用 AI 写代码或者工作的人来说,必不可缺的系统性工具,就是 TMUX。随着类似 GPT-4.5 这个级别的模型出现,对于绝大部分的开发需求来说,其实好好写两句提示词,比你吭哧吭哧搁那看代码、写代码效率要高多了。因为瓶颈基本已经不是写代码了,瓶颈已经变成你能多好多快地同时用 AI 开发多个需求,并且管理这些进度,而且还不乱。
以这个目标来说,TMUX 加上终端下的这些 Agent(比如说 Claude Code、OpenCoder 等),已经在效率上吊打像 Cursor 这种 AI IDE。唯一的困难就是它们是终端下的 Agent,很多人觉得终端下的界面看起来不太友好,所以我今天就希望用 TMUX 来抹除这一点。
TMUX 的核心概念:终端复用与会话保持
TMUX 本质就是终端下的一个软件。你在终端里面运行 TMUX,它就在终端里面给你套了这么一层壳,你在这个终端下就可以同时运行多个终端,并且可以分屏了,有点像一个窗口管理器。
TMUX 还有一个功效,因为你在 TMUX 里面运行的所有进程,都套在 TMUX 这个壳里面,所以你可以随时从这个壳子里面退出来,但不影响到里面正在运行的进程。比如说你 SSH 进一个服务器里面,打开 TMUX,里面运行了一些进程。这时候因为你有 TMUX,你就可以随时断开 SSH 连接。等你回来的时候,服务器里面 TMUX 运行的进程、你的分屏都还在。这个断开和重连的过程,就叫 detach 和 attach。
TMUX 的三大核心 API
但是 TMUX 的功能远远不止这些。TMUX 开放了三种很重要的 API。
第一种是终端操控 API。它可以让 AI 操控一个 TMUX 里面的终端,并且看到终端里面的内容,甚至操纵里面,比如说给里面发送一些按键。这样 AI 就有能力去同时运行多个进程,并且查看里面的情况,甚至对它们进行操作。
第二种 API 就是 TMUX 的窗口布局 API。比如说 TMUX 的 split window 什么的。有了这些 API,你就可以根据你的喜好,让 TMUX 一键创建一个布局,这可以让你工作流非常快。举个例子,假设我正在前端项目里面,我可以运行一个脚本,它就会创建一个全新的独立工作区,创建一个新的 git 分支。它可以用 TMUX API 自动创建以这个新的 git 分支命名的 TMUX 窗口。这个窗口里面左边会留给我的 AI Agent,右上它会创建两个分屏,右上运行 git,右下运行我的项目。我就可以用这个脚本来同时开很多个 TMUX 工作区,同时用 AI 做很多个需求。并且这些工作区我可以在里面随时切换,我还可以用一个脚本来一键删掉工作区还有相关的代码,这些分支的合并都可以交给 AI 来完成。
利用 Hooks 实现工作流自动化
第三种 TMUX 的 API 就是 hooks,就是钩子,也就是所谓的事件提醒。TMUX 提供了各种各样的事件,你可以让 TMUX 在任何事件发生的时候,执行一个指令,或者运行一个你写的脚本。TMUX 有各种各样的事件你可以监听,比如说分屏切换了、窗口关闭了、工作区被重命名了。TMUX 提供各种各样的 hooks,可以让你自动化很多事情。
比如说刚才说的前端开发这个例子,一键开启的工作区脚本会自动开启一个网页,来运行我现在这个程序运行效果。当我同时开发好几个需求的时候,你可能忘了哪一个网页是你现在正在开发的这个需求。但是 TMUX 的钩子就可以让我们做到,我们切换任意一个工作区的时候,浏览器就会知道我们切换了,并且自动把网页切换到我们工作区正在运行的这个网页。TMUX 这三种 API 可以让你的 AI 工作流节省很多时间,让你专注在工作上面,而不是花时间在那些没用的或者点点点上面。你的很多工作需求 TMUX 都是可以解决的。
打造专属的 AI 进度面板
我再举个例子。当我同时运行多个 AI 的时候,我想知道哪个 AI 做完了工作,哪个 AI 还没做完。我就可以配置一下,哪个 AI 做完了工作,系统就会给我发一个通知。因为有 TMUX,我就可以按一个快捷键,立马跳到刚做完工作的那个 AI 所在的 TMUX 工作区,无缝衔接继续工作。
我还让 AI 给我做了个小面板,在任意一个 TMUX 工作区里面,我都可以按一个快捷键呼出它,显示我目前所有 AI 的进度,哪个做完了,哪个没做完。可以选择任何一个回车,直接跳到那一个 TMUX 工作区。为了方便做笔记,我在这个小面板上加了一个笔记功能。同样,我可以在任意一个笔记上按回车,就会跳转到我记了那个笔记的工作区。
键盘布局与快捷键配置说明
说了这么多,我自己也知道想把这些东西实际怎么做都说明白,一个视频肯定讲不完。所以我今天先从 TMUX 怎么用开始说,下个视频再说 API。我觉得 TMUX 的本体已经很强大了,可以让你工作效率成倍增长。不过那些 API 其实也不是什么复杂的东西,你问一下 AI 立马就可以知道,甚至可以直接让 AI 帮你搞好。或者你也可以等我下个视频,但是我觉得 AI 可能快一点。
我之前其实出过一个 TMUX 的视频,这个视频跟上个视频不太一样。上个视频我慢慢悠悠讲了 TMUX 最基础的默认快捷键。我做这个视频的很大一个原因,是因为我对上个视频很不满意。我觉得其实最重要的不是 TMUX 的默认配置和默认快捷键,因为那些默认快捷键说实话我觉得很烂。我这个视频就想把我目前正在使用的这一套 TMUX 配置和快捷键推荐给你们,我个人觉得对我很有帮助,希望也能帮助到你们。
接下来我可以花 10 分钟、20 分钟把我这 300 行的配置文件给讲一遍,但是我觉得没啥意义。你把这个配置文件发给 AI,让它想怎么改怎么改,效率会高很多。我这个视频可以做一件更好的事情,就是给你演示一下哪些快捷键会有什么效果,可能会更有帮助一些。
讲快捷键之前,为了方便讲解先说明一件事情,我用的键盘不是正常的 QWERTY,我用的是 Colemak。所以我的配置文件也是用 Colemak 键盘布局的。我知道这件事情很麻烦,作为一个 UP 主我其实还挺后悔,要是我用的是 QWERTY 的话,每次讲视频还不用这么麻烦,还得解释我的键盘布局怎么样。
不管怎么样,TMUX 非常强大,但它的快捷键组合比较多。为了方便讲解,我们给键盘的一些按键起一些小名儿。我们把键盘上 I、K、J、L 这几个键位作为上下左右。这是我个人的习惯,我在其他终端下的软件也会把这几个键作为上下左右。题外话,我用的键盘是雷蛇 Huntsman Mini,正好可以用右手小拇指按住 FN 键,真的可以把 I、K、J、L 物理变成上下左右的方向键,导致我现在终端以外的程序也用 I、K、J、L 作为上下左右(不是广告)。如果我们把 I、K、J、L 分别作为上下左右,再把 U 和 O 键当成手柄上的 LB、RB。接下来我们知道这些上下左右、LB、RB,说键位就方便多了。
窗口(Window)与分屏(Pane)管理
首先咱们来说窗口管理。在窗口管理上,TMUX 有三个核心概念,分别是 Session、Window 和 Pane。它们分别对应着从大到小的三个不同容器。首先 Session 就是最大的容器,我一般是一个项目开一个 Session。这一个 Session 可以包含很多个 Window。在一个 Window 下,你可以存在很多个 Pane,一个 Pane 就是一个分屏。
在我的配置上,左下角就是我所有的 Session,左下角右边没有背景颜色的,就是一个 Session 里面开的 Window。好像你们能看到我左下角目前有三个 Session,目前中间用来放 PPT 的这个 Session,它里面开了一个 Window。我们每开一个新的 Window,TMUX 就会自动在这个 Window 下给我们开一个 Pane。
我的快捷键是 Alt+O 新建一个 Window,这样就多了一个新的标签。Alt+1/2/3/4 可以在同一个 Session 的 Window 之间切换。Alt+LB/RB 就可以调换 Window 的顺序。如果不需要这个 Window,可以按 Alt+Shift+Q 关掉。
接下来就是 Pane 分屏。TMUX 还有一个概念叫 Prefix 键,有点像 Vim 下的 Leader 键。为了避免 TMUX 的快捷键跟其他终端软件(比如说 Vim)的快捷键冲突,你可以设置一个 Prefix 键,一般是个组合。我的 Prefix 组合是 Ctrl+S。按 Prefix 键加上下左右,就可以往那个方向创建一个分屏。想在这些分屏之间互相切换的话,只需要按住 Alt 加上下左右就可以了。
如果想调整分屏大小,按住 Alt+Shift 加上下左右可以调整大小。如果你有一个很小的 Pane,想把它暂时全屏,可以按 Alt+F,再按 Alt+F 就会恢复成比较小的分屏。如果你想把这个分屏移动到另外一个 Window,只需要按 Alt+Shift 加数字键,就可以把这个 Pane 移到第二或者第三个 Window。或者你可以按住 Alt+Shift+O,把当前的 Pane 单拎出来,建立一个独立的新的 Window。
会话(Session)管理与 Copy 模式
说完同一个 Session 下的操作,再说 Session 之间或者 Session 的管理。我的配置是 Alt+Shift+S 创建一个新的 Session。在不同 Session 之间可以按住 Ctrl 加数字键切换,或者 F1/F2 也可以切换。我搞了 F1/F2 这个快捷键组合,是因为有时候我想用手机 SSH 到我的电脑,但手机上的很多终端软件一般不支持 Ctrl 加数字键。不管怎么样,这只是我的配置。
如果你想把目前 Session 的某一个 Window 移交给另外一个 Session,可以按一下 Prefix 键,然后再按一下数字键,就把一个 Window 移动到另外一个 Session 了。如果你开了一堆 Session 和 Window,想改一下它们的名字方便辨识,可以按 Prefix 加逗号来改 Window 的名字,Prefix 加句号改 Session 的名字。如果你想调整 Session 的顺序,可以按一下 Prefix,然后按 LB 或者 RB,就可以左右调整 Session 的顺序。
另外 TMUX 还有很多实用的功能,比如说 Copy 模式。我的配置是 Alt+V,按 Alt+V 你就可以开始用 Vim 的快捷键了。在我的配置里,还是用方向键上下左右来移动,V 来选择,Y 来复制,Shift+V 是选择整行,就跟 Vim 的快捷键一样。最后是 Prefix+R,可以重新加载一下我的配置。
当然这些都是我用得顺手的快捷键,并不代表是你用得顺手的。所以我非常推荐各位朋友按照自己的需求,自己调整一下这些快捷键。调整起来很简单,只要问一下 AI 说“我想这样、我想那样”就可以了。我觉得现在真的没有必要吭哧吭哧搁那改了,纯属浪费时间。
总结与开源工具推荐
今天 TMUX 的视频就先说到这里,正好截止到了纯用 TMUX 来工作你需要的所有快捷键。像 TMUX、Neovim 这种软件,真的让你很难相信这是完全开源免费的软件,纯属是不用白不用。这么好的一个软件,真的想推荐给大家,希望大家可以抱着不用白不用的心态去尝试一下。
大家有什么问题,可以随时在评论区里面提出来。我会尽量看通知,虽然我不知道为什么我手机收不到评论的通知,但我尽可能去看一下,看看有哪些是可以解答的,我会尽量解答你们。今天的视频就先这样,我把配置的链接贴到视频底下。感谢各位观看,Peace。