Por que menos opção -F não funciona com a opção -S

3

Ao tentar melhorar a saída de hg diff, Eu percebi isso less 'S -F opção não funciona com o seu -S opção. Por que isso está acontecendo e como posso alcançar o efeito desejado?

Aqui está um extrato de man:

   -F or --quit-if-one-screen
      Causes less to automatically exit if the entire file can be dis-
      played on the first screen.

   -S or --chop-long-lines
      Causes  lines  longer than the screen width to be chopped rather
      than folded.  That is, the portion of a long line that does  not
      fit  in  the  screen width is not shown.  The default is to fold
      long lines; that is, display the remainder on the next line.

Testado em less 444 e less 436.

Explicação

Eu estava enganado em pensar que -S irá cortar o excesso de bytes. O conteúdo vai para a direita da tela.

Para conseguir o que eu queria, eu poderia usar (...) | cut -b -80 | less -FSX.

seler
fonte
Você realmente quer -S? Se as linhas forem maiores do que a sua saída, o restante será descartado, e você perderá informações no seu diff. Além disso, desde que eu estou passando por: eu espero que você use o color extensão para obter diffs coloridos.
Daniel Andersson
@ Daniel: Eu sinto que atravessar longas filas através de várias linhas é um pouco confuso. Ao usar menos se a mudança não aparecer nas primeiras 80 colunas, posso sempre expandir temporariamente minha janela de termos. :)
seler
Sem a extensão de cor fica muito confuso, mas com isso eu não tenho problemas. Mas somos todos seres humanos diferentes :-).
Daniel Andersson
@ Daniel, eu nunca disse que não uso extensão de cor. Esta questão é sobre menos, não hg.
seler

Respostas:

1

Funciona para mim; less -FS sai imediatamente se a entrada puder ser impressa em uma tela sem dobrar linhas e funcionar normalmente se for necessário rolar a tela (para a direita ou para baixo).

jpalecek
fonte
Eu tenho menos 444. Qual versão você está usando?
seler
@seler: menos 443, mas atualizei para o 444 e ele se comporta da mesma forma.
jpalecek
Eu tenho testado no Debian e no Xubuntu sob o terminal gnome. Qual é o seu sistema e terminal?
seler
Você tem certeza de que em seu arquivo de teste você tem linhas mais longas que a largura dos seus terminais?
seler
@seler: Sim, claro. Eu gero a entrada com eco, assim echo xxxxxxxxxxxxxxxxx | less -SF -, onde eu entro o suficiente x s que eles envolvem e preenchem toda a linha. O sistema é Debian sid, terminal é konsole. Eu tentei no console também, e vi uma pequena diferença no comportamento: no console, less imprime o arquivo quando ele couber em uma tela, sob o konsole, não é (apenas sai). Isso é, no entanto, dependente apenas do -F parâmetro (não depende de -S ).
jpalecek