会话管理
创建与连接
tmux # new session tmux new -s work # new named session tmux attach -t work # attach to session tmux attach -dt work # detach others, attach
会话命令
tmux ls列出所有会话
tmux kill-session -t work终止指定会话
tmux kill-server终止 tmux 服务器及所有会话
tmux rename-session -t old new重命名会话
Prefix d从当前会话断开
Prefix $重命名当前会话
Prefix s列出会话(交互式)

默认前缀键为 Ctrl-b

窗口
窗口快捷键
Prefix c创建新窗口
Prefix ,重命名当前窗口
Prefix &关闭当前窗口(需确认)
Prefix n切换到下一个窗口
Prefix p切换到上一个窗口
Prefix 0-9按编号切换窗口
Prefix w列出窗口(交互式选择)
Prefix l切换到上次活跃窗口
窗口命令
tmux new-window -t work # new window in session tmux swap-window -t 0 # move window to index 0 tmux move-window -t 3 # renumber to index 3
面板
分割与关闭
Prefix %水平分割(左 | 右)
Prefix "垂直分割(上 / 下)
Prefix x关闭当前面板(需确认)
Prefix !将面板拆分为独立窗口
Prefix z切换面板全屏(zoom)
调整面板大小
Prefix Ctrl-Arrow调整 1 格
Prefix Alt-Arrow调整 5 格
Prefix Space循环切换布局

布局:even-horizontal、even-vertical、main-horizontal、main-vertical、tiled

导航
在面板间移动
Prefix Arrow移动到指定方向的面板
Prefix o循环切换到下一个面板
Prefix q显示面板编号,按编号跳转
Prefix {与上一个面板交换
Prefix }与下一个面板交换
在会话间移动
Prefix (切换到上一个会话
Prefix )切换到下一个会话
Prefix s会话选择器(树形视图)
Prefix w跨所有会话的窗口选择器
复制模式
进入与导航
Prefix [进入复制模式
q退出复制模式
Arrow / hjkl移动光标(vi 模式)
Ctrl-u / Ctrl-d向上/向下翻页
g / G跳到顶部/底部
/向前搜索
?向后搜索
n / N下一个/上一个匹配
选择与复制
Space开始选择(vi 模式)
Enter复制选择并退出
Prefix ]粘贴缓冲区
v切换矩形选择(vi 模式)

启用 vi 模式:set -g mode-keys vi

配置
常用设置(~/.tmux.conf)
set -g mouse on # enable mouse set -g base-index 1 # windows start at 1 set -g renumber-windows on # renumber on close set -g default-terminal "tmux-256color" set -g history-limit 50000
重载配置
tmux source-file ~/.tmux.conf # from shell # or Prefix : then type: source-file ~/.tmux.conf
状态栏
状态栏选项
set -g status-position top set -g status-style "bg=black,fg=white" set -g status-left "[#S] " set -g status-right "%H:%M %d-%b" set -g status-interval 5
格式变量
#S会话名称
#I窗口编号
#W窗口名称
#P面板编号
#H主机名
#T面板标题
快捷键绑定
自定义绑定
# change prefix to Ctrl-a unbind C-b set -g prefix C-a bind C-a send-prefix # vim-style pane navigation bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R
绑定语法
bind X command将 Prefix + X 绑定到命令
bind -n M-Left prev无前缀绑定(Alt-Left)
bind -r H resize-pane -L 5可重复触发的绑定
unbind X移除绑定
Prefix ?列出所有当前快捷键绑定
脚本化
脚本布局
tmux new-session -d -s dev tmux send-keys -t dev "vim" Enter tmux split-window -h -t dev tmux send-keys -t dev "npm run dev" Enter tmux attach -t dev
常用命令
tmux send-keys -t sess 'cmd' Enter向会话发送按键
tmux capture-pane -p将面板内容打印到 stdout
tmux display-message '#S'显示消息/变量
tmux set-environment -g VAR val设置环境变量
tmux list-keys列出所有快捷键绑定
常用模式
推荐 ~/.tmux.conf
set -g mouse on set -g base-index 1 set -g mode-keys vi set -g status-position top set -g history-limit 50000 bind | split-window -h -c "#{pane_current_path}" bind - split-window -v -c "#{pane_current_path}"
实用技巧
SSH 断线保持tmux new -s work → 断开 → tmux attach -t work
共享会话双方都执行 tmux attach -t same(只读加 -r
保存滚动历史tmux capture-pane -S -3000 -p > log.txt
终止卡死面板Prefix x,或 tmux kill-pane -t %N
重排窗口顺序:swap-window -s 3 -t 1