Skip to content

Tmux 配置与常用操作

Tips

tmux 更新后需要 kill all session ,否则会得到open terminal failed: not a terminal的错误

配置文件

~/.tmux.conf

  • tmux 配置中-a表示appen,-g表示global
  • set = set-option ,setw = set-option -w = set-window-option
  • set-window-option used to allow-rename, mode-keys, synchronize-panes, etc.

sattusbar

bash
# set-letft Will result in ‘foobar’
set -g status-left "foo"
set -ag status-left "bar"

escape-time

  • set-option -g escape-time 50

终端标准 VT220 下面,所有光标,功能键都是一系列以 ESC 字符(ascii 码 0x1b)开头的字符串,使用showkey -a 查看 设置为 0 可以解决 ESC 键延迟,但当 SSH 连接时,tmux中判断功能键和 ALT+字符会经常失效,设置为 50 毫秒即可解决

tmux color setting

  • default-terminal

default-terminal选项填入tmux内你想要的终端类型,一般为tmux-256color or screen-256color,优先tmux-256color,某些设备不支持tmux-256color时使用screen-256color

bash
set-option -g default-terminal "tmux-256color"
set-option -g default-terminal "screen-256color"
  • terminal-features

terminal-features选项填入没有启用tmux时的终端类型,即echo $TERM的结果,一般为alacritty 、xterm-kitty 、xterm-256color等

bash
set-option -a terminal-overrides ",xterm-256color:RGB"
set-option -a terminal-features ',alacritty:RGB'
set-option -a terminal-overrides ",xterm-ghostty:RGB"
# 通配符启用所有终端 RGB
set-option -a terminal-features '*:RGB'
bash
# 兼容老版本 tmux(< 3.2) 使用 terminal-overrides + Tc:
set-option -a terminal-overrides ",alacritty:Tc"
set-option -a terminal-overrides ",XXX:Tc" # XXX means Term kind

Shortcuts & Command

NOTE

命令可以Ctrl b :后执行,如 :rename-session [-t current-name] [new-name]

tmux ls 不会显示session编号

Session

cmdDescription
tmux new -s name新建 session
tmux attach -t name连接 session
tmux ls列出所有 session
Ctrl b + d分离当前 session
Ctrl b + s列出当前 session
Ctrl b + $重命名 session
bash
tmux new -s <session-name>
tmux detach
tmux ls or tmux list-session
tmux attach -t 0 or <session-name>
tmux kill-session -t 0 or <session-name>
tmux switch -t 0 or <session-name>
tmux rename-session -t 0 <new-name>

Window

cmdDescription
Ctrl b + c新建win
Ctrl b + nnext
Ctrl b + ppre
Ctrl b + number选择 window
Ctrl b + w列出 window
Ctrl b + ,重命名
bash
tmux new-window
# 新建一个指定名称的窗口
tmux new-window -n <window-name>

# 切换到指定编号的窗口
tmux select-window -t <window-number>
# 切换到指定名称的窗口
tmux select-window -t <window-name>

tmux rename-window <new-name>

Pane

cmdDescription
Ctrl b + onext pane
Ctrl b + ;pre pane
Ctrl b + !以当前窗口新建 win
Ctrl b + z全屏当前 pane ,再次使用复原
Ctrl b + q显示窗格编号
Ctrl+b {当前窗格与上一个窗格交换位置。
Ctrl+b }当前窗格与下一个窗格交换位置。
Ctrl+b Ctrl+o所有窗格向前移动一个位置,第一个窗格变成最后一个窗格
Ctrl+b Alt+o所有窗格向后移动一个位置,最后一个窗格变成第一个窗格
Ctrl b + %竖分屏
Ctrl b + "横分屏
Ctrl b + xclose
Ctrl b + arrowfocus
bash
tmux split-window
tmux split-window -h/-v

 光标切换到上方窗格
tmux select-pane -U
# 光标切换到下方窗格
tmux select-pane -D
# 光标切换到左边窗格
tmux select-pane -L
# 光标切换到右边窗格
tmux select-pane -R

 # 当前窗格上移
tmux swap-pane -U
# 当前窗格下移
tmux swap-pane -D

Other

cmdDescription
Ctrl b+[start copy-mode(q:quit)
bash
# 列出所有快捷键,及其对应的 Tmux 命令
tmux list-keys
# 列出所有 Tmux 命令及其参数
tmux list-commands
# 列出当前所有 Tmux 会话的信息
tmux info
# 重新加载当前的 Tmux 配置
tmux source-file ~/.tmux.conf

Last updated: