Tmux使用指南
tmux使用指南
tmux快捷指令
tmux的所有指令,都包含同一个前缀,默认为Ctrl+b
,但两按键相隔甚远,推荐Ctrl+a
系统指令
前缀 | 指令 | 描述 |
---|---|---|
Ctrl + a | ? | 显示快捷键帮助文档 |
Ctrl + a | d | 断开当前会话 |
Ctrl + a | D | 选择要断开的会话 |
Ctrl + a | Ctrl+z | 挂起当前会话 |
Ctrl + a | r | 强制重载当前会话 |
Ctrl + a | s | 显示会话列表用于选择并切换 |
Ctrl + a | : | 进入命令行模式,此时可直接输入ls等命令 |
Ctrl + a | [ | 进入复制模式,按q退出 |
Ctrl + a | ] | 粘贴复制模式中复制的文本 |
Ctrl + a | ~ | 列出提示信息缓存 |
窗口指令(window)
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+a | c | 新建窗口 |
Ctrl+a | & | 关闭当前窗口(关闭前需输入y or n确认) |
Ctrl+a | 0~9 | 切换到指定窗口 |
Ctrl+a | p | 切换到上一窗口 |
Ctrl+a | n | 切换到下一窗口 |
Ctrl+a | w | 打开窗口列表,用于且切换窗口 |
Ctrl+a | , | 重命名当前窗口 |
Ctrl+a | . | 修改当前窗口编号(适用于窗口重新排序) |
Ctrl+a | f | 快速定位到窗口(输入关键字匹配窗口名称) |
面板指令(panel)
前缀 | 指令 | 描述 |
---|---|---|
Ctrl+b | “ | 当前面板上下一分为二,下侧新建面板 |
Ctrl+b | % | 当前面板左右一分为二,右侧新建面板 |
Ctrl+b | x | 关闭当前面板(关闭前需输入y or n确认) |
Ctrl+b | z | 最大化当前面板,再重复一次按键后恢复正常(v1.8版本新增) |
Ctrl+b | ! | 将当前面板移动到新的窗口打开(原窗口中存在两个及以上面板有效) |
Ctrl+b | ; | 切换到最后一次使用的面板 |
Ctrl+b | q | 显示面板编号,在编号消失前输入对应的数字可切换到相应的面板 |
Ctrl+b | { | 向前置换当前面板 |
Ctrl+b | } | 向后置换当前面板 |
Ctrl+b | Ctrl+o | 顺时针旋转当前窗口中的所有面板 |
Ctrl+b | 方向键 | 移动光标切换面板 |
Ctrl+b | o | 选择下一面板 |
Ctrl+b | 空格键 | 在自带的面板布局中循环切换 |
Ctrl+b | Alt+方向键 | 以5个单元格为单位调整当前面板边缘 |
Ctrl+b | Ctrl+方向键 | 以1个单元格为单位调整当前面板边缘(Mac下被系统快捷键覆盖) |
Ctrl+b | t | 显示时钟 |
会话 session
新建会话
新建一个tmux session
非常简单,语法为tmux new -s session-name
,也可以简写为tmux
,为了方便管理,建议指定会话名称,如下:
1 | tmux # 新建一个无名称的会话 |
断开当前会话
会话中操作了一段时间,我希望断开会话同时下次还能接着用,可以使用detach
命令。
1 | tmux detach # 断开当前会话 |
TODO: Ctrl+b + d
与Ctrl+b + z
区别
进入之前的会话
断开会话后,想要接着上次留下的现场继续工作,就要使用到tmux的attach
命令了,语法为tmux attach-session -t session-name
,可简写为tmux a -t session-name
或 tmux a
。通常我们使用如下两种方式之一即可:
1 | tmux a # 默认进入第一个会话 |
关闭会话
会话的使命完成后,一定是要关闭的。我们可以使用tmux的kill
命令,kill命令有
1 | kill-pane、kill-server、kill-session 和 kill-window共四种,其中kill-session的语法为tmux kill-session -t session-name。如下: |
查看所有的会话
管理会话的第一步就是要查看所有的会话,我们可以使用如下命令:
1 | tmux list-session # 查看所有会话 |
如果刚好处于会话中,可以使用对应的tmux快捷键Ctrl+b + s
,此时tmux将打开一个会话列表,按上下键或者鼠标滚轮,可选中目标会话,按左右键可收起或展开会话的窗口,选中目标会话或窗口后,按回车键即可完成切换。
灵活配置
开启鼠标支持
默认情况下,tmux的多窗口之间的切换以及面板大小调整,需要输入指令才能完成,这一过程,涉及到的指令较多,而且操作麻烦,特别是面板大小调整,指令难以一步到位,这个时候开启鼠标支持就完美了。
对于tmux v2.1(2015.10.28)之前的版本,需加入如下配置:
1 | setw -g mode-mouse on # 支持鼠标选取文本等 |
有的地方可能会出现set-window-option的写法,setw就是它的别名。
对于tmux v2.1及以上的版本,仅需加入如下配置:
1 | set-option -g mouse on # 等同于以上4个指令的效果 |
需要注意的是,开启鼠标支持后,iTem2默认的鼠标选中即复制功能需要同时按下 Alt 键,才会生效。
快速面板切换
鼠标支持确实能带来很大的便捷性,特别是对于习惯了鼠标操作的tmux新手,但对于键盘爱好者而言,这不是什么好消息,对他们而言,双手不离键盘是基本素质。
虽然指令前缀加方向键可以切换面板,但方向键太远,不够快,不够Geek。没关系,我们可以将面板切换升级为熟悉的h、j、k、l键位。
1 | # 绑定hjkl键为面板切换的上下左右键 |
-r表示可重复按键,大概500ms之内,重复的h、j、k、l按键都将有效,完美支持了快速切换的Geek需求。