tmux是一个终端多路转换器(multiplexer),它支持在同一个screen内创建、访问和控制多个终端。tmux可以从screen中被拆解,并在后台继续保持运行,一旦你有需要的时候,可以重新把它装配回screen($ tmux attach)。

相关概念

  • screen(屏幕):你当前运行的终端。有点像 Emacs 的一个 client 。
  • window(窗口):tmux 的一个实例。有点像 Linux 的虚拟桌面,或者 Awesome 的标签。
  • pane(窗格):一个 window 可以被切分成多个部分,这又有点像 Emacs 的 window。
  • session(会话):用于连接和管理 window 的进程。每个会话可以和多个 window 绑定,一旦结束全部会话,tmux 也随之终止。

一个 screen 里可以打开多个 window (每次只能显示一个),每个 window 里可以打开多个 pane 。对 window 的管理通过 session 来进行。

下面列举一些 tmux 默认的快捷键:

tmux 管理

快捷键 功能
C-b 在终端中触发 tmux 快捷键
C-z 中止一个 tmux 的 client
: 启动 tmux 命令提示符
D 选择一个 client 并 detach 它
d detach 当前的 client
? 列举所有快捷键
~ 显示 tmux 的上一条信息(如果有的话)
r 强制重绘当前的 client
t 展示时间

window 管理

快捷键 功能
c 创建一个新 window
0..9 切换到某一 window (注意 window 的编号是从 0 开始的)
n 切换到下一个 window
p 切换到上一个 window
l 切换到上一个被选中的 window
& 关闭当前 window
' 交互式切换到用户指定的 window
. 移动当前 window(即改变其编号)
, 交互式重命名 window
w 交互式选择 window
M-1M-5 切换布局:even-horizontal,even-vertical,main-horizontal,main-vertical 以及 tiled
i 显示关于当前 Window 的一些信息

pane管理

快捷键 功能
" 将当前 pane 分割成上下两个 pane
% 将当前 pane 分割成左右两个 pane
o 切换到当前 window 的下一个 pane
; 切换到上一次激活的 pane
Up, Down, Left, Right 切换到上方、下方、左侧、右侧的 pane
x 关闭当前 pane
q 显示每个 pane 的编号
{ 互换当前 pane 和上一个 pane
} 互换当前 pane 和下一个 pane
C-Up, C-Down, C-Left, C-Right 改变当前 pane 的大小,步长为一个单位
M-Up, M-Down, M-Left, M-Right 改变当前 pane 的大小,步长为五个单位
! 移动当前 pane 到另一个 window

文本管理

快捷键 功能
f 交互式在多个 window 中查找文本
# 列举剪贴板中的所有内容
= 交互式从剪贴板中选择并粘贴
- 删除最近复制到剪贴板的内容
[ 进入 copy 模式,以复制文本或查看历史
] 粘贴最近复制的文本
Page Up 进入 copy 模式,并向上滚动一页

session管理

快捷键 功能
$ 重命名当前session
s 交互式的为当前装配的client选择一个新session
L 将当前装配的client移动回上一个session

Comments