是否有可以用来获取终端或 pty 状态快照的工具?

是否有可以用来获取终端或 pty 状态快照的工具?

请停止将此问题标记为重复,它不是重复的。谢谢。考虑a、 、\x1b[D(“光标返回”)、 、的顺序b。这将产生仅 的输出b


我希望尝试并创建 TUI 应用程序(示例:less、vim),例如使用 ncurses 样式库或转义序列的原始应用程序。

我发现,作为 tmux 用户,tmux 提供了一个非常有用的capture-pane功能,它可以成为测试框架的良好基础,可以将其用作“屏幕截图”功能的形式以进行测试验证。例如,我可以在 tmux 下通过宽范围运行它,而不是手动测试输出的正确性,并建立一个测试来运行特定窗口大小的被测程序,然后将输出与严格的字符串比较进行比较。窗口尺寸范围并检查渲染状态以满足实用的要求。

无论如何,重点是这似乎是我所知道的将终端字节流“解析”到终端屏幕缓冲区的唯一方法。尽管 tmux 非常强大且用途广泛,但我还是希望有一个工具能够提供这种特定的功能。因为我今天读了更多关于 pty 是什么以及它们如何工作的内容这里,在我看来,系统的这方面确实属于终端仿真器的权限范围,而像 tmux 这样的东西相当独特,因为它必须在不是 GUI 应用程序的情况下做到这一点(这是一个优点)。

答案1

可以肯定 tmux 是镇上唯一的游戏,因为它不仅可以生成缓冲区的状态,还可以应用所有 ANSI 颜色和样式来实现这一点,这对于此测试目的非常有用,可以验证它是否一切正常。事实上,当附加到正在进行的会话时,tmux 需要能够在内部执行此操作,必须通过新连接的终端会话提供过去的历史记录是愚蠢的。所以我很高兴它通过 曝光capture-pane

相关内容