Como evito que menos apague a tela ao sair? [duplicado]

7

Costumo direcionar comandos para less para ler a saída (por exemplo, erros do compilador).

MyCommand | less

Isso é ótimo porque facilita a busca por grandes quantidades de saída, mas quando eu saio de less , a saída é eliminada. Como posso deixar a saída ainda visível depois de sair menos?

Esta questão difere de porque essa pergunta está relacionada à saída para um arquivo de texto via tee , que, até onde Eu sei, não fornece um recurso para dividir a saída entre less e stdout .

    
por quant 13.08.2014 / 01:12

4 respostas

13

Usando less -X :

Disables sending the termcap initialization and deinitialization strings to the terminal.

Isso deixará qualquer texto na tela para trás antes e depois da paginação. Então:

command | less -X

terá o efeito desejado. Note que esta saída ainda estará errada (linhas duplicadas) se você já rolou para cima - isso é inevitável sem escrever em um arquivo.

Você também pode definir a variável de ambiente LESS como um valor que contenha X para fazer isso por padrão para cada invocação de less .

Se você quiser gravar em um arquivo sem recorrer a tee , poderá usar as opções less -o filename ou --log-file=filename .

    
por 13.08.2014 / 01:46
6

Você pode usar:

 command | tee filename.out | less

e, em seguida, examine filename.out por meio de um editor, se você ainda precisar ver a saída depois de executar o comando less.

Outra ideia é alterar a configuração do termo para usar um tipo de terminal burro. Você teria que experimentar com este.

    
por 13.08.2014 / 01:24
3

Se o problema é que menos é "limpar a tela" quando você o abandona, você pode evitar esse comportamento especificamente dizendo menos para não enviar as strings terminal / termcap init / de-init quando ele iniciar e parar. Você faz isso usando -X . Então, tente command | less -X .

Isso pode ter outros efeitos colaterais, se essas sequências fizerem coisas realmente necessárias, mas não espero que seja esse o caso para você aqui.

    
por 13.08.2014 / 01:47
1

Você também pode tentar o comando more no lugar de less . Ele ainda irá paginar a saída e permitir que você a percorra bem, mas no final o seu terminal reterá a saída como se não fosse canalizado através de qualquer coisa.

    
por 13.08.2014 / 16:16

Tags