curto: provavelmente não
longo:
Primeiro, o comentário na página manual script
está falando sobre o problema de pegar esse texto e fazer uma versão em texto puro (sem caracteres de controle) que mostra o que você viu originalmente na tela. A ferramenta scriptreplay
é uma solução que não tenta criar um arquivo de texto simples, mas sim reproduzir o texto como um filme.
O typescript
salvo por script
é difícil de converter em um arquivo de texto simples, porque
um editor de texto em tela cheia como o vim usa cursor-addressing . Em vez de repintar toda a tela toda vez que você fizer uma alteração (que, em princípio, permitiria ver uma série de telas), o vim moverá o cursor pela tela para fazer alterações.
Se você não fizer alterações (incluindo a rolagem), certamente poderá obter uma tela simples com poucos controles. Mas a questão não é perguntar sobre esse caso especial.
Se você fosse capaz de fazer o vim usar uma descrição do terminal que não tivesse o endereçamento do cursor, ele "poderia" ser forçado a repintar (em vez de mover o cursor). No entanto, o vim, por padrão, usa suas descrições de terminal built-in , muitas vezes ignorando o banco de dados do terminal ( veja código ). Por exemplo, no banco de dados do terminal, dumb
não possui endereçamento de cursor. A versão do vim tem o endereçamento do cursor:
/*
* The most minimal terminal: only clear screen and cursor positioning
* Always included.
*/
{(int)KS_NAME, "dumb"},
{(int)KS_CL, "4"},
#ifdef TERMINFO
{(int)KS_CM, IF_EB("3[%i%p1%d;%p2%dH",
ESC_STR "[%i%p1%d;%p2%dH")},
#else
{(int)KS_CM, IF_EB("3[%i%d;%dH", ESC_STR "[%i%d;%dH")},
#endif
Então você terá o movimento do cursor (e atualiza a tela).
Os caracteres de controle que você viu ecoaram no terminal são um recurso diferente. vim envia uma seqüência de escape para o terminal se for um xterm perguntar qual versão é (para ativar alguns recursos opcionais do vim). Essa é uma sequência de escape padrão do VT100 ( Atributos do dispositivo DA
), então muitos terminais (exceto o xterm) responderão, enviando os caracteres para o computador, o que os deixará na linha de comando.