5.0 KiB
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
termshot
在终端中生成精美的终端截图。
termshot lolcat -f <(figlet -f big termshot)
该命令会生成如下截图:
安装
在 macOS 或 Linux 上通过 Homebrew 安装:
brew install homeport/tap/termshot
请参阅 Releases 获取适用于 Darwin 和 Linux 的预编译二进制文件。
用法
本工具读取控制台输出,并渲染成类似用户界面窗口的输出图像。其灵感来自一些基于 Web 的工具,例如 carbon.now.sh, 和 codekeep.io/screenshot.。与这些工具不同,termshot 不会对提供的文本盲目应用语法高亮;相反,它会读取大多数命令行工具记录的 ANSI 转义序列(「富文本」),并据此生成高保真的终端输出「截图」。
与 time、watch 或 perf 类似,只需在你要截图的命令前加上 termshot 前缀。
termshot ls -a
这将在当前目录生成名为 out.png 的图像文件。
在某些情况下,如果目标命令包含_管道_——即使使用 --,仍可能存在歧义。此时请用双引号将命令包裹起来。
termshot -- "ls -1 | grep go"
控制外观的标志
--show-cmd/-c
在截图中包含目标命令。
termshot --show-cmd -- "ls -a"
--columns/-C
强制在指定列数后换行。使用此标志可确保截图不超过一定的横向长度。
--no-decoration
不绘制窗口装饰(最小化、最大化和关闭按钮)。
--no-shadow
不绘制窗口阴影。
--margin/-m
在窗口周围添加额外空白(外边距)。
--padding/-p
在窗口内的内容周围添加额外空白(内边距)。
与输出相关的标志
--clipboard/-b(仅在部分平台上可用)
不创建包含截图的输出文件,而是将截图图像保存到操作系统剪贴板。
注意: 仅在部分平台上可用。运行 termshot help 可查看该标志是否可用。
--filename/-f
指定生成截图的路径。可以是绝对路径或相对路径;相对路径将相对于当前工作目录解析。默认为 out.png。
termshot -- "ls -a" # defaults to <cwd>/out.png
termshot --filename my-image.png -- "ls -a"
termshot --filename screenshots/my-image.png -- "ls -a"
termshot --filename /Desktop/my-image.png -- "ls -a"
控制内容的标志
--edit/-e
在生成截图前编辑输出。这会在 $EDITOR 中配置的编辑器中打开富文本输出,并以 vi 作为后备。使用此标志可移除不需要或敏感的输出。
termshot --edit -- "ls -a"
其他标志
--raw-write <file>
将命令输出原样写入标志参数指定的文件。不会生成截图。使用 --raw-write 时,命令行标志 --filename 无效。
--raw-read <file>
从提供的文件读取输入,而不是运行命令。使用此标志时,不会创建伪终端来执行命令。使用 --raw-read 时,命令行标志 --show-cmd 和 --edit 无效。
--version/-v
打印已安装的 termshot 版本。
$ termshot --version
termshot version 0.2.5
多条命令
为了正常工作,termshot 会使用伪终端来执行命令。对于高级用法,你可以启动完全交互式的 shell,运行多条命令,并捕获全部输出。退出 shell 后将创建截图。
termshot /bin/zsh
请注意: 本项目仍在开发中。虽然许多 ANSI 序列可以被解析,但确实存在一些命令产生的输出尚无法被正确解析。此外,已知会重置光标位置的命令也会引发问题。


