Como salvar o conteúdo do Terminal do GNOME com códigos de escape ANSI?

9

Os terminais VT100 têm uma maneira relativamente simples de salvar o conteúdo do terminal com códigos de escape para um arquivo usando Meta - p :

XTerm.VT100.printAttributes: 2
XTerm.VT100.printerCommand: cat - > file
XTerm.VT100.translations: #override Meta <KeyPress> P: print() \n

Eu olhei em volta um pouco, e não consigo encontrar uma solução para isso funcionar no GNOME Terminal + XTerm + Bash padrão.

Eu faço não quero apenas uma imagem com o conteúdo da janela.

Parece que o Terminal GNOME pode eventualmente ter uma correção para isso , mas não há informações sobre qual versão que será incluída, e já faz quase três anos desde a última atualização ...

    
por l0b0 30.08.2012 / 15:05

6 respostas

3

Infelizmente, l0b0 a resposta fora da caixa é: Isso não é possível.

Na minha outra resposta, listei como usar o script para fazer isso, embora haja algumas diferenças, como você observou. A outra maneira é compilar a fonte ou usar uma versão instável.

Tarball de origem do terminal do Gnome

A versão no Raring é 3.6.1, então você pode olhar para esta fonte. Dentro do Terminal-window.c na linha 115:

/*
 * We don't want to enable content saving until vte supports it async.
 * So we disable this code for stable versions.
 */

#include "terminal-version.h"

#if (TERMINAL_MINOR_VERSION & 1) != 0
#define ENABLE_SAVE
#else
#undef ENABLE_SAVE
#endif
#endif

Opções:

  1. Adicione #define ENABLE_SAVE abaixo disso.
  2. Modifique a versão para uma instável.
  3. Faça o download de uma versão instável do .DEB.

Espero que isso ajude.

    
por LimpingNinja 02.05.2013 / 17:37
3

Infelizmente, l0b0 a resposta fora da caixa é: Isso não é possível.

Existem duas maneiras de tentar corrigir isso, executando o script todo o tempo em seu terminal e registrando todas as saídas. Abra o gnome-terminal, vá para Editar - > Preferências de perfil , então a guia Título e comando e para o seu comando personalizado use:

bash -l -c 'script -q -c bash $HOME/sessionlogs/$BASHPID.sessionlog.$(date +%Y%m%d-%H%M).txt'

Certifique-se de que "sessionlogs" exista em $ HOME.

A outra maneira foi removida e adicionada como segunda resposta a essa pergunta.

    
por LimpingNinja 02.05.2013 / 05:30
0

Você pode executar seus shells pelo script (1) para obter todas as entrada e saída do terminal armazenado em um arquivo, incluindo saídas de terminal.

    
por geirha 30.08.2012 / 15:56
0

Existe um pacote chamado screen - um multiplexador de terminal com emulação de terminal VT100 / ANSI.

De acordo com a página de tela no site do Ubuntu Manuais , screen afirma ser

% bl0ck_qu0te%

e ao executar tela :

% bl0ck_qu0te%

Eu tentei no Terminal GNOME, executando screen e digitando Ctrl a h

Estaéasaídadomeuarquivohardcopy.1quandoabertonoGedit:

Você pode encontrar a tela no repositório de softwares raring / main do Ubuntu 13.04.

Não está instalado por padrão.

    
por user85164 04.05.2013 / 02:42
-1

Hm, isso não irá copiar os códigos de escape, mas apenas para pegar o texto, você pode ir para o menu Editar - > Selecione All, pressione Ctrl Deslocamento C e (i) cole a área de transferência em um editor ou (ii) digite cat > filename e pressione Ctrl Deslocamento V .

    
por January 30.08.2012 / 15:11
-1

man history procure por expansão de histórico para caracteres com escape. Eu acredito que history pode fazer o que você está perguntando.

    
por j0h 01.05.2013 / 17:11