psmux 与 tmux 兼容性全矩阵:90+ 命令、140+ 格式变量,哪些功能开箱即用
【免费下载链接】psmuxTmux on Windows Powershell - tmux for PowerShell, Windows Terminal, cmd.exe. Includes psmux, pmux, and tmux commands. This is native High-Performance Tmux designed for Windows in Rust 🦀项目地址: https://gitcode.com/gh_mirrors/ps/psmux
psmux是一款原生 Windows 终端复用器(Terminal Multiplexer),用 Rust 编写、直接运行在 PowerShell / cmd / Windows Terminal 上,无需 WSL。它的核心卖点是tmux 兼容性:实现 90+ 个 tmux 命令、140+ 格式变量,并能直接读取你的~/.tmux.conf。这篇文章带你快速过一遍这份"兼容性全矩阵",搞清楚哪些 tmux 功能装上就能用、哪些有细微行为差异。
一、兼容性总览:psmux 和 WSL 里的 tmux 怎么选
官方兼容矩阵(见 docs/compatibility.md)给出的对比很直观:
| 能力 | psmux | Windows Terminal 标签页 | WSL + tmux |
|---|---|---|---|
| 会话持久化(detach/reattach) | ✅ | ❌ | ⚠️ 仅 WSL |
读取.tmux.conf | ✅ | ❌ | ✅ |
| tmux 主题 | ✅ | ❌ | ✅ |
| 同步窗格(synchronized panes) | ✅ | ❌ | ✅ |
| 原生 Windowsshell支持 | ✅ | ✅ | ❌ |
| 脚本化(90+ 命令) | ✅ | ❌ | ✅ |
| 零依赖 | ✅ | ✅ | ❌(需要 WSL) |
一句话结论:你的脚本、配置和键位习惯,从 Linux 搬到 Windows 基本不用改。
二、90+ 条开箱即用的 tmux 命令
完整的命令与参数表见 docs/tmux_args_reference.md,这里按使用频率挑重点。
1. 会话、窗口与窗格管理(日常 90% 的操作)
new-session/attach-session/has-session:会话生命周期,支持-A -d -P等标志new-window/split-window/join-pane/move-pane:split-window -p 30(按百分比分屏)、-c "#{pane_current_path}"(跟随当前目录)都正确生效select-pane/select-window:方向导航支持 tmux 式的"越界回绕"(wrap),与上游行为一致kill-pane/kill-window/kill-session:目标语法session:window.pane、%id、@id全支持
2. 键位、Hook 与条件逻辑(配置文件的灵魂)
bind-key/unbind-key:带键表(-T prefix/root/copy-mode),且区分大小写——bind-key T绑定的是 Shift+T,这是插件生态正常运行的前提set-hook/show-hooks:支持 30 个事件 Hook(after-new-window、pane-died、window-linked等),重载时自动去重if-shell/run-shell:配置里的条件逻辑完整可用,%if / %elif / %else / %endif也能直接在.tmux.conf中写- 命令可用
;链式执行,与 tmux 一致
3. 交互与自动化
- 交互式选择器:
choose-tree、choose-buffer、choose-session(带实时预览) - 弹出层:
display-popup、display-menu、command-prompt、confirm-before - 剪贴板缓冲:
set-buffer/show-buffer/paste-buffer,支持命名缓冲(-b mybuf),可用于窗格间脚本传数据 - 控制模式:
-C/-CC程序化协议与 tmux 同一套 wire protocol(%begin/%end帧 + 异步通知),IDE 与 iTerm2 tmux gateway 可直接驱动 capture-pane -p:输出到 stdout,Claude Code 等多 Agent 编排就是靠它读窗格状态-L <name>:服务器命名空间,跑多个互不干扰的 psmux 实例
想看自己版本里的实时清单,一条命令即可:
psmux list-commandslist-commands的官方文档原话是"live authority"——以它的输出为准,文档可能滞后。
三、140+ 格式变量:状态栏与脚本的"瑞士军刀"
psmux 的格式引擎(src/format.rs)支持完整的修饰符体系,常用分类如下:
| 类别 | 变量示例 | 说明 |
|---|---|---|
| 基础标识 | #S、#W、#P、#{session_name}、#{window_name}、#{pane_id} | 会话/窗口/窗格 |
| 路径与进程 | #{pane_current_path}、#{pane_current_command}、#{pane_start_command}、#{pane_title} | 做监控面板的核心 |
| 条件表达式 | #{?cond,true,false}、#{==:a,b}、#{!=:a,b}、#{<:a,b} | 状态栏条件渲染 |
| 逻辑运算 | #{&&:a,b}、#{||:a,b} | 组合判断 |
| 字符串操作 | #{b:}、#{d:}、#{l:}、#{q:}、#{s/pat/rep/:var} | 含正则替换 |
| 截断/填充 | #{=N:var}、#{pN:var} | 状态栏定宽排版 |
| 循环迭代 | #{W:fmt}、#{P:fmt}、#{S:fmt} | 多行状态栏的窗口列表 |
| 状态标志 | #{client_prefix}、#{window_zoomed_flag}、#{pane_dead} | 联动脚本与提示 |
比如状态栏里写set -g status-right "#{?client_prefix,#[bg=red] PREFIX ,}",按下前缀键时就会亮起来——这类插件级用法都开箱可用。
四、配置兼容:.tmux.conf直接生效
这是新手最关心的部分:装完就能用。psmux 自动读取~/.tmux.conf,包括:
- 全局/会话/窗口/窗格四级作用域的
set-option(-g/-s/-w/-p),窗口级选项独立存储,与 tmux 的解析链(pane → window → global)一致 - 主题:20+ 样式选项,16 色 + 256 色 + 24-bit 真彩(
#RRGGBB),Catppuccin、Dracula、Nord 等主流主题插件可装 set-environment/show-environment:会话级环境变量,新窗格自动继承source-file:在会话内(Prefix + :)即可热加载配置,不必 detach
五、⚠️ 少量刻意不同的行为(不是 Bug)
兼容矩阵也诚实列出了与上游 tmux 的刻意差异(详见 docs/compatibility.md 对应章节):
kill-server的命名空间规则:裸kill-server只结束默认命名空间,-L命名空间继续运行;psmux 扩展了kill-server -a一键清场。退出码遵循 tmux(无服务器时 exit 1),kill-server || true的写法照旧有效。- 窗格退出时的后台进程:Windows 没有 SIGHUP,默认 psmux 会清理窗格遗留的后台子进程;想保持 tmux 式"后台存活",配置
set -g @kill-descendants off。 - 反斜杠不转义:tmux 会把
C:\src存成C:\\src,psmux 保持原样——否则 Windows 路径全部损坏。 - 编码:psmux 输出 UTF-8,而 Windows 控制台默认代码页常是 cp1252,Python 调用方记得
encoding="utf-8"或设置PYTHONUTF8=1。 #{pane_current_command}:Windows 下报告的是窗格直接子进程的可执行文件名(稳定、低成本),程序自改的标题需开启allow-set-title后从#{pane_title}读取。
六、快速自检:三步验证你的 tmux 资产能否平迁
psmux list-commands # ① 命令清单(live 权威) psmux show-options -g # ② 检查你的 .tmux.conf 是否被正确加载 psmux -V # ③ 版本号与构建信息如果你的.tmux.conf里只有set-option、bind-key、set-hook、status-left/right这类常见配置,几乎可以认定 100% 可用;涉及set-hook事件名或较冷僻标志时,再对照上面的参考文档确认即可。
七、深入阅读与源码路径
| 资料 | 路径 |
|---|---|
| tmux 兼容矩阵(本文出处) | docs/compatibility.md |
| 命令与参数全表(90+ 命令逐条) | docs/tmux_args_reference.md |
| 完整特性列表 | docs/features.md |
| 脚本化与自动化指南 | docs/scripting.md |
| 配置项详解 | docs/configuration.md |
控制模式协议(-C/-CC) | docs/control-mode.md |
| 命令解析源码 | src/commands.rs |
| 格式引擎源码 | src/format.rs |
| 配置加载源码 | src/config.rs |
总结:psmux 的 tmux 兼容性覆盖了"日常使用 + 插件生态 + 脚本自动化"三层——90+ 命令管住操作面,140+ 格式变量管住展示面,.tmux.conf直读管住配置面。对新手来说,这意味着零学习成本:你只需要会 tmux,就已经会 psmux 了。🦀
【免费下载链接】psmuxTmux on Windows Powershell - tmux for PowerShell, Windows Terminal, cmd.exe. Includes psmux, pmux, and tmux commands. This is native High-Performance Tmux designed for Windows in Rust 🦀项目地址: https://gitcode.com/gh_mirrors/ps/psmux
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考