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