Como posso ativar a saída colorida para o diff do OSX?

32

Eu preciso diferenciar dois arquivos (não duas versões do mesmo arquivo, eles são rastreados pelo git, mas isso não é relacionado) e eu gostaria de alguma saída colorida, como posso conseguir isso?

$ diff file_1 file_2

1,9d0
< <script ... >
<     // more code
< </script>

$ 

O código acima mostra a diferença entre esses arquivos, mas sem cores. Para mais diffs que é difícil de ler.

Como alternativa, existe uma maneira do git (com o qual eu tenho uma boa saída de cores) para diferenciar dois arquivos diferentes (não muda para um arquivo)?

OSX (10.7.5)

    
por miphe 05.04.2013 / 11:02

4 respostas

35

Perl tem um invólucro sem brilho colordiff para diff, mas eu prefiro grc (colorizador genérico) .

Com o grc (colorizer genérico) , você pode escrever seus próprios wrappers para diferentes tipos de comandos ou entradas (se você gosta desse tipo de coisa).

Abaixo, grc está sendo executado em relação a /var/log/syslog (na configuração, este arquivo está configurado para um determinado esquema de cores), onde ele destaca processos, pids, IPs e "connect" s.

É claro que é recomendado usar um apelido para que você não esqueça:

alias diff="/usr/bin/grc /usr/bin/diff"

Sevocêtemogit,vocêpodeapenasquererusarisso,oquepermitediff,mesmoentreagências.

gitdiffmaster:cogs/foo.txtbranch:widgets/bar.txt

Vocênãoprecisausargitdiffdentrodeumrepositório,vocêpodeusá-loapenasparaarquivosregulares.

gitdiffold.txtnew.txt

Comosempre,vocêpodealiasdiffparafacilidadedeuso.

aliasdiff="git diff"
    
por 05.04.2013 / 15:32
31

Ao diferenciar arquivos, quase sempre uso o vim:

vim -d file_1 file_2

Ele não apenas usa cores, mas alinha os arquivos para facilitar a visualização das linhas adicionadas / removidas.

    
por 09.04.2013 / 18:11
6

Você pode obter git para diff dois arquivos diferentes :

git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt
    
por 05.04.2013 / 11:37
5

Para aproveitar a resposta aprovada: grc funciona muito bem para isso. É instalável com brew e colore um número de comandos de terminal fora da caixa, sendo diff um deles. Então ...

brew install grc

... instala o grc no seu sistema. Então você precisa configurar seus aliases, a advertência da mistura fornece uma solução. Basta adicionar a seguinte linha ao seu .bashrc ou similar.

source "'brew --prefix'/etc/grc.bashrc"

Isso adicionará os seguintes aliases:

alias colourify="$GRC -es --colour=auto"
alias configure='colourify ./configure'
alias diff='colourify diff'
alias make='colourify make'
alias gcc='colourify gcc'
alias g++='colourify g++'
alias as='colourify as'
alias gas='colourify gas'
alias ld='colourify ld'
alias netstat='colourify netstat'
alias ping='colourify ping'
alias traceroute='colourify /usr/sbin/traceroute'
alias head='colourify head'
alias tail='colourify tail'
alias dig='colourify dig'
alias mount='colourify mount'
alias ps='colourify ps'
alias mtr='colourify mtr'
alias df='colourify df'
    
por 20.08.2015 / 11:20