Não sem invadir o código-fonte de menos. Um pouco de história de fundo:
Menos não pode manipular o mouse (incluindo eventos de rolagem).
Emuladores de terminal suportam uma tela chamada alternativa. É para isso que a maioria dos aplicativos de tela cheia muda para sua duração (e volta para a tela normal quando eles param, fazendo com que o conteúdo anterior seja "restaurado"), e não tem um buffer de rolagem. Menos também alterna para essa tela alternativa, a menos que -X
seja fornecido, caso contrário,
Muitos emuladores de terminal descobriram que quando está em modo de tela alternativo e o aplicativo em execução não está interessado em eventos de mouse, faz sentido converter em rolagem para cima ou para baixo. É um hack, e seria prejudicial tanto na tela normal (imagine o que aconteceria, por exemplo, no prompt do seu shell), ou quando o aplicativo deseja manipular o mouse (com certeza, eles têm que ver os eventos reais do mouse, então). Mas como, por padrão, nenhum desses dois é válido quando você está executando less
, esse hack é ativado (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 para as teclas para cima e para baixo e menos não conseguem distingui-los dos pressionamentos de tecla reais. Ele não recebe eventos de rolagem do mouse: ele exibe as teclas para cima e para baixo.
Então você está lá: ou você muda para tela alternativa e o hack do terminal converte eventos de rolagem em pressionamentos de tecla por menos, e a tela normal é restaurada quando você sai; ou você não, e então não pode haver nenhum evento de rolagem de conversão mágica para pressionamentos de tecla e menos não entende os eventos de rolagem.
Então, o que poderia ser feito? Bem, ou implementar o mouse suporte em menos e deixá-lo lidar com eventos de rolagem em si (e viver com um clique não padrão ou copiar e colar), ou implementar outro hack estranho: após sair, depois de reverter para a tela normal, less
poderia a última vez que imprime uma tela cheia de conteúdo, repetindo o que foi exibido antes de sair.
Na prática, basicamente se resume a: desculpe, esqueça.