Menos lê sua entrada preguiçosamente. Quando você inicia, carrega apenas o início da entrada (o suficiente para preencher uma tela). Conforme você rola para baixo, Menos carrega mais e mais. Se você disser Menos para ir para o final da entrada, ele carregará tudo. Se a entrada for um arquivo regular, Menos simplesmente busca o final, mas quando a entrada é um canal, não há como chegar ao final dos dados além de ler tudo.
Quando um programa canaliza entrada para Less, um comando como G
para mover para o final do arquivo só retorna quando o programa sai, o que pode levar uma eternidade se o programa nunca sair. Um comando que exija exibir mais uma linha pode precisar esperar que o programa produza essa linha.
Se você pressionar ^C
enquanto Menos estiver lendo entrada, Menos mata o programa, o que tem o efeito colateral de fazê-lo parar de produzir entrada. Você pode navegar por todas as entradas que o programa produziu.
Você pode isolar Less do programa até certo ponto, fazendo o programa gravar em um pipe nomeado. Note que quando o programa tentar gravar no pipe, ele será bloqueado até que Less o leia (assim como com um pipeline), e se você sair de Less, o programa receberá um sinal SIGPIPE.
mkfifo f
myprogram >f &
less f
Quando a entrada é um canal nomeado, ^C
enquanto Menos está lendo apenas faz Menos pausa em sua leitura, isso não afeta o programa.
Você pode colocar Less em "follow mode" (como tail -f
), com o comando F
, para pular para o final e fazer a rolagem de entrada subseqüente. É o que acontece quando você tenta rolar até o final da entrada disponível até o momento; O comando F
faz com que Menos esqueça que ele já fechou o arquivo de entrada. O comando less +F
executa o comando F
quando Less inicia, ou seja, inicia Less no modo follow.
Se você quiser navegar pela saída de depuração no seu destino e não afetar o programa, grave a saída de depuração em um arquivo e chame Less nesse arquivo. Movendo para o final do arquivo você obtém a saída até o momento, mas você pode retomar a leitura com o comando F
, interromper com ^C
e ler mais com F
quantas vezes quiser.