como obter menos para mostrar abas como abas?

2

Quando visualizo dados com tabulações em less , os caracteres de tabulação são expandidos para espaços. Se eu copiá-los diretamente do meu terminal usando ctrl-c, eles copiam como espaços. Por outro lado, more preserva caracteres de tabulação, assim como muitos outros comandos como tail e head . Existe alguma maneira de obter less para manter as guias intactas?

-r parece não ter efeito, mesmo quando combinado com -U , que alega tratar as guias como caracteres de controle. Não vejo outras opções relevantes para less .

    
por Solomonoff's Secret 20.12.2017 / 16:19

1 resposta

2

A página de manual para less parece ser enganosa.

Ao usar as opções -r e -U em combinação, você evitará que less converta guias em espaços conforme ele lê as linhas da entrada e preenche seu buffer de saída. No entanto, quando o buffer de saída é gravado em um terminal (ao contrário de ser gravado em um arquivo ou pipe), uma segunda conversão de tabulações em espaços é afetada na chamada write() devido a configurações de termio, contradizendo o comportamento esperado lendo a manpage.

Se você compilar less da origem e comentar ou #ifdef das linhas que ou XTABS , OXTABS ou TAB3 em s.c_oflag em screen.c:raw_mode() (linhas 398-411 e 489 na versão 487 de less ), você obterá uma versão de less que produz caracteres de guia se invocada com -r -U .

Eu não encontrei nenhuma opção de linha de comando existente para produzir o comportamento desejado, embora fosse fácil produzir uma versão na qual esse comportamento fosse togglable.

Usar um terminal suficientemente burro também deve funcionar.

    
por 21.12.2017 / 15:50