Make diff Usa Largura de Terminal Completa no Modo Lado a Lado

29

A maioria dos aplicativos é inteligente em usar toda a largura do terminal disponível para eles. Meu shell faz, tela, vim, etc. No entanto, diff no modo side-by-side ( -y ), não. Isso me irrita. Ele usa 126 caracteres de largura, o que não é nem a metade do meu terminal de 270 blocos.

Examinar a página man não revela nada específico sobre o ajuste automático da largura, apenas especificando-a manualmente por meio de -W .

Existe talvez um "recurso oculto" de diff para permitir que ele seja expandido automaticamente para a largura total do terminal? Ou; Qual é o caminho mais fácil para inserir automaticamente -W <terminalsize> no meu comando diff sempre que eu o executo?

Eu estou supondo que anexar automaticamente -W a tudo não poderia atrapalhar nada, porque isso sempre significa "use $ x columns", que é sempre o que eu quero, esteja eu lado a lado modo de lado, ou de outra forma.

    
por VxJasonxV 15.03.2011 / 19:17

1 resposta

37
$ alias diff='diff -W $(( $(tput cols) - 2 ))'

deve fazê-lo. Você também vai querer adicioná-lo ao ~ / .bashrc.

O - 2 é principalmente paranoia, no caso de algo (Unicode de largura dupla incorporada?) se expandir o suficiente para fazer a quebra de linha; se você quiser, você pode simplesmente usar

$ alias diff='diff -W $(tput cols)'
    
por 15.03.2011 / 19:29

Tags