正在加载,请稍候…

tmux:终端复用器精通指南

掌握 tmux,管理多个终端会话、窗口和面板。学习必备快捷键、配置和脚本,打造高效的终端工作流。

tmux:终端复用器精通指南

tmux:终端复用器精通指南

tmux 让你可以运行多个终端会话,在 SSH 断开后保持进程运行,并创建有序的工作区。

安装与启动

# 安装
brew install tmux        # macOS
apt install tmux         # Ubuntu

# 启动新会话
tmux new -s mysession

# 附加到现有会话
tmux attach -t mysession

# 列出会话
tmux ls

tmux:终端复用器精通指南插图

常用快捷键(前缀 = Ctrl+b)

会话:
  prefix + d    分离会话
  prefix + $    重命名会话
  prefix + s    列出/切换会话

窗口(标签页):
  prefix + c    创建新窗口
  prefix + ,    重命名窗口
  prefix + n    下一个窗口
  prefix + p    上一个窗口
  prefix + &    关闭窗口
  prefix + 0-9  按编号切换窗口

面板(分割):
  prefix + %    垂直分割
  prefix + "    水平分割
  prefix + 方向键 在面板间导航
  prefix + z    放大/还原面板
  prefix + x    关闭面板
  prefix + {    向左移动面板
  prefix + }    向右移动面板

tmux:终端复用器精通指南插图

配置(~/.tmux.conf)

# 将前缀改为 Ctrl+a
unbind C-b
set -g prefix C-a
bind C-a send-prefix

# 启用鼠标
set -g mouse on

# 更好的颜色
set -g default-terminal "screen-256color"
set -ga terminal-overrides ",*256col*:Tc"

# 窗口从 1 开始编号(而非 0)
set -g base-index 1
setw -g pane-base-index 1

# Vi 模式
setw -g mode-keys vi
bind -T copy-mode-vi v send-keys -X begin-selection
bind -T copy-mode-vi y send-keys -X copy-selection-and-cancel

# 便捷分割
bind | split-window -h -c "#{pane_current_path}"
bind - split-window -v -c "#{pane_current_path}"

# 状态栏
set -g status-style 'bg=#333333 fg=#5eacd3'
set -g status-left '#[bold]#S '
set -g status-right '#(date +"%H:%M")'

tmux:终端复用器精通指南插图

使用 tmux 编写脚本

#!/bin/bash
# 创建开发环境
tmux new-session -d -s dev -n editor

tmux send-keys -t dev:editor "nvim ." Enter

tmux new-window -t dev -n server
tmux send-keys -t dev:server "npm run dev" Enter

tmux new-window -t dev -n git
tmux send-keys -t dev:git "git status" Enter

tmux select-window -t dev:editor
tmux attach -t dev

复制模式(回滚)

prefix + [       进入复制模式
q                退出复制模式
/                向前搜索
?                向后搜索
v                开始选择(vi 模式)
y                复制选择内容
prefix + ]       粘贴

TPM(插件管理器)

# 安装 TPM
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# 添加到 .tmux.conf
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-resurrect'  # 保存/恢复会话
set -g @plugin 'tmux-plugins/tmux-continuum'  # 自动保存

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

tmux 对于远程服务器工作和本地多项目开发至关重要。