是否可以以某种方式将 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
这是默认配置,可以使用printFileImmediate
、printModeImmediate
和进行修改printOptsImmediate
。