我的tmux使用手册
基础概念
-
Session:用来概括一个任务,是一组窗口的集合。通过在任务开始前创建一个Session,在该Session中进行任务,之后通过断开Session来暂时中断任务,此时与任务相关的状态都会保存在这个Session,通过重新连接Session可以方便的继续未完成的任务。Session最大的作用就是持久的保存工作状态。
-
Window:单个窗口,一个Session可以包含多个Window。tmux中Window的概念与Chrome或Vim的Tab页类似。
-
Pane:单个Window可以进一步划分成小块的Pane,tmux中的Pane类似与Vim中使用split划分出的窗口。
常用命令
tmux - 创建一个不指定名字的Session
tmux new -s <session-name> - 创建指定名字为<session-name>的Session
tmux ls - 查询所有Session
tmux detach - 断开Session(需要使用快捷键命令输入)
tmux a - 快速连接所有Session中的第一个Session(`a`即`at`, `attach`)
tmux a -t <session-name> - 重新连接Session
tmux kill-session -t <session-name> - 关闭Session
常用快捷键
在tmux中使用的快捷键需要一个
Session
s 列出Session
$ 重命名Session
d 断开Session
Window
c 创建新的Window
, 重命名当前Window
w 列出所有Window
& 关闭Window
n 选择下一个Window
p 选择上一个Window
0~9 切换到 0~9 对应的Window
'<#index> 选择窗口编号超过 2 位数的窗口(比如 '10,代表切换到编号为 10 的窗口)
Pane
% 创建一个竖直Pane
" 创建一个水平Pane
q 显示Pane的编号
o 在Pane中切换
{ 与上一个Pane交换位置
} 与下一个Pane交换位置
z 切换Pane大小为整个Window
! 显示当前Pane在新的Window中
Misc
? 帮助信息
t 显示时间
: 命令输入
拷贝
<prefix> [ 进入复制模式
<prefix> ] 粘贴
移动光标到要复制的区域,移动光标时可用vim的搜索功能"/","?" 按空格键开始选择复制区域,选择完成后安enter键退出
配置
-
生效方式:重启or使用
<prefix>:+source-file/path/to/conf -
建议通过一个配置文件保存,方便管理:vimerzhao/dotfiles
修改前缀
set -gu prefix2
unbind C-j
unbind C-b
set -g prefix C-j
bind C-j send-prefix
我比较喜欢用C-j。
修改快捷键
unbind '"'
bind - splitw -v -c '#{pane_current_path}'
unbind %
bind | splitw -h -c '#{pane_current_path}'
平分面板的快捷键实在太偏僻了。
最佳实践
保存tmux会话:
参考
| [Tmux使用手册 | louis blog](http://louiszhai.github.io/2017/09/30/tmux/) |
|---|
-
tmux Productive Mouse-Free Development