Linux 完全可滚动窗口内容的xterm转储

Linux 完全可滚动窗口内容的xterm转储,linux,dump,xterm,Linux,Dump,Xterm,我想知道是否有人知道在linux上的xterm窗口中转储或复制所有可视消息的方法。非常重要的一点是,我不想知道如何发送一个命令,并为流1和流2创建其输出以及输入,因为这对我来说是众所周知的 我可以解释一下需要什么。你做了一些事情,并没有期望任何并发症,但比你得到的消息的als错误或正常输出页面。为了以后能看到,你应该能把它们放在一个文件中,只要你能用鼠标来回滚动,就可以确定数据在哪里。但现在可能不是滚动屏幕截图和滚动的时候 在这种情况下,我很乐意帮助我,如果你能看到完整的视图,包括所有你自己的输

我想知道是否有人知道在linux上的xterm窗口中转储或复制所有可视消息的方法。非常重要的一点是,我不想知道如何发送一个命令,并为流1和流2创建其输出以及输入,因为这对我来说是众所周知的

我可以解释一下需要什么。你做了一些事情,并没有期望任何并发症,但比你得到的消息的als错误或正常输出页面。为了以后能看到,你应该能把它们放在一个文件中,只要你能用鼠标来回滚动,就可以确定数据在哪里。但现在可能不是滚动屏幕截图和滚动的时候

在这种情况下,我很乐意帮助我,如果你能看到完整的视图,包括所有你自己的输入和所有的消息,并且在你向后滚动时能看到它们的顺序,那就好了


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

有一个控制序列,我已经忘记了。这个问题提醒了我。在中,注意“打印所有页面”:

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

printf '\033[?11i'
注释会提到页面,该页面使用了相应的操作(可以通过
translations
资源执行)。当然,这是在美国。相同的注释指向,其中提到了资源
printtributes
。默认情况下,打印机的控制序列告诉xterm发送额外的控制字符(以重建视频属性)。可以修改资源(设置为
0
)以抑制该操作。这甚至更古老()

如果没有这一点——可以想象,人们可以构造一个应用程序,它使用X SendEvent协议来构造一系列事件,这些事件将被解释为xterm操作,以便回滚、选择文本并通过剪贴板逐块复制文本。您甚至可以用Perl编写它(有一个用于的模块)。但说真的,没有

如果要捕获写入xterm的文本,可以在不同方法需要文本之前进行准备(请参阅):

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

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

此外,这个问题是离题的,您可能应该向超级用户询问。可能可以使用
printerCommand
-类似于或如果您运行
printf'\033[?11i'
终端在哪里“打印”to?手册似乎暗示它被写入了一个文件,但我不清楚是哪一个。请参阅
printerCommand
资源,它允许您通过管道写入shell命令。尽管我承认这一点很尴尬,但我仍然担心我不知道您的意思。我找到了这一点,但在
中加入了
printerCommand
行>~/.Xresources
和调用
xrdb
似乎无法捕获文件的任何输出-尽管
xrdb-query
显示了我所期望的内容。在我的应用程序默认设置中,我有例如
XTerm*printerCommand:dummy lpr
,而
dummy lpr
脚本是
cat>/tmp/lpr.out
printf '\033[?11i'