Acessar o buffer de rolagem do xterm como um arquivo


8

É possível, de alguma forma, acessar o buffer de rolagem do xterm como um arquivo (somente leitura) ou um dispositivo de caractere?

O principal problema (para evitar x / y "problemming"), é o seguinte: às vezes o comando que acabei de executar cria uma saída não determinística e eu gostaria de usá-la de alguma forma sem pensar em usá-la . No momento, a única maneira de fazer isso (que eu saiba) é usar o mouse para selecionar o texto na seleção primária.


Alternativa ao uso tee. Você já pensou em executar scriptpara criar um log de todos os seus comandos em um arquivo?
Stephen Quan

Respostas:


6

Você pode fazer isso dizendo ao xterm para imprimir os dados usando a print-everythingação (normalmente não vinculada a uma chave).

Como alternativa, há uma sequência de escape documentada em 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 poderia ser invocado como

printf '\033[?11i'

Mas qualquer uma das abordagens (para gravar em um arquivo) precisaria de um comando de impressora configurado.


É possível fazer isso sem reiniciar o xterm? Se envolver reiniciar o xterm, não é realmente uma resposta, pois isso causaria a perda da saída.
kasperd

Era isso que eu estava procurando. Os recursos podem ser recarregados em tempo real, e eu posso reiniciar o xterm. Eu criei um fifo nomeado e o configurei em printerCommand, vinculei o comando print-everything a uma chave e funciona exatamente como eu queria.
John Z.

2

Você sempre pode usar algo como o tmux, que fornece capture-paneo que você deseja, juntamente com divisões (verticais e horizontais) e multiplexação, suporte a sessões e várias outras coisas.

Ou usar um emulador de terminal diferente xfce4-terminaltambém é leve e fornece um fácilSave Contents


1
Para mim, isso não parece uma resposta para a pergunta. Nenhum desses programas pode capturar magicamente a saída que atualmente existe apenas em uma janela xterm.
precisa saber é o seguinte

@kasperd uma interpretação justa. Ele quer algo que captura sem pré-pensamento. Eu uso tmuxsem pré-pensamento. Então não tenho esse problema. Se você tiver o hábito de usar o tmux, nunca precisará pensar nisso novamente (ou em muitas outras coisas).
Evan Carroll
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.