跳转到内容

捕获终端输出

捕获是把终端输出变成可复用文本的第一步。选择与你的需求匹配的最轻路径即可。

场景推荐命令保留命令元数据?
查看已有命令管道的输出command 2>&1 | sivtr
sivtr 执行一次命令sivtr run command部分保留本次运行信息
浏览当前 shell 记录的工作sivtr import是,需要 shell 集成
复制最近命令块sivtr copy out是,需要 shell 集成
搜索保存过的输出历史sivtr history search "query"是,针对保存的捕获

Pipe mode 读取 stdin 并打开结果。

Terminal window
ls -la | sivtr
cargo build 2>&1 | sivtr
rg "TODO" . | sivtr

适合在这些情况下使用:

  • 命令已经存在于你的 shell 历史里;
  • 你希望保持普通 shell 的管道和重定向行为;
  • 不需要 sivtr 知道原始命令是什么。

如果重要输出写到了 stderr,把 stderr 重定向到 stdout:

Terminal window
cargo test 2>&1 | sivtr

Run mode 由 sivtr 执行命令:

Terminal window
sivtr run cargo test
sivtr run git status --short

适合在这些情况下使用:

  • 你希望 sivtr 执行并捕获单个命令;
  • 你希望浏览前看到退出状态;
  • 你不想手动处理 shell 重定向。

Run mode 会合并捕获 stdout 和 stderr。如果命令没有输出,sivtr 会提示没有捕获内容后退出。

Shell 集成会持续记录结构化命令条目。安装后打开当前 session log:

Terminal window
sivtr import

当你已经正常工作了一段时间,之后想把累积的 session 当成一个工作区浏览时,这很有用。

安装 shell 集成:

Terminal window
sivtr init powershell
sivtr init bash
sivtr init zsh
sivtr init nushell

安装后重启 shell。

[history].auto_save 启用时,捕获输出会保存到本地 history。稍后可以搜索:

Terminal window
sivtr history search "panic"
sivtr history show 42

History 和当前 shell session log 是两套东西:history 是更长期的 SQLite 存储,session log 是按 shell 进程记录的近期结构化命令块。