Acceder al búfer de desplazamiento hacia atrás de xterm como un archivo

8

¿Es posible, de alguna manera, acceder al búfer de desplazamiento hacia atrás de xterm como un archivo (solo lectura) o un dispositivo de caracteres?

El problema central (para evitar el "problema" x / y) es este: a veces el comando que acabo de ejecutar crea una salida no determinista, y me gustaría usar su salida de alguna manera sin pensarlo. . En este momento, la única forma de hacer esto (que yo sepa) es usar el mouse para seleccionar el texto en la selección primaria.

John Z.
fuente
Alternativa al uso tee. ¿Has considerado correr scriptpara crear un registro de todos tus comandos en un archivo?
Stephen Quan

Respuestas:

6

Puede hacerlo diciéndole a xterm que imprima los datos utilizando la print-everythingacción (normalmente no está vinculada a una tecla).

Alternativamente, hay una secuencia de escape documentada en 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.

que podría invocarse como

printf '\033[?11i'

Pero cualquiera de los enfoques (para escribir en un archivo) necesitaría un PrinterCommand configurado.

Thomas Dickey
fuente
¿Es posible hacer eso sin reiniciar xterm? Si implica reiniciar xterm, no es realmente una respuesta, ya que eso causaría la pérdida de la salida.
Kasperd
Esto es lo que estaba buscando. Los recursos se pueden volver a cargar sobre la marcha, y estoy de acuerdo en reiniciar xterm. Creé un fifo con nombre y lo configuré en printerCommand, vinculé el comando print-everything a una tecla y funciona exactamente como yo quería.
John Z.
2

Siempre puede usar algo como tmux que proporciona capture-panelo que desea, junto con divisiones (vertical y horizontal) y multiplexación, soporte de sesión y una serie de otras cosas.

O usar un emulador de terminal diferente xfce4-terminaltambién es liviano y proporciona un fácilSave Contents

Evan Carroll
fuente
1
Para mí, esto no suena como una respuesta a la pregunta. Ninguno de esos programas puede capturar mágicamente la salida que actualmente solo existe en una ventana xterm.
kasperd
@kasperd una interpretación justa. Quiere algo que capture sin pre-pensamiento. Lo uso tmuxsin pensarlo. Entonces no tengo este problema. Si puede acostumbrarse a usar tmux, nunca tendrá que pensar en esto nuevamente (o en muchas otras cosas).
Evan Carroll