以文件形式访问 xterm 的回滚缓冲区

以文件形式访问 xterm 的回滚缓冲区

是否可以以某种方式将 xterm 的回滚缓冲区作为(只读)文件或字符设备访问?

核心问题(为了避免 x/y“问题”)是这样的:有时我刚刚执行的命令会创建不确定的输出,并且我想以某种方式使用它的输出,而不需要预先考虑它。目前,执行此操作的唯一方法(据我所知)是使用鼠标将文本选择为主要选择。

答案1

您可以通过告诉 xterm 使用以下命令打印数据来完成此操作print-everything操作(通常不绑定到键)。

或者,有一个转义序列记录在XTerm 控制序列:

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.

可以调用为

printf '\033[?11i'

但无论哪种方法(写入文件)都需要打印机命令配置。

答案2

您始终可以使用 tmux 之类的东西,它提供了capture-pane您想要的功能,以及分割(垂直和水平)和多路复用、会话支持以及许多其他功能。

或者使用不同的终端仿真器xfce4-terminal也是轻量级的,并提供了一个简单的Save Contents

答案3

您可以按住 Ctrl 键并单击左键并选择“立即打印全部”,这会生成纯文本文件$HOME/XTermYYYY-MM-DD.hh.mm.ss

这是默认配置,可以使用printFileImmediateprintModeImmediate和进行修改printOptsImmediate

相关内容