tmux 使用技巧
1. 为什么你需要一个终端复用器
先说说我自己的经历。早年间我用终端干活,最头疼的就是两件事:一是本地开发到一半,SSH 连接一断,所有未保存的东西全没了;二是开了一堆终端窗口,切来切去自己都分不清哪个是哪个。后来同事甩给我一句话:用 tmux。当时我还不以为意,觉得不过是个窗口管理工具,能有多大本事。结果真正用顺了以后,我发现自己再也回不去了——现在只要是在命令行环境里干活,我第一件事永远是敲 tmux,这已经成了肌肉记忆。
tmux 是个终端复用器,英文叫 Terminal Multiplexer。它最核心的价值,就是让你在一个终端窗口里同时管理多个会话、多个窗口、多个面板,并且断线重连后所有东西都还在。听起来很简单,但实际用起来,它对工作流的改变是革命性的。举个最直观的场景:你在服务器上跑一个数据迁移脚本,可能要跑两三个小时,如果直接在 SSH 里跑,中途网络抖动一下,脚本就断了,搞不好还得重新来。但是放到 tmux 里,你完全可以退出 SSH、关上电脑,第二天再连回来,脚本照样在跑,输出照样在滚动。就冲这一点,tmux 就值得你花半小时学会。
这篇文章我不打算写成像 man 手册那样的枯燥文档,我会按照自己从入门到熟练的真实路径,把 tmux 的安装、核心概念、常用操作、个性化配置、进阶技巧,以及我踩过的一些坑,全部捋一遍。不管你是刚接触命令行的新手,还是已经用了一段时间但总感觉没吃透的老手,这篇应该都能给你一点有用的东西。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心概念与安装:这三层结构搞懂了就成功了一半
2.1 Session、Window、Pane 的关系
很多人学 tmux 觉得难,不是因为操作复杂,而是因为没搞明白它那套层级结构。tmux 的逻辑其实特别简单,就三个层级:会话(Session)、窗口(Window)、面板(Pane)。
你可以把整个 tmux 想象成一栋办公楼。办公楼的入口是一个会话,也就是你与 tmux 之间建立的一条连接通道,会话保留着你的所有工作现场。办公楼里有多个办公室,每个办公室就是一个窗口,相当于浏览器里的一个标签页,每个窗口里跑着不同的任务。而每个办公室里可以划分出好几个工位,每个工位就是一个面板,相当于把一块屏幕切成几块,每块跑一个独立的任务。
我打个比方你就懂了。你开了一个会话叫 work,这个会话里开了两个窗口,一个写代码,一个跑测试;写代码那个窗口里又分成了上下两块面板,上面是 vim,下面是实时预览。这就是 tmux 的完整结构。搞懂了这层关系,你再去看快捷键就不会晕:会话级的操作管开关、切换,窗口级的操作管新建、切换,面板级的操作管分割、调整大小。
2.2 安装 tmux 的几种方式
tmux 的安装非常简单,各个系统都有成熟的包管理器。我实测过的几种方式如下:
在 Debian / Ubuntu 系上装,命令是:
bash复制sudo apt install tmux
在 CentOS / RHEL 系上装:
bash复制sudo yum install tmux
在 macOS 上装,我一般用 Homebrew:
bash复制brew install tmux
这里需要特别提醒一下版本问题。tmux 的很多高级配置语法在不同版本之间是有差异的,早期的 2.x 版本和现在的 3.x 版本,配置命令略有不同。如果你用的系统自带的源版本比较老,我建议你优先考虑编译安装新版本,或者直接从 GitHub 拉最新的 release。我在生产环境上吃过大亏,辛辛苦苦写完一套配置,结果换到另一台版本老一点的机器上直接报语法错误,这种东西一踩一个准。
提示:装完先敲
tmux -V看一眼版本号,心里有数。3.0 以上和 2.x 的配置语法差距不小,网上的配置参考帖都要先看清版本再抄。
3. 基础操作:先从会话和窗口用起来
3.1 会话的创建、退出与重连
安装好之后,第一步就是新建一个会话。在终端里直接输入:
bash复制tmux new -s work
这里的 -s 参数是给会话起个名字,叫 work。实际工作中强烈建议给会话起能表达含义的名字,比如 dev、prod、monitor 之类的。不然你开了五六个无名的会话,连自己都分不清哪个是哪个,直接用 tmux ls 一列,全是数字编号,那画面太美我不敢看。
如果你不加 -s 参数直接敲 tmux new,tmux 会自动分配一个从 0 开始的编号。启动之后就进入 tmux 界面了,你会在屏幕底部看到一条绿色的状态栏,这就是 tmux 在告诉你:你现在在 tmux 里了。
在会话里干活干到一半,你想暂时退出,但又不想中断进程,这时千万别直接关终端,正确的做法是“脱离会话”,tmux 术语叫 detach。默认快捷键是:
bash复制Ctrl+b 然后按 d
按完这个组合键,你会回到普通的 shell 提示符,看起来好像“退出”了 tmux,但实际上 tmux 里的所有东西都还在后台好好地跑着。你可以关掉终端、可以拔掉网线,什么都不影响。
要重新连回这个会话,命令是:
bash复制tmux attach -t work
如果不记得会话叫什么名字了,先看列表:
bash复制tmux ls
这个命令会列出所有正在运行的会话。我日常用得最多的三个命令就是 new、ls、attach,全是 tmux 的命令行参数,不用进 tmux 内部操作,特别适合远程管理场景。
3.2 窗口的创建、切换与关闭
进入会话内部之后,你面对的第一个东西是一个空窗口。一个会话默认带一个窗口,你需要更多窗口来隔离不同的任务。
新建一个窗口的快捷键是:
bash复制Ctrl+b 然后按 c
这时你会看到底部状态栏多了一个标签。切换窗口有好几种方式,我习惯用 Ctrl+b 加数字键跳转到指定窗口,比如 Ctrl+b 1 切到 1 号窗口,Ctrl+b 2 切到 2 号窗口。如果窗口特别多,你可以用 Ctrl+b n 切到下一个窗口、Ctrl+b p 切到上一个窗口,来回翻找。
关闭窗口默认的快捷键是 Ctrl+d 或者输入 exit。关掉当前最后一个窗口时,整个会话就结束了,tmux 会进入 死掉 状态,这个要注意,别手滑把最后一个窗口关了。
我自己的习惯是:一个窗口专门跑编辑器写代码,一个窗口跑测试或者构建,一个窗口跑日志或者数据库客户端。这样三个窗口来回切,互不干扰,而且每个窗口的工作现场都是独立的,不像之前只开一个终端时那样,每次启动都要重新 cd 到目录、重新拉起命令。窗口的“现场保留”能力,是 tmux 最实用的地方之一。
3.3 快速掌握状态栏信息
tmux 默认的状态栏会展示不少有用的东西。从左到右依次是:当前窗口的会话名、窗口列表(带 * 号的是当前窗口,带 - 号的表示这个窗口里有活跃的输出)、以及系统时间。
刚接触 tmux 的时候,很多人盯着底部状态栏一头雾水,不知道该看什么。我的建议是先从窗口列表看起,搞清楚自己在哪个窗口,了解窗口编号和名称的关系。至于状态栏的自定义、显示 CPU 负载、显示电池电量这些花活,我放到后面配置章节再说。先能用起来,再去追求好用,这个顺序别反了。
4. 面板拆分:把一块屏幕用出多块屏幕的效果
4.1 垂直与水平拆分
面板(Pane)是 tmux 里最让人上瘾的一个功能。它让你不需要额外开窗口,就能在一块屏幕里同时看到多个终端的输出。比如你在写代码的时候想同时看日志,或者用 vim 改配置的时候想实时看效果,拆面板都比切窗口更直观。
拆分面板的快捷键是:
- 水平拆分成上下两块:Ctrl+b 然后按 "(双引号键)
- 垂直拆分成左右两块:Ctrl+b 然后按 %(百分号键)
这个键位初看有点奇怪,其实是有讲究的。双引号和百分号在英文键盘上正好分别对应上下和左右的形状,按一次就能记住。
面板之间切换焦点,最常用的快捷键是 Ctrl+b 加方向键,按上下左右切到你想去的那个面板。也可以用 Ctrl+b 加 o 在所有的面板之间轮流切换焦点。
关闭当前面板的快捷键是 Ctrl+d,和关闭窗口一样。如果一个窗口里只有一个面板,那关闭面板就相当于关闭窗口,两者是联动的。
4.2 面板调整大小
面板拆出来之后,大小可能不理想,比如左边要留大一点看输出,右边只留一个小面板放输入。调整面板大小的方法有很多,我推荐的做法是进入“布局调整模式”:
bash复制Ctrl+b 然后按 Ctrl+方向键
按住 Ctrl 键反复按方向键,当前面板的边缘就会朝那个方向移动,直到你觉得大小合适了再松开。
如果你不想手动调,也可以用 tmux 自带的预设布局快速切换,快捷键是:
bash复制Ctrl+b 然后按 空格键
每按一次空格,tmux 会在几个经典布局之间轮换:水平并列、垂直并列、主区域加侧栏等。效率很高,不用自己一点点调。真正常用之后,你会发现几个预设布局基本够用了,偶尔个别面板需要微调,再进入调整模式手动推一下。
注意:调整面板大小的时候,tmux 要求窗口内的面板已经形成足够空间才会执行。如果面板已经太小,按了方向键会“哔”地响一声,这是 tmux 在提示你没有空间可调了。遇到这种情况,先把某个面板关掉,再重新调。
4.3 面板与窗口的选择
有个问题我经常被问到:什么时候用面板,什么时候用窗口?我的理解是,窗口解决的是“多任务并行”的问题,面板解决的是“同一任务多视角”的问题。写代码加实时预览用面板,跑构建加看日志也适合用面板;但如果是完全独立的两件事,比如一个在开发服务器上调试,一个在写文档,这种就建议开两个窗口。
面板拆得太多也有坏处。屏幕就那么大,切得太碎,每个面板都会变得非常窄,代码一行显示不完,反而影响效率。我见过有人一块屏幕切成 6 个面板的,看了一圈下来除了咋舌没有别的感觉。保持克制,两个到三个面板是最舒服的,四个已经是上限了。
5. 数据保存与恢复:关机重启也不怕丢现场
5.1 为什么 tmux 能扛住断线
这是 tmux 最核心的价值所在,也是很多人对它路转粉的瞬间。它的原理其实说起来很简单:tmux 本身是一个服务端-客户端架构的程序。你敲 tmux 命令进入之后,看到的界面是一个客户端连接到了 tmux 服务端上,你的所有任务实际上跑在服务端,由 tmux 这个后台进程管理。当你关闭终端界面,你只是断开了“客户端”这个显示层,服务端还在后台继续运行。
这种架构和很多人的直觉是相反的。通常我们开终端,进程是我们终端程序的子进程,终端一关,进程被杀。但是 tmux 反过来了,tmux 服务端是独立于你的终端而存在的。所以即便 SSH 断开、网络断掉、电脑合盖,只要 tmux 服务端所在的机器还在运行,你的任务就不会中断。
5.2 tmux 服务与手动清理
有时候你没注意,开了一堆 tmux 会话,时间一长服务端越来越多,资源占用你都不知道。这时你可以用 tmux ls 查看所有会话,然后逐个关掉不需要的。关会话的命令,可以直接在 tmux 里敲 exit 退出完,也可以在 shell 里用:
bash复制tmux kill-session -t work
如果你想杀掉所有会话,直接:
bash复制tmux kill-server
这个命令要慎用,会一次性结束所有 tmux 管理下的进程。我不止一次在想着“清理一下”的时候手滑敲了这个命令,然后才意识到当前正在跑的一个重要任务也被带走了。血的教训,建议你平时先用 ls 看清楚再动手。
5.3 使用插件实现现场恢复
tmux 原生的能力是保留正在运行的进程,但是如果你重启了电脑,整个 tmux 服务端都没了,那之前的窗口和面板布局也就随烟云散。这种场景下,你会发现一个非常好用的插件叫 tmux-resurrect,它能保存当前的会话、窗口、面板布局,以及每个面板里正在运行的命令。重启之后,一条命令就能恢复整个工作现场。
安装 tmux-resurrect 需要你有一个插件管理器,我在这里推荐 TPM(Tmux Plugin Manager),用起来非常顺手。安装方式不复杂,在 ~/.tmux.conf 里加一行配置,然后按快捷键重新加载一下即可。具体我的配置在后面统一列出来。
有些人对“保存现场”有更高的要求,连 vim 打开的文档、终端里的环境变量都要恢复,那可以再配一个 tmux-continuum,它会在固定时间间隔自动保存,重启后自动恢复。对于长期在命令行环境工作的人来说,这俩插件组合起来,基本就实现“永不丢失”的工作流了。
6. 进阶玩法:复制模式、脚本自动化与多人在线协作
6.1 复制模式的正确打开姿势
用 tmux 之前,你是用鼠标选中终端文本就能复制,进入 tmux 之后,你会发现鼠标的选取行为变了——你要是直接拖选,可能会把终端的操作历史都选进去,非常奇怪。这是因为 tmux 有专门的复制模式,你要在里面选文本、复制、粘贴。
进入复制模式的方式是:
bash复制Ctrl+b 然后按 [
进入之后,屏幕右上角会提示当前处于复制模式。你这时可以用方向键移动光标,也可以直接用 vi 风格按键,比如 h、j、k、l 来移动。选中文本的方法是:先按空格键开始选中,移动光标到你想要的末尾,再按空格结束选中,此时文本会自动复制到 tmux 的粘贴缓冲区。
退出复制模式按 q 或者 Enter 就行。粘贴的方式是:
bash复制Ctrl+b 然后按 ]
这套操作逻辑有点类似 vim 的可视模式,如果你平时用 vim,上手会特别快。如果你实在不适应,也可以在配置里开启鼠标支持,之后就能用鼠标选择文本了,选中后进入复制模式再退出,效果也还行。但说实话,真正用熟了键盘方式之后,鼠标反而是累赘。
6.2 用脚本快速搭建工作流
tmux 的高阶用法里,脚本化是提升效率最猛的一招。你可以把平时固定要开启的多个窗口、多个面板写成一段 bash 脚本,每次一键拉起整个工作流,哦这感觉太顺滑了。
我举一个自己的真实例子。我平时写项目时,固定要开三个窗口:一个跑 vim,一个跑构建脚本,一个跑日志。原来我每次都要手动敲命令、建窗口、切面板,几十秒就耗掉了。后来我把这套流程写成了脚本:
bash复制#!/bin/bash
tmux new-session -d -s dev -n editor
tmux send-keys -t dev:editor 'cd ~/project && vim .' C-m
tmux new-window -t dev -n build
tmux send-keys -t dev:build 'cd ~/project && npm run build' C-m
tmux new-window -t dev -n logs
tmux send-keys -t dev:logs 'cd ~/project && tail -f logs/app.log' C-m
tmux select-window -t dev:editor
tmux attach -t dev
第一行创建一个名为 dev 的会话,第一个窗口叫 editor。第二条 send-keys 就是往 editor 窗口里发送按键,C-m 是回车。后面依葫芦画瓢,创建窗口、发送命令。最后一行把焦点切回 editor 窗口,然后 attach 进去。这个脚本我用了很久,每次开工只要执行一下,所有环境就绪,比手工操作强太多了。
send-keys 这个命令特别强大,你甚至可以把它写成一个定制化工具,一键拉起一组机器上的多个 tmux 会话,批量执行要跑的命令。配合循环语句,你能做到很多你平时想都没想过的事。
6.3 tmux 的多人在线协作功能
tmux 还有一个隐藏得很深但很有意思的功能:多人共享一个会话。它的原理是 tmux 允许多个客户端连接到同一个会话上,并且默认情况下,所有人都能看到同样的画面,谁都可以输入命令。
这个功能在什么场景下有用?比如你要远程教一个新手操作,两个人连到同一个会话里,他做什么操作你都能实时看到,出了问题你能立刻接手纠正。再比如团队调试问题的时候,几个人一起盯同一个日志输出,非常直观。
开启方式也很简单:
bash复制tmux attach -t shared_session
另一台机器上(如果权限允许)也执行同样的命令,两个人就连到了同一个会话里。不过要提醒一句:同一会话里多人同时输入,会互相干扰,所以协作时最好有一个人主导,其他人围观。另外,要控制好权限,别让不相关的人随便连上来。
7. 配置定制:让你的 tmux 更顺手
7.1 基础配置项
tmux 默认的配置够用,但不够顺手。直接使用默认配置的人,往往会遇到一个比较大的槽点:前缀快捷键 Ctrl+b 离字母键太远,小拇指按起来特别别扭。我第一个改的就是这个,换成 Ctrl+a 或者反引号 `。
修改方式是在 ~/.tmux.conf 文件里加上一行:
bash复制set -g prefix C-a
修改之后记得重新加载配置,让新配置生效:
bash复制tmux source-file ~/.tmux.conf
还有一项我很早启动的配置是开启鼠标支持:
bash复制set -g mouse on
开启之后,你可以用鼠标滚动面板历史、点击切换窗口面板、拖动调整面板大小。对从图形界面转来的新手极其友好,学习曲线瞬间平缓了不少。
设置窗口和面板索引从 1 开始也是一件很重要的配置。tmux 默认索引从 0 开始,但我总是觉得不太符合人类直觉,尤其是在按数字键切窗口的时候,我老是分不清 0 是哪个。改成从 1 开始之后,就彻底舒服了:
bash复制set -g base-index 1
setw -g pane-base-index 1
把这两行加进去,窗口编号和面板编号就都从 1 开始了。
7.2 状态栏美化与信息定制
tmux 默认的绿色状态栏虽然不难看,但肯定算不上好看。你要是想让状态栏更顺眼一点,可以改它的样式。我这里给一个简洁但不失实用的配置,把当前窗口高亮成蓝色,并显示窗口的索引、名称和标志:
bash复制set -g status-style bg=color235,fg=color250
set -g window-status-current-style bg=color33,fg=color15
set -g window-status-format ' #I:#W '
set -g window-status-current-format ' #I:#W* '
这里的 color235、color250 都是 tmux 的颜色代号,你可以按照自己的喜好调。我个人的精神状态已经和蓝色深度绑定,所以状态栏的主色就是蓝的。平时只顾着看有没有告警输出,不追求花里胡哨。
如果想把系统信息加到状态栏,比如 CPU 负载、内存占用,可以在配置里加上:
bash复制set -g status-right 'CPU: #{cpu_icon} #{cpu_percentage} Mem: #{ram_percentage} %H:%M'
不过要注意,CPU 和 RAM 的变量需要 tmux 3.1 以上的版本才支持,而且依赖系统有特定的统计文件。低版本 tmux 如果用了这些变量,状态栏会直接显示空。所以抄配置前先看版本,这句话我会在每一篇相关文章里反复说。
7.3 推荐一套生产可用的配置文件
说了那么多零碎的配置,我把自己的 tmux 配置整体放出来。这套配置在我的几台工作机器上用了大半年,稳定可靠,也不会花里胡哨影响效率:
bash复制# 基础设置
set -g prefix C-a
unbind C-b
set -g base-index 1
setw -g pane-base-index 1
set -g mouse on
# 延迟设置,让各快捷键响应更快
set -sg escape-time 10
# 状态栏样式
set -g status-style bg=color235,fg=color250
set -g window-status-current-style bg=color33,fg=color15
set -g status-right '#(whoami)@#H %H:%M'
# 窗口快捷键重新映射
unbind c
bind c new-window -c '#{pane_current_path}'
unbind '"'
bind v split-window -h -c '#{pane_current_path}'
bind s split-window -v -c '#{pane_current_path}'
# 面板切换快捷键
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R
这套配置里有几个细节值得说下。unbind c 然后 bind c 重新定义了新建窗口的行为,加上了 -c '#{pane_current_path}',意思是新窗口自动切换到当前面板所在的目录,这就省去了每次新建窗口后都要重新 cd 一遍的麻烦。分割面板的 v 和 s 也是同理。
select-pane 的映射让我可以用 Ctrl+a 加 h/j/k/l 直接切换面板,体验顺滑且直觉,和 vim 的移动键一致。为什么是 h/j/k/l?和 vim 的肌肉记忆对齐,靠这个我可以完全不用看方向键。这个配置强烈推荐给使用 vim 的人。
8. 常见问题与排查技巧实录
8.1 能 ping 通但 SSH 不进去怎么办
这个问题发生在 SSH 连接服务器时,是很常见的一个场景。你用 tmux 在服务器上跑着重要任务,突然 SSH 断了,然后你尝试重连,卡在登录界面半天进不去。排插思路很重要。
首先别慌,先确认服务器本身是否正常。如果 SSH 是超时没响应,可以考虑是不是网络层的连接卡住了,等个一分钟重试一次,因为 TCP 重连往往会等待超时后才能释放旧连接。如果过一会能进去了,进入 tmux attach 的时候发现会话还在,任务也还在跑,那就说明 tmux 起到了该起的作用。
如果 SSH 一直进不去,那就要考虑是不是进程太多导致负载过高。我在生产环境遇到过由于某个脚本跑数据量太大,把 CPU 全部吃满,导致 SSH 响应极慢的情况。这种情况只能从外部重启或者等待任务结束,别无他法。平时给任务套个 tmux 虽然不能避免负载高,但至少任务不会被 SSH 断线干扰。
注意:SSH 断线之后,tmux 里面的任务确实能继续运行,但它无法解决所有问题。比如运行一个耗时很长的下载程序,下载本身没问题,但如果脚本里有一步需要等待用户键盘输入,这步会一直等你回来,不会自己跳过。
8.2 复制粘贴失灵是 tmux 的锅还是终端模拟器的锅
很多人在 tmux 里遇到复制粘贴不生效的问题,大概率是因为终端模拟器(比如 iTerm2、Windows Terminal)有自己的剪切板,tmux 有自己的剪切板,两边的粘贴内容对不上。比如你在 iTerm2 里复制了文本,进入 tmux 里直接按 Ctrl+v 往往粘贴不了,因为 tmux 拦截了键盘输入。
解决办法就是明确两者的范围:在 tmux 里用 tmux 复制模式,在终端层用终端快捷键。开启鼠标模式之后,鼠标选中通常会直接复制到系统剪切板,比较接近图形界面的习惯。如果你用的终端支持高亮选中自动复制,那可以做到“鼠标选中即复制”的效果,这个体验很好。
如果你需要在 tmux 里直接把内容复制到系统剪切板,建议在配置里加一个 y 键绑定,调用系统剪贴板:
bash复制bind y run-shell -b "tmux show-buffer | pbcopy"
这是 macOS 的写法。Linux 下可以把 pbcopy 换成 xclip 或者 xsel。这样在 tmux 复制模式下选中内容之后,按 Ctrl+b y 就把内容复制到系统剪切板了。
8.3 快捷键冲突时如何改前缀
tmux 的默认前缀 Ctrl+b 在绝大多数终端里都不会冲突,但我遇到过一些特殊终端软件,比如某些 IDE 内置终端会保留 Ctrl+b 做其他用途,导致 tmux 的前缀被吞掉。这个场景下最好换个前缀键,我用的是 Ctrl+a。但 Ctrl+a 也有个副作用,它会覆盖 shell 里的“回到行首”快捷键,想用 Ctrl+a 跳行首的人会很难受。可以退而求其次用 Ctrl+空格 或者反引号。
改前缀之后,别忘了一个关键操作:要让配置生效,可以在 tmux 里用:
bash复制Ctrl+a : source-file ~/.tmux.conf
输入这条命令才会立即让新前缀生效,否则你需要退出所有会话再重进。第一次改前缀的时候,我忘了重新加载,按下新前缀没反应,还以为配置写错了,排查了半天才发现是没 source,这种小事说出来都是泪。
8.4 进程意外退出的排查思路
如果你发现 tmux 会话里的某个进程不在了,先别认定是 tmux 的问题。判断的方法是:重新开一个普通终端跑同样的命令,看是否正常。如果普通终端也退出,说明是程序自身的问题,比如内存不足被系统杀掉、或者代码里有个未捕获的异常导致崩溃。
如果只有在 tmux 里才出现,那大概率是终端尺寸变化引起的。tmux 对终端的尺寸感知比较敏感,当你从一个很大的终端窗口 attach 到一个已经存在的会话时,面板的布局可能会发生重排,某些对终端尺寸有要求的程序(比如全屏编辑器)可能因此报错退出。解决办法是,在 attach 之前先设置好终端窗口的大小,或者使用 tmux 的重新布局命令 Ctrl+b 空格 让面板重新适应新尺寸。
9. 我的几点心得
用 tmux 这几年,我的体会是:它真正的价值不在于让你“看起来很酷”,而在于让你拥有一种“工作现场永不丢失”的安全感。以前我开十几个终端窗口,桌面乱得不堪入目,换个项目还要重新整理一遍;现在不管开多少任务,都是一个 tmux 会话搞定,切换、恢复、重建都是秒级完成,心里踏实多了。
如果你刚开始接触 tmux,我的建议很简单:先别急着配一堆插件和花哨状态栏,把这个工具在你日常工作流里用起来。首先养成会话管理和面板拆分的习惯,等自然感觉到某些操作重复烦琐了,再慢慢加配置和脚本。工具是为人服务的,千万别本末倒置,花了过多精力在打磨工具上,正事反而被耽误了。
最后一个实用小技巧:把你常用的 tmux 工作环境写成脚本,保存到一个固定目录并做成可执行文件。这样换新机器、新环境时,只要把这个目录同步过去,一条命令就能复现你原来习惯的所有布局和任务。我用这个办法迁移过两次工作环境,每一次都是丝般顺滑,省了太多重复搭建的时间。
