linux - 完整可滚动窗口内容的 xterm 转储

标签 linux dump xterm

我想知道是否有人知道在 Linux 上的 xterm 窗口中转储或复制全部可查看消息的方法。非常重要的是我不想知道如何发送命令并捕获流 1 和 2 的输出以及输入,因为这对我来说是众所周知的。

我可以解释一下这需要什么。你做了一些事情,预计不会有任何并发​​症,但你会得到 msg 的 als err msg 或正常输出的页面。为了能够稍后查看,您应该能够将它们放入文件中,并且只要您能够用鼠标来回滚动所有内容,就可以确保数据存在于某个位置。但时间可能不是滚动和截图并滚动....

在这种情况下,我很乐意为我提供帮助,并且最好能获得完整的 View ,包括您自己输入的所有内容和所有消息的顺序,与您向后滚动时观看的顺序相同。

我真的不知道它存储在哪里以及如何保存它。我知道我可以转储全部内存并在其中搜索 xterm 窗口的一部分,但我认为这有点过分了。

最佳答案

有一个控制序列,我忘记了。这个问题提醒了我。在 XTerm Control Sequences ,注明“打印所有页面”:

CSI ? Pm i
      Media Copy (MC, DEC-specific).
        Ps = 1  -> Print line containing cursor.
        Ps = 4  -> Turn off autoprint mode.
        Ps = 5  -> Turn on autoprint mode.
        Ps = 1  0  -> Print composed display, ignores DECPEX.
        Ps = 1  1  -> Print all pages.

该日期可以追溯到 1999 年 ( patch #119 ),因此您的 xterm 中可能有它。您可以在 shell 命令中执行此操作,如下所示:

printf '\033[?11i'

评论提到了页面 Hidden gems of xterm ,它使用相应的操作 print-everything (可以通过 translations 资源执行的操作)。它位于 manual page , 当然。相同的评论指向 Extra characters in XTerm printerCommand output ,其中提到了资源printAttributes。默认情况下,打印机的控制序列告诉 xterm 发送额外的控制字符(以重建视频属性)。可以修改资源(设置为0)来抑制这种情况。那甚至更老( patch #74 )。

如果没有这个 - 可以想象,一个可以构建一个应用程序,该应用程序使用 X SendEvent 协议(protocol)来构建一系列事件,这些事件将被解释为 xterm 操作,以向后滚动、选择文本并按 block 复制它-通过剪贴板分块。您甚至可以用 Perl 编写它(有一个 X protocol 的模块)。但说真的,不。

如果您想捕获写入 xterm 的文本,您可以通过在不同方法需要文本之前准备来实现此目的(请参阅 manual ):

  • 打开 xterm 日志记录功能(不是用户友好的,因为它生成文件名)。可以使用“记录到文件(日志记录)”菜单项来启用此功能。
  • 使用打印机控制序列在写入时写入行(同样,不太友好,尽管有一个菜单项可以打开和关闭它,“重定向到打印机(print-redir)”)
  • 使用script捕获终端的所有输出。我使用它是因为它适用于任何 POSIX 类系统(甚至 Cygwin)上的任何终端。

这些方法中的每一个都会生成一个包含转义/控制序列的文件,需要将其过滤掉。使用 SendEvent 的假设程序原则上可以消除这种情况。

关于linux - 完整可滚动窗口内容的 xterm 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29987557/

相关文章:

linux - 如何删除从头开始直到达到特定模式的所有行(最后一行除外)

c++ - 生成迷你文本转储 LInux

linux - 无法使用 apktool 重新编译 apk 文件

c - 在节头 elf 文件中获取 sh_name 成员

load - CouchDB 转储到文件并从文件加载

ruby-on-rails - 导入sql文件及其模式的命令是什么?

vim - 终端在关闭 vim 后保留 bg 颜色 - 使用配色方案和 putty-256color 术语

linux - 如何从终端打开 xterm 窗口并从 xterm 在后台运行命令?

icons - 如何更改 xfce4 中的 xterm 图标?

c - CentOS7 上的 PAM 标准宏和日志记录