Não sem invadir o código-fonte de menos. Um pouco da história de fundo:
Menos não consegue lidar com o mouse (incluindo eventos de rolagem).
Os emuladores de terminal suportam a chamada tela alternativa. É para isso que a maioria dos aplicativos de tela cheia muda para sua duração (e volta para a tela normal quando eles saem, fazendo com que o conteúdo anterior seja "restaurado") e não possui um buffer de rolagem. Menos também muda para essa tela alternativa, a menos que -X
seja fornecido nesse caso.
Muitos emuladores de terminal descobriram que, quando está no modo de tela alternativo e o aplicativo em execução no interior não está interessado em eventos de mouse, faz sentido converter a rolagem em eventos de pressionamento de tecla Para cima ou Para baixo. É um hack, e seria prejudicial na tela normal (imagine o que aconteceria, por exemplo, no prompt do shell) ou quando o aplicativo desejar manipular o mouse (com certeza, eles terão que ver os eventos reais do mouse). Mas como, por padrão, nenhum desses dois se mantém quando você está executando less
, esse hack entra em ação (sujeito ao emulador de terminal que o suporta e é ativado via \e[?1007h
vs.\e[?1007l
) Seus eventos de rolagem são convertidos pelo emulador de terminal em pressionamentos de tecla Para cima e Para baixo e menos não podem distingui-los dos pressionamentos de tecla reais. Ele não recebe eventos de rolagem do mouse: vê os pressionamentos de tecla Para cima e Para baixo.
Aí está você: Você muda para a tela alternativa e o hack do terminal converte os eventos de rolagem em pressionamentos de tecla por menos, e a tela normal é restaurada quando você sai; ou não, e não poderá haver eventos mágicos de conversão de rolagem em pressionamentos de tecla e menos não entenderá os eventos de rolagem.
Então, o que poderia ser feito? Bem, implemente o suporte ao mouse em menos e permita que ele gerencie os eventos de rolagem (e viva com um comportamento não-padrão de clicar ou copiar e colar) ou implemente outro truque estranho: ao sair, depois de voltar para a tela normal, less
pela última vez , poderia imprima uma tela cheia de conteúdo, repetindo o que foi exibido antes de sair.
Na prática, tudo se resume a: desculpe, esqueça.