使用 tmuxp 可以很好的帮助我们来管理 tmux 的会话(session),解决了平时在使用 tmux 工具时候的痛点。
1. 工具介绍
安装和使用都非常简单
事实上,tmuxp
也是一个构建于 tmux
之上的对象关系映射的 ORM
的 API
工具,就是利用 tmux
工具定义的窗格(pane)、窗口(windows)和会话(session),以创建关联视图的 Server
, Session
, Window
, Pane
对象。我们在使用的时候,可以使用 YAML
, JSON
以及 dict
字配置项来启动我们配置好的窗口和面板。使用时候需要注意的是,只支持 tmux>=1.8
的版本。
- 简洁的语法
- 都支持在单独的命令中使用简短标记
- 加载会话
- 都是根据配置文件中加载
tmux
会话(session
)
- 都是根据配置文件中加载
- 多种格式支持
- 可以使用
YAML
,JSON
以及dict
字配置项
- 可以使用
1 | # 只有这一种安装方式 |
1 | # 简洁的语法配置 |
2. 使用方式
只需要记住 load 这个一个命令其实就够了
tmuxp
工具将配置文件保存在 ~/.tmuxp
中或在项目目录下作为 ~/.tmuxp.{yaml,json}
独立出现。当然我们也可以使用其提供的命令,进行会话的相关操作和使用。下来就让我们一起去看看,如何使用吧!
- [1] 加载会话(Load session)
- Load a tmux workspace from each CONFIG.
1 | # 使用方式 |
1 | # 通过配置文件路径加载 |
- [2] 冻结会话(Freeze sessions)
- Snapshot a session into a config.
1 | # 使用方式 |
1 | # 为tmux布局、窗格路径和窗口/会话名称创建快照 |
- [3] 配置转换
- Convert a tmuxp config between JSON and YAML.
1 | # 使用方式 |
1 | # 可以互相转换JSON/YAML格式 |
- [4] 配置导入
- Import a teamocil/tmuxinator config.
1 | # 使用方式 |
3. 面板窗口配置
主要介绍 tmux 面板的切分、启动目录、索引设定等操作
- [1] 两个窗格(2 split panes)
- 分割出两个窗格
1 | session_name: 2-pane-vertical |
1 | session_name: 2-pane-vertical-long |
- [2] 三个窗格(3 panes)
1 | session_name: 3-panes |
- [3] 四个窗格(4 panes)
1 | session_name: 4-pane-split |
- [4] 空白窗格(Blank panes)
- 直接可以使用 ‘null, ‘blank’, ‘pane’ 中任何一个,即可创建空白窗格
1 | session_name: Blank pane test |
- [5] 启动目录(Start Directory)
- 设置起始目录
- 等价于
tmux new-window -c <start-directory>
命令
1 | session_name: start directory |
- [6] 窗口索引
- 定义窗口索引,就是我们在使用时候用来切换窗口时使用
1 | session_name: Window index example |
4. 面板窗口设置
工具系统方法的一些配置
- [1] 环境变量
- 在
tmuxp
中设置会话环境变量
- 在
1 | session_name: Environment variables test |
- [2] 定制主面板高度(Main pane height)
- 根据实际使用情况,设置主面板的高度
1 | session_name: main-pane-height |
- [3] 终端历史
- 用于配置是否需要记录终端命令历史
1 | session_name: suppress |
- [4] 窗口选项
- 创建窗格后设置窗口选项
- 在创建过程中在每个窗格中执行单个命令后,对于“同步窗格”选项很有用
1 | session_name: 2-pane-synchronized |
- [5] 设置选项
- 设置
tmux
工具相关的选项,例如全局(服务器范围)选项、会话选项和窗口选项 - 包括
automatic-rename
,default-shell
,default-command
等相关命令
- 设置
1 | session_name: test window options |
- [6] 自动重命名(Automatic Rename)
- 即可以自动命令创建的面板名称
1 | session_name: test window options |
- [7] 专注模式
- 在专注模式中,可以确保在加载时附加和选择窗口和窗格
1 | session_name: focus |
5. 测试开发配置
主要介绍在我们实际开发和测试当中应该如何使用该工具
- [1] 定制高级开发环境
- 作为开发环境时候的相关配置
1 | session_name: tmuxp |
- [2] 自动引导
- 新版本
1.3.4
:在脚本 CWD 进入根(会话)级启动目录之前
- 新版本
1 | # 假设您的.tmuxp.yaml位于项目的根目录中 |
1 | # 假设您的.tmuxp.yaml位于项目的根目录中 |
6. 配置示例文件
这里就是其他人使用该工具的配置文件,可以借鉴和引用
- laixintao
1 | session_name: workspace |
- vcspull
1 | session_name: vcspull |
- dockerfiles
1 | session_name: docker |
- sphinxcontrib
1 | session_name: sphinxcontrib-github |
本文转载自:「 Escape 的博客 」,原文:https://tinyurl.com/y5zsckzv,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。