简明速查

Tmux 快捷键 & 速查表 & 简明教程 #

tmux 2.3 及以上

点击查看大图

一、会话(Sessions) #

1.1 shell 下操控会话 #

操作 Shell 命令
新建会话 tmux [new -s 会话名 n 窗口名]
删除会话 tmux kill-session -t 会话名
恢复会话 tmux at [-t 会话名]
列出所有会话 tmux ls
关闭所有会话 tmux kill-server

1.2 tmux 中控制会话、切换会话 #

操作 Tmux 命令
会话重命名 :rename-session [新会话名]
新建会话 :new<回车>
离开(detach)当前会话 Ctrl+b d
列出所有会话 Ctrl+b s
重命名当前会话 Ctrl+b $
前往上一个会话 Ctrl+b (
前往下一个会话 Ctrl+b )
预览会话及其从属的窗口 Ctro+b w

前置命令(PREFIX CMD):Ctrl+b,在 Tmux 中,按下 Tmux 前置命令,然后输入相应的指令完成操作,有点类似于 vim 中使用 esc 切换到命令模式。

二、窗口(Windows) #

操作 Tmux 命令
创建新窗口 Ctrl+b c
后一个窗口 Ctrl+b n
前一个窗口 Ctrl+b p
根据编号切换窗口 Ctrl+b 0..9
切换到最后一个窗口 Ctrl+b l
查找窗口 Ctrl+b f
重命名当前窗口 Ctrl+b ,
关闭当前窗口 Ctrl+b &

调整窗口排序

1
2
3
swap-window -s 3 -t 1  # 交换 3 号和 1 号窗口
swap-window -t 1       # 交换当前和 1 号窗口
move-window -t 1       # 移动当前窗口到 1 号

三、窗格/面板/分割窗口(Panes) #

3.1 切分、交换 #

操作 Tmux 命令
垂直分割 Ctrl+b %
水平分割 Ctrl+b "
交换窗格 Ctrl+b o
关闭窗格 Ctrl+b x
左边这个符号代表空格键 - 切换布局 Ctrl+b ⍽
显示每个窗格是第几个,当数字出现的时候按数字几就选中第几个窗格 Ctrl+b q
与上一个窗格交换位置 Ctrl+b {
与下一个窗格交换位置 Ctrl+b }
切换窗格最大化/最小化 Ctrl+b z

3.2 同步窗格 #

这么做可以切换到想要的窗口,输入 Tmux 前缀和一个冒号呼出命令提示行,然后输入:

1
:setw synchronize-panes

你可以指定开或关,否则重复执行命令会在两者间切换。 这个选项值针对某个窗口有效,不会影响别的会话和窗口。 之后再次执行命令来关闭。 帮助

3.3 调整窗格尺寸 #

Tmux 支持重调窗格的尺寸,以下几个命令用来调整窗格:

PREFIX : resize-pane -D          当前窗格向下扩大 1 格
PREFIX : resize-pane -U          当前窗格向上扩大 1 格
PREFIX : resize-pane -L          当前窗格向左扩大 1 格
PREFIX : resize-pane -R          当前窗格向右扩大 1 格
PREFIX : resize-pane -D 20       当前窗格向下扩大 20 格
PREFIX : resize-pane -t 2 -L 20  编号为 2 的窗格向左扩大 20 格

四、文本模式(文本搜索模式、文本复制模式) #

按下 PREFIX-[ 进入文本复制模式。可以使用方向键在屏幕中移动光标。默认情况下,方向键是启用的。在配置文件中启用 Vim 键盘布局来切换窗口、调整窗格大小。Tmux 也支持 Vi 模式。要是想启用 Vi 模式,只需要把下面这一行添加到 .tmux.conf 中:

1
setw -g mode-keys vi
  1. 如果需要搜索文本,进入文本模式后,输入 / 后填入需要搜索的内容,键入 Enter 开始搜索,`n/N`` 分别控制下一个/上一个
  2. 如果需要复制文本,进入文本模式后,正常使用 vi 的选中、复制命令,完成后会车,键入 PREFIX-] 即可完成粘贴

注意,Tmux 默认使用的是 emacs 编辑方式。

启用这条配置后,就可以使用 h、j、k、l 来移动光标了。

想要退出文本复制模式的话,按下回车键就可以了。然后按下 PREFIX-] 粘贴刚才复制的文本。

一次移动一格效率低下,在 Vi 模式启用的情况下,可以辅助一些别的快捷键高效工作。

例如,可以使用 w 键逐词移动,使用 b 键逐词回退。使用 f 键加上任意字符跳转到当前行第一次出现该字符的位置,使用 F 键达到相反的效果。

vi             emacs        功能
^              M-m          反缩进
Escape         C-g          清除选定内容
Enter          M-w          复制选定内容
j              Down         光标下移
h              Left         光标左移
l              Right        光标右移
L                           光标移到尾行
M              M-r          光标移到中间行
H              M-R          光标移到首行
k              Up           光标上移
d              C-u          删除整行
D              C-k          删除到行末
$              C-e          移到行尾
:              g            前往指定行
C-d            M-Down       向下滚动半屏
C-u            M-Up         向上滚动半屏
C-f            Page down    下一页
w              M-f          下一个词
p              C-y          粘贴
C-b            Page up      上一页
b              M-b          上一个词
q              Escape       退出
C-Down or J    C-Down       向下翻
C-Up or K      C-Up         向下翻
n              n            继续搜索
?              C-r          向前搜索
/              C-s          向后搜索
0              C-a          移到行首
Space          C-Space      开始选中
               C-t          字符调序

五、杂项 #

描述 cmd
窗口中央显示一个数字时钟 Ctrl+b t
列出所有快捷键 Ctrl+b ?
进入命令行模式 Ctrl+b :

六、常见问题 #

6.1 tmux 窗口自动变更名字 #

  1. tmux.conf 里面更改
1
2
set-window-option -g automatic-rename off
set-option -g allow-rename off
  1. bashrc 里面更改:
1
DISABLE_AUTO_TITLE=true

reference:

  1. Tmux Cheat Sheet & Quick Reference
  2. everthing you need to know about tmux panes