Como tornar 'menos -FX' legal com um prompt de shell de 2 linhas

1

Meu prompt do shell tem duas linhas (uma versão mais elaborada de [%n@%m %~]'$'\n''%# . Eu tenho $ LESS definido como -FX . Quando eu saio menos, ele deixa uma única linha no final da tela e desde o meu prompt tem duas linhas, a primeira linha da menor saída rola para fora da janela do terminal.

Prefiro perder a última linha da saída do que a primeira linha.

Existe alguma solução para este problema?

    
por Daniel Serodio 27.08.2014 / 23:07

2 respostas

1

A linha superior de menos saída rola na parte superior porque você imprime uma linha na parte inferior, causando uma linha de rolagem. Esse é o \n no seu prompt.

Como evitar isso e ainda ter duas linhas?

Você pode escrever parte do prompt acima da linha de comando mormal, em vez de usar um prompt de duas linhas. Em certo sentido, seria uma linha normal e uma impressa acima - fora da área de prompt normal (exigiria as seqüências de escape do terminal para o controle do cursor).

Isso cobriria o caso less escrevendo na última linha de saída, como você sugeriu.
Mas também escreveria sobre a saída de outros comandos - muitos dos quais não têm mais saída que apenas essa linha.

Portanto, é necessário que haja um tratamento explícito dos dois casos, como a impressão de uma nova linha extra nos casos não- less .

É possível, com certeza, mas precisaria de muitos ajustes manuais para trabalhar com suavidade suficiente para o uso diário ...

Existem outras abordagens possíveis, como alterar a área de rolagem do terminal por menos mas isso fica ainda mais confuso.

    
por 28.08.2014 / 01:00
1

Estou ciente de que agora está três anos atrasado, mas minha pesquisa no google me trouxe até aqui, então pensei em compartilhar.

Para enviar um arquivo:

(printf '\n'; cat file.txt) | less -FX

Para paginar a saída de outro comando (por exemplo, git log):

git log | (printf '\n'; cat) | less -FX

A saída começa com uma linha em branco. Então, quando você sair menos, essa linha em branco será perdida, mantendo a primeira linha do arquivo.

Eu usei isso para um alias de log git.

    
por 02.09.2017 / 23:47

Tags