tmux 实战指南:安装、优化、美化与开发场景快捷键

tmux 实战指南:安装、优化、美化与开发场景快捷键

如果你平时开终端已经开习惯了,但还没有系统用过 tmux,这篇文章可以带你把安装、常用操作、基础配置和开发里的实际用法走一遍。

我第一次认真开始用 tmux,其实也不是为了什么“效率工具体系”,就是因为几个很实际的问题:SSH 断了进程不能丢,服务挂在前台终端不能关,一个项目里同时看日志、跑测试、改代码,来回切窗口也确实烦。

tmux 本质上就是把这些问题一起解决掉。它没什么花里胡哨的东西,但只要你开始习惯一个项目固定一个 session,后面基本就回不去了。


1. tmux 到底适合什么场景

我自己觉得 tmux 最适合下面这几类场景:

  • 长时间运行任务,比如开发服务器、测试、部署脚本
  • 远程开发,比如 SSH 到云服务器、NAS、家里的主机
  • 一个项目里需要同时盯多个终端内容,比如日志、构建、Git、数据库
  • 想把终端工作流固定下来,下次一进来就接着干

如果你平时只有偶尔开一个终端跑命令,那 tmux 不一定是刚需;但如果你经常同时开三四个终端窗口,tmux 基本值得花半小时认真配置一下。


2. 安装 tmux

先装,再确认版本。

1
2
3
4
5
6
7
8
9
# macOS
brew install tmux

# Ubuntu / Debian
sudo apt update
sudo apt install tmux

# CentOS / Rocky / AlmaLinux
sudo dnf install tmux

安装完成后,先看版本:

1
tmux -V

如果输出类似下面这样,就说明已经装好了:

1
tmux 3.6a

我这里顺手提一句:截至 2026-04-07,tmux 官方 Wiki 和 GitHub Releases 看到的稳定版是 3.6a。不过实际使用时最重要的不是追新,而是别太老。后面如果你要用 popup、主题插件或者更顺手的复制体验,再决定要不要升级也不迟。


3. 先搞懂 3 个核心概念

tmux 一开始最容易把人绕晕的,就是下面这 3 个词:

  • session:一个会话,你可以理解为一个项目的一整套工作区
  • window:会话里的窗口,差不多可以理解成标签页
  • pane:窗口里的分屏

你可以把它想成这样:

1
2
3
4
5
6
7
8
tmux
└── session: blog
├── window 1: editor
│ ├── pane 1: Claude Code / Shell
│ └── pane 2: pnpm run server
└── window 2: debug
├── pane 1: tail -f logs
└── pane 2: git status

你先不用死记定义,知道它们大概分别对应“项目”“标签页”“分屏”就够用了,后面边用边熟。


4. 最小可用命令集

先别急着配主题,先把最基本的工作流跑通。

4.1 创建和进入会话

1
2
# 新建一个名为 dev 的会话
tmux new -s dev

如果你已经在 tmux 里,还可以直接新建后台会话:

1
tmux new -ds dev

4.2 查看已有会话

1
tmux ls

4.3 重新连接会话

1
tmux attach -t dev

4.4 离开但不关闭

在 tmux 里按:

1
Ctrl+B 然后按 d

这一步非常关键。很多人第一次用 tmux,最爽的地方就是这里。你离开了,但里面跑着的服务、日志、命令都还在。

4.5 关闭会话

1
tmux kill-session -t dev

5. 我平时最常用的一组快捷键

tmux 默认前缀键是 Ctrl+B。也就是说,很多操作都是先按一次 Ctrl+B,再按后面的键。

下面这张表,基本就是我自己平时最常按的一批:

操作 快捷键
新建窗口 Ctrl+B, c
下一个窗口 Ctrl+B, n
上一个窗口 Ctrl+B, p
水平分屏 Ctrl+B, "
垂直分屏 Ctrl+B, %
在分屏之间切换 Ctrl+B, 方向键
关闭当前 pane Ctrl+B, x
临时离开会话 Ctrl+B, d
进入复制/滚动模式 Ctrl+B, [
重命名窗口 Ctrl+B, ,
显示 pane 编号 Ctrl+B, q

如果你只打算先记一组快捷键,就先记这张表。


6. 我自己的基础配置

等你把基础命令用过两天,就会开始嫌默认配置不够顺手。这时候可以上自己的 ~/.tmux.conf

下面这份配置可以直接当起点,不复杂,但已经足够顺手:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 终端与颜色
set -g default-terminal "tmux-256color"
set -as terminal-overrides ",*:RGB"

# 体验优化
set -sg escape-time 0
set -g history-limit 50000
set -g mouse on
set -g focus-events on

# 编号从 1 开始
set -g base-index 1
setw -g pane-base-index 1
set -g renumber-windows on

# 更喜欢 Ctrl+A 做前缀
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# 新窗口/分屏保留当前目录
bind c new-window -c "#{pane_current_path}"
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"
unbind '"'
unbind %

# Vim 风格切 pane
bind h select-pane -L
bind j select-pane -D
bind k select-pane -U
bind l select-pane -R

# 调整 pane 大小
bind -r H resize-pane -L 5
bind -r J resize-pane -D 5
bind -r K resize-pane -U 5
bind -r L resize-pane -R 5

# 复制模式用 vim 键位
setw -g mode-keys vi

# 如果终端支持 OSC 52,同步系统剪贴板会更自然
set -g set-clipboard on

# 重新加载配置
bind r source-file ~/.tmux.conf \; display-message "tmux.conf reloaded"

改完后执行:

1
tmux source-file ~/.tmux.conf

或者在 tmux 里按你刚绑定的:

1
Ctrl+A, r

这份配置主要就是解决下面几个问题:

  • 分屏后保留当前目录,不用每次重新 cd
  • hjkl 切 pane,比默认键位更顺手
  • 鼠标、滚动历史、窗口编号这些默认体验更合理
  • 前缀改成 Ctrl+A,很多人会比 Ctrl+B 更顺

7. 美化:先装 TPM,再上主题

tmux 美化最省心的方式,通常是配合 TPM 使用。

7.1 安装 TPM

1
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

然后把 TPM 放到 ~/.tmux.conf 最后:

1
2
3
4
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'

run '~/.tmux/plugins/tpm/tpm'

进入 tmux 之后,按下面这个快捷键安装插件:

1
prefix + I

如果你的前缀键已经改成了 Ctrl+A,那这里就是 Ctrl+A, I

7.2 用 Catppuccin 做主题

这套主题现在挺常见的,也比较稳。官方 README 目前更推荐手动安装,因为 TPM 方案可能会遇到插件命名冲突;不过如果你本身就是用 TPM 统一管插件,那直接走 TPM 也完全够用了。

在插件列表里加上:

1
2
3
set -g @plugin 'catppuccin/tmux#v2.1.3'
set -g @catppuccin_flavor 'mocha'
set -g @catppuccin_window_status_style 'rounded'

如果你想顺手把状态栏也做得更完整一点,可以再加:

1
2
3
4
5
6
set -g status-right-length 100
set -g status-left-length 100
set -g status-left ""
set -g status-right "#{E:@catppuccin_status_application}"
set -ag status-right "#{E:@catppuccin_status_session}"
set -ag status-right "#{E:@catppuccin_status_uptime}"

再执行一次:

1
Ctrl+A, I

7.3 Nerd Font 记得装

如果状态栏图标显示成方块,问题一般不在 tmux,而在终端字体。最省事的做法是安装一个 Nerd Font,比如:

  • JetBrainsMono Nerd Font
  • FiraCode Nerd Font

然后在你的终端工具里把字体切过去。


8. 我平时是怎么用 tmux 的

我自己现在最看重的,其实不是 tmux 能分屏,而是它能把一个项目的终端工作流固定下来。

8.1 一个我自己常用的布局

1
2
3
4
5
6
7
8
┌─────────────────────────┬──────────────────┐
│ │ │
│ 主工作面板 │ 开发服务器 │
│ 写代码 / 跑命令 │ pnpm run dev │
│ │ │
├─────────────────────────┼──────────────────┤
│ Git / 文件查看 │ 测试 / 日志 │
└─────────────────────────┴──────────────────┘

这个布局搭起来很快:

1
2
3
4
5
6
7
8
9
10
11
12
tmux new -s blog

# 右侧分屏
Ctrl+A, |

# 左下分屏
Ctrl+A, h
Ctrl+A, -

# 右下分屏
Ctrl+A, l
Ctrl+A, -

然后每个 pane 里我一般这么放:

1
2
3
4
5
6
7
8
9
10
11
# 主 pane
nvim

# 右上
pnpm run server

# 左下
git status

# 右下
pnpm test

8.2 SSH 断开也不怕

这个场景我觉得是 tmux 最值钱的地方之一。

比如你在远程机器上跑服务:

1
2
3
ssh user@server
tmux new -s api
pnpm run server

这时网络断了也没关系,重新连上去之后:

1
2
ssh user@server
tmux attach -t api

你会回到刚才那个现场。

8.3 用 copy mode 看长日志

终端输出很多的时候,tmux 的复制模式很好用:

1
Ctrl+A, [

进入之后,如果你启用了 mode-keys vi,就可以直接用这些键:

  • j / k:逐行移动
  • Ctrl+u / Ctrl+d:半页滚动
  • /:向前搜索
  • n / N:下一个/上一个匹配
  • q:退出复制模式

看测试输出、构建日志、部署日志的时候,这个真的很好用。

8.4 popup 很适合放临时任务

如果你的 tmux 版本比较新,可以试试 display-popup。这个功能很适合临时开一个命令,不打断当前布局。

比如:

1
tmux display-popup -w 80% -h 80% -E lazygit

或者:

1
tmux display-popup -w 70% -h 70% -E btop

这类能力在老版本 tmux 上可能不可用,所以如果你执行报错,先看下 tmux -V


9. 几个最容易踩的坑

9.1 复制了,但系统剪贴板里没有

这个问题我觉得很多人第一次都会遇到。通常不是 tmux “坏了”,而是终端、剪贴板工具、OSC 52 这条链路没打通。

可以优先按这个思路排查:

  • 先确认你用的终端是否支持 OSC 52
  • 已经开启 set -g set-clipboard on
  • macOS 可以考虑配合 pbcopy
  • Linux 常见是 xclipxsel

如果你经常在远程机器上用 tmux,这一块尤其容易踩坑。

9.2 颜色不对,主题发灰

这个时候我建议你先看下面这两项:

1
2
set -g default-terminal "tmux-256color"
set -as terminal-overrides ",*:RGB"

如果终端本身没有开启真彩色支持,主题效果也会打折。

9.3 分屏后总是回到 home 目录

这个也很常见。原因就是你新建 pane 或 window 的时候,没有显式继承当前路径。前面配置里的:

1
-c "#{pane_current_path}"

就是专门解决这个问题的。

9.4 系统源里的 tmux 太老

很多 Linux 发行版默认仓库里的 tmux 版本都不算新。如果你发现主题装不上、popup 不支持、某些参数报错,第一反应先别怀疑配置,先看版本。


10. 一个适合日常开发的工作流

如果你刚开始用 tmux,我建议就按下面这个节奏来:

1
2
3
4
5
1. 每个项目固定一个 session
2. 一个主窗口负责写代码 / 跑 agent
3. 一个窗口负责日志和测试
4. 需要离开时只 detach,不直接关
5. 第二天直接 attach 回来继续

配合命令大概就是这样:

1
2
3
4
5
6
7
8
# 第一次进入项目
tmux new -s myproject

# 临时离开
Ctrl+A, d

# 第二天继续
tmux attach -t myproject

等你习惯之后,再慢慢加插件、主题、popup、会话恢复这些能力。tmux 最怕的不是配置少,而是一上来抄一大坨配置,结果每一行都不知道自己在改什么。

我自己的感觉是,tmux 真正值钱的地方不是分屏本身,而是你今天做到一半离开,明天回来还能从原来的地方继续干。


参考资料:

以上。完结撒花 🎉!


tmux 实战指南:安装、优化、美化与开发场景快捷键
https://blog.wenxin.site/2026/04/07/tmux实战指南/
作者
HarryMa
发布于
2026年4月7日
许可协议