tmux 基础
普通模式
进入 tmux 后的正常的模式,大部分的操作都在普通模式下完成。
快捷键
tmux 的一些快捷键(省略Prefix),如果存在相同功能的原生按键,则会说明原生按键是什么。如果存在对原生按键的修改,则会在备注说明原生按键的作用。当前使用配置的前缀键为 C-a
。
窗格相关
按键 | 原生按键 | 命令 | 作用 | 备注 |
---|---|---|---|---|
h/j/k/l | 方向键 | select-pane -(L/D/U/R) | 切换到上下左右的窗格 | 窗格是循环的,到顶后再往上就会落到最下面 |
H/J/K/L | C-方向键 | resize-pane -(L/D/U/R) 1 | 调整窗格大小 | 原生按键可能会和系统按键冲突 |
|/- | “/% | split-window -(h/v) | 水平或垂直分割当前窗格 | |
x | kill-pane | 销毁当前窗格 | ||
z | resize-pane -Z | 最大化当前窗格 | 再按一次取消最大化 | |
! | break-pane | 将当前窗格分离到一个新的窗口中 | ||
; | last-pane | 回到上次使用窗格 | 只能跳回当前窗口内的上衣次使用的窗格。 如果是从其他窗口的窗格跳过来的是没法跳回去的 |
|
m | select-pane -m | 标记窗格 | 一次只能标记一个 对于(当前/标记)的窗格会有(高亮/阴影)提示。 只有一条横线左边代表上面窗格。 只有一条竖线上面代表左边窗格 |
|
M | select-pane -M | 取消窗格标记 | 重复一次Prefix-m 也可以取消标记 |
|
g | swap-pane | 标记窗格与当前窗格互换位置 | ||
q | display-panes | 显示窗格的序号和大小 | ||
o | select-pane -t :.+ | 按照窗格序号跳到下一个窗格 | ||
c-o | rotate-window | 旋转移动窗格 | ||
{/} | swap-pane -(s|D) | 当前窗格与(前/后)一序号窗格互换 | 序号也会随之互换 | |
空格 | next-layout | 调节当前窗格的布局 | ||
E | select-layout -E | 将当前窗格水平均匀分布 | ||
c-s | set-window-option synchronize-panes | 配置各个窗格间同步输入 | ||
Q | clear && tmux clear-history | 清空窗格缓冲区内容,包括滚动条 | ||
f | find-window | 根据内容查找窗格 |
窗口相关
按键 | 原生按键 | 命令 | 作用 | 备注 |
---|---|---|---|---|
c | new-window | 创建新的窗口 | ||
& | kill-window | 关闭当前窗口 | ||
数字 | select-window -t :=2 | 跳到对应数字的窗口 | ||
n | next-window | 跳到下一个窗口 | ||
w | choose-tree -Zw | 进入树模式 | ||
‘ | select-window -t :2 | 跳到对应下标窗口 | ||
. | move-window | 移动窗口到指定下标 | ||
, | rename-window | 重命名窗口 | ||
i | display-message | 显示窗口信息 | ||
~ | show-messages | 显示刚才的按键提示 | ||
b | last-window | 跳到最近活跃的窗口 | ||
G | swap-window | 标记窗口与当前窗口互换位置 |
会话相关
按键 | 原生按键 | 命令 | 作用 | 备注 |
---|---|---|---|---|
s | choose-tree -sZ -O name | 显示会话列表 | 自定义为按照名称排序 | |
( | switch-client -p | 上一个会话 | ||
) | switch-client -n | 下一个会话 | ||
B | switch-client -l | 跳到上一个活跃会话 | ||
d | 断开当前会话的关联 | |||
D | choose-client -Z | 进入客户端模式 | ||
$ | rename-session test-kqf | 修改会话名称 |
会话没有索引,但是有名称,名称是必须且唯一的,默认按照创建先后排序,可以自定义按照 会话名称排序
其他快捷键
按键 | 原生按键 | 命令 | 作用 | 备注 |
---|---|---|---|---|
r | 重新载入配置文件 | |||
/ | 显示指定按键的绑定命令 | |||
: | 进入命令行模式 | |||
? | 显示快捷键列表 | |||
C | 显示配置列表 | |||
t | 显示时钟 | |||
< | 显示窗口相关的右键提示 | 类似于鼠标右键的功能 | ||
> | 显示窗格相关的右键提示 | |||
F | 保存会话信息 | 使用插件实现 | ||
R | 恢复会话信息 | 使用插件实现 |
使用标记
mark 标记附加在窗格及其父窗口上面,用于对窗格或者窗口进行快速操作。例如,标记窗格与当前窗格快速互换,标记窗口和当前窗口快速互换。
理解窗口符号
窗口名字的右边有些情况下会带上符号用于显示终端状态的状态栏,支持以下符号:
1 | Symbol Meaning |
可以配置是不是显示这部分内容 set -wg window-status-format "#I:#W#F"
配置为 Index:WindowName Flag; 如果flag太多影响专注的话可以删除 #F
命令行模式
命令行模式可以实现快捷键的所有操作,类似于把快捷键的按键重新输入一遍:
1 | :neww -t 8 -d -n winname # 指定下标为 8 并且 不设置为当前活动窗口(后台新建) 命名为 winname |
缓冲区模式
进入缓冲区模式后进行复制粘贴相关的操作,例如这里复制指定内容 git status
快捷键
按键 | 原生按键 | 命令 | 作用 | 备注 |
---|---|---|---|---|
[ | 进入复制模式 | |||
v | 空格 | 开始选择 | ||
Enter | 复制选择内容并退出复制模式 | |||
y | 复制选择内容 | |||
p | ] | 粘贴剪贴板内容 | 原生按键为上一个窗口 | |
o | 切换选择方向 | |||
q | 退出缓冲区模式 | |||
# | list-buffer | 显示buffer列表 | show-buffer 只显示一条 | |
= | choose-buffer | 从buffer列表中选择内容 |
复制过程按住 Shift 然后便能使用鼠标进行复制粘贴,如果使用vi 的模式 可以在选择的过程中使用vi的各种快捷键 包括 j w e b / :
等
树模式
树模式可以用于快速预览并跳转到指定窗格,也可以用于批量操作窗口或窗格
快捷键如下:
按键 | 作用 | 备注 |
---|---|---|
上下左右(hjkl) | 上下移动目标会话,左右收起展开会话 | |
t | 给目标打上标签 | 打上标签的会在索引后面带上*, 注意与前面名称后面的符号区分开 |
T | 取消所有标签 | |
c-t | 标记所有目标 | |
x | 快速关闭目标 | |
X | 关闭有标签的目标 | |
<|> | 在预览内容太多一屏放不下的时候左右移动 | |
O | 改变排序方式 | |
r | 反向排序 | |
v | 预览目标 | |
Enter | 选中目标 | |
m | 标记目标 | |
M | 取消标记 | |
: | 对打标记的目标执行操作 | |
c-s | 查找目标 | |
n | 再次触发查找 |
控制树模式的键不需要前缀。
客户端模式
和树模式类似的,目前使用场景有限暂不研究
配置文件参考
1 | ################################ 全局设置 |