从零开始配置一个高效的Tmux工作环境

4 人参与

我第一次在远程服务器上打开 tmux,恰好碰上网络掉线,屏幕瞬间变成一片空白。那一刻我心里暗暗想:要是能把会话锁进硬盘,哪怕掉线也能安然恢复就好了。于是,我决定从零把 tmux 打造成我的「终端指挥中心」,把它当成日常开发的第二块显示屏。

准备工作:装好 tmux

在大多数 Linux 发行版里,tmux 已经在官方仓库。只要一行 sudo apt-get install tmux(Debian/Ubuntu)或 brew install tmux(macOS),就能把它装进系统。装好后,敲 tmux -V 确认版本,看到类似 tmux 3.3a 的输出,说明已经可以玩了。

基本配置:让 tmux 更懂我

我把所有配置都写进 ~/.tmux.conf,省得每次手动敲键。下面这几行是我的必备:

# 使用 256 色
set -g default-terminal "screen-256color"

# 前缀键改成 Ctrl‑a(和 screen 更亲近)
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# 鼠标支持,滚动更顺手
set -g mouse on

# 状态栏美化
set -g status-bg colour235
set -g status-fg colour136
set -g status-left "#[fg=green]#S"
set -g status-right "#[fg=yellow]%Y-%m-%d %H:%M"

改完保存,执行 tmux source-file ~/.tmux.conf 让配置立即生效。切换前缀键后,我再也不用记住 C‑b,直接按 C‑a 就能打开所有快捷键,手感像回到 screen 那一年。

常用快捷键:把窗口当成画布

  • C‑a "  水平分屏
  • C‑a %  垂直分屏
  • C‑a o  在窗格间循环焦点
  • C‑a c  新建窗口
  • C‑a n / C‑a p  前后切换窗口
  • C‑a d  分离会话(断开而不关闭)

有了这些键,我可以在同一个终端里同时跑代码编辑、日志监控、单元测试,根本不需要再打开多个 tab。

插件加持:让 tmux 更像 IDE

tmux 本身已经够强大,但配几个插件后,它几乎能和 VS Code 的终端面板媲美。我常用的插件有:

  • tmux-plugins/tpm——插件管理器,装完后 Ctrl‑a I 一键安装所有插件。
  • tmux-resurrect——会话、窗格、布局一键保存/恢复,掉线后只要 Ctrl‑a R 就能把所有窗口拉回来。
  • tmux-continuum——自动保存会话,每 15 分钟写入磁盘,配合 resurrect 简直是“永不掉线”。

把这些插件写进 ~/.tmux.conf,示例代码如下:

# TPM (Tmux Plugin Manager)
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'
set -g @plugin 'tmux-plugins/tmux-continuum'

# 自动保存会话
set -g @continuum-restore 'on'
set -g @continuum-save-interval '15'

# 绑定快捷键
bind R run-shell ~/.tmux/plugins/tmux-resurrect/scripts/restore.sh
bind S run-shell ~/.tmux/plugins/tmux-resurrect/scripts/save.sh

保存后 Ctrl‑a I 安装,几分钟搞定。以后即使服务器宕机,我也只需要重新 SSH,然后 tmux attach -t mysession,所有分屏、日志、REPL 都原封不动。

实战案例:一键切换前后端调试

我在做前后端联调时,常常需要同时跑 npm run devdocker-compose uptail -f log.txt。去年我写了一个小脚本 dev.tmux,只要在项目根目录敲 tmux new -s dev -f dev.tmux,就会自动打开四个窗格:

# dev.tmux
new-session -d -s dev
split-window -h "npm run dev"
split-window -v "docker-compose up"
split-window -v "tail -f log.txt"
select-pane -t 0

执行完后,我的终端立刻变成了「前端+后端+日志」的实时监控面板,省掉了手动打开四个 tab 的时间,大约 30 秒的准备工作直接压缩成 2 秒的敲命令。

从最初的「只会开会话」到现在的「插件+脚本全自动」,tmux 已经成为我日常工作中不可或缺的「指挥塔」。如果你还在用单窗口敲命令,赶紧试试上面这套配置,保证你会爱不释手——毕竟,效率的提升往往只差这么一步。

参与讨论

4 条评论
  • 深蓝创想

    这个配置真的省事儿

  • Dragon龙魂

    tmux-resurrect 在 macOS 上需要额外权限吗?

  • 紫云端

    前几天我在服务器掉线后,直接用 tmux-resurrect 恢复,所有窗口都在,省了半天手工重开,真是救命 👍

  • 幽巷独步

    鼠标滚动太灵敏,有点抖