tmuxp
tmuxp 是一个 tmux 终端复用器的会话管理器。与 tmuxinator 或 teamocil 相比。
安装
安装 tmuxp 软件包。
配置
tmuxp 接受 JSON 和 YAML 两种配置。YAML 标记语言类似于 tmuxinator。
你可以将配置放在任何目录中,并通过以下 3 种方式访问它们
- 通过绝对或相对文件路径
tmuxp load file
,tmuxp load ../myconfig
- tmuxp 会检查
$XDG_CONFIG_HOME/tmuxp
(通常是$HOME/.config/tmuxp
) 和$TMUXP_CONFIGDIR
路径 (默认为$HOME/.tmuxp
) 中的文件。里面的文件可以通过文件名加载,例如tmuxp load basename
。因此$HOME/.tmuxp/myconfig.yaml
可以通过tmuxp load myconfig
加载。 - 通过项目或目录中的
.tmuxp.yaml
(这样你可以将配置存储在 VCS 的每个项目/文件夹中。然后tmuxp load path/to/dir
一个包含 4 个窗格的 YAML 配置示例
session_name: 4-pane-split windows: - window_name: dev window layout: tiled shell_command_before: - cd ~/ # run as a first command in all panes panes: - shell_command: # pane no. 1 - cd /var/log # run multiple commands in this pane - ls -al | grep \.log - echo second pane # pane no. 2 - echo third pane # pane no. 3 - echo forth pane # pane no. 4
tmuxp 还能够在通过 before_script
构建 tmux 会话之前运行任意脚本。在这个例子中,来自 tmuxp 项目本身,一个 引导脚本 运行,它为项目创建一个 virtualenv (python 包环境) 并安装依赖包。此外,会话配置所有窗格以获取项目的 virtualenv
session_name: tmuxp start_directory: ./ # load session relative to config location (project root). before_script: ./bootstrap_env.py # ./ to load relative to project root. windows: - window_name: tmuxp focus: True layout: main-horizontal options: main-pane-height: 35 shell_command_before: - '[ -d .venv -a -f .venv/bin/activate ] && source .venv/bin/activate' panes: - focus: true - pane - make watch_test - window_name: docs layout: main-horizontal options: main-pane-height: 35 start_directory: doc/ shell_command_before: - '[ -d ../.venv -a -f ../.venv/bin/activate ] && source ../.venv/bin/activate' panes: - focus: true - pane - make serve - make watch
更多示例 可在文档中找到,展示了 YAML 以及 JSON 配置。