用途:当需要以程序化方式运行必须依赖真实终端的交互式 CLI 工具(vim、nano、Python/Node REPL、git rebase -i、git add -p、htop 等)时,使用 tmux 创建分离会话,通过 send-keys 发送输入、capture-pane 捕获屏幕内容,从而绕过标准 bash 无法控制交互式程序的问题。不适用于简单非交互命令、可通过 stdin 重定向输入的命令或一次性命令。
主要能力:创建分离会话、发送文本与特殊按键、捕获当前屏幕、列出与终止会话。常用命令:tmux new-session -d -s <name> <command>;tmux send-keys -t <name> 'text' Enter;tmux capture-pane -t <name> -p;tmux kill-session -t <name>;tmux list-sessions。创建会话时可用 -c 指定工作目录。
使用方式:基本流程为创建分离会话、等待 100-500ms 初始化、用 send-keys 发送输入(Enter、Escape、C-c、C-x、方向键、Space、BSpace 等为 tmux 键名)、用 capture-pane -p 查看屏幕、重复发送与捕获、完成后终止会话。资料还提到一个辅助脚本 tmux-wrapper.sh,提供 start、send、capture、stop 子命令。
适用场景:程序化编辑文件、自动化交互式 git 工作流、REPL 测试与调试,以及任何需要终端交互的工具。
限制与常见错误:会话启动后立即捕获会得到空白屏,需先短暂等待;发送命令后必须显式发送 Enter;应使用 tmux 键名 Enter 而非 \n;用完须 kill-session,避免残留会话。资料未提供该技能的安装方式、收费或平台信息。