Tmux 入门
基础概念
会话(session)
- CTRL + b -> d:分离(detach)会话,内部运行的任务会保存在后台
- CTRL + b -> D:选择要分离的会话
tmux ls
:列出当前所有会话tmux attach -t 0
:连接到序号为 0 的会话tmux new -s <name>
:创建一个设置了名字的会话tmux rename-session -t 0 <new_name>
:重命名已有会话tmux kill-session -t <session_name>
:移除会话
窗格(pane)
- 输入
tmux
:开启默认会话 - CTRL + b -> %:拆分左右窗格
- CTRL + b -> ":拆分左右窗格
- CTRL + b -> arrow key:窗格之间导航
- CTRL + d:关闭当前窗格,关闭所有窗格后窗口就会消失
- 输入
窗口(window):类比为 Mac 可以创建多个桌面
- CTRL + b -> c:创建新窗口
- CTRL + b -> p|n:窗口之间导航
自定义
终端与配色
启用 256 色与真彩支持,确保 Neovim/主题颜色正常。
bash
set -g default-terminal "tmux-256color"
set -ag terminal-overrides ",xterm-256color:RGB"
前缀键与发送前缀
作用:将前缀改为 C-a
(默认 C-b
被取消)。
使用:
前缀:按
C-a
。向程序发送字面
C-a
:快速连按两次C-a
(第一次作为前缀,第二次触发 send-prefix)
bash
set -g prefix C-a
unbind C-b
bind-key C-a send-prefix
分屏、重载、调整与缩放
分屏
水平(左右):
Prefix + |
垂直(上下):
Prefix + -
重载配置:
Prefix + r
(不重启 tmux 生效改动)面板尺寸微调(每次 5 单位):
Prefix + h/j/k/l
面板缩放(全屏/还原切换):
Prefix + m
在当前 pane 目录新起一个 tmux 客户端:
Prefix + M-c(Alt/Option + c)
bash
unbind %
bind | split-window -h
unbind '"'
bind - split-window -v
unbind r
bind r source-file ~/.tmux.conf
bind j resize-pane -D 5
bind k resize-pane -U 5
bind l resize-pane -R 5
bind h resize-pane -L 5
bind -r m resize-pane -Z
bind M-c attach-session -c "#{pane_current_path}"
鼠标与复制模式(Vi 风格)
鼠标:开启点击选择、滚轮滚动、拖拽分隔条调整大小。
复制模式按键为 Vi:
进入复制模式:
Prefix + [
(tmux 默认)开始选择:
v
复制:
y
退出:
q
或Enter
鼠标拖选后不自动退出复制模式(方便继续操作)。
escape-time 10:降低 ESC 处理延迟,优化 Neovim 返回普通模式的手感。
bash
set -g mouse on
set-window-option -g mode-keys vi
bind-key -T copy-mode-vi 'v' send -X begin-selection # start selecting text with "v"
bind-key -T copy-mode-vi 'y' send -X copy-selection # copy text with "y"
unbind -T copy-mode-vi MouseDragEnd1Pane # don't exit copy mode when dragging with mouse
set -sg escape-time 10
其他
重载配置:
Prefix + r
安装插件:
Prefix + I
Resurrect 保存/恢复:
Prefix + C-s / Prefix + C-r