技能库 / 开发编程 / 用 tmux 跑交互式命令

用 tmux 跑交互式命令

在需要运行 vim、git rebase 等交互式 CLI 工具时,用 tmux 保持会话稳定、避免终端中断导致任务失败。

v1.0.0
作者 / 来源

github-obra

在来源站打开

安装方式

CLI 安装(推荐)

claw install oss-superpowers-lab-using-tmux-for-interactive-commands

需要安装 CLAW CLI

手动下载安装

下载 ZIP 后解压到技能目录即可安装。若在桌面客户端 WebView中直接下载出现异常,本站会改为提示页 + 原始链接,请按页内说明操作。

下载 ZIP (oss-superpowers-lab-using-tmux-for-interactive-commands-v1.0.0.zip)

触发指令

/using-tmux-for-inter

使用指南

用 tmux 跑交互式命令

vim、交互式 git rebase -i、Python REPL 等需要 真 TTY 的程序,不能 用普通非交互 bash 一条命令糊弄过去。用 tmux 分离会话 + send-keys / capture-pane 可编程控制。

何时用 tmux

适合: vim/nano、交互 git、全屏 TUI、需要 readline/控制序列的程序。
不适合: 纯非交互命令、可用 stdin 重定向搞定的一发命令。

速查

| 任务 | 命令 | |------|------| | 新建后台会话 | tmux new-session -d -s <名> <命令> | | 发键 | tmux send-keys -t <名> '文本' Enter | | 抓屏 | tmux capture-pane -t <名> -p | | 结束 | tmux kill-session -t <名> | | 列表 | tmux list-sessions |

核心模式

tmux new-session -d -s edit_session vim file.txt
tmux send-keys -t edit_session 'i' 'Hello' Escape ':wq' Enter
tmux capture-pane -t edit_session -p
tmux kill-session -t edit_session

流程

  1. new-session -d 起会话
  2. 视情况 sleep 0.1–0.5s 等程序起来
  3. send-keysEnterEscapeC-c、方向键等用 tmux 键名,不要用 \n 代替 Enter)
  4. capture-pane -p 看状态
  5. 重复 3–4
  6. kill-session 清理

工作目录

tmux new-session -d -s git_session -c /path/to/repo git rebase -i HEAD~3

常见错误

  • 一起动就 capture → 空白屏 → 先 sleep
  • 忘了单独发 Enter → 命令未执行
  • \n 而非 Enter
  • kill-session → 会话泄漏

价值

可脚本化 vim、交互 git、REPL 调试等,而无需自写 PTY;tmux 已处理好伪终端。