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-1 … M-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 |