OSX diff için renkli çıktıyı nasıl etkinleştirebilirim?


33

İki dosyayı dağıtmam gerekiyor (aynı dosyanın iki sürümü değil, ancak git tarafından izleniyor, ancak ilgisiz) ve biraz renkli çıktı almak istiyorum, bunu nasıl başarabilirim?

$ diff file_1 file_2

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

$ 

Yukarıdaki kod bana bu dosyalar arasındaki farkı gösterir, ancak renkler olmadan. Daha uzun farklar için okunması zor.


Alternatif olarak, iki farklı dosyayı (bir dosyada değişiklik yapmaz) farklılaştırmak için git (bununla birlikte hoş renkli çıktılarım var) için bir yol var mı?

OSX (10.7.5)

Yanıtlar:


39

Perl diff için bir renk ayırıcı sargıya sahiptir , ama ben grc'i tercih ediyorum (jenerik colorizer) .

İle grc (jenerik colorizer) (eğer bu tür bir şey isterseniz), sen komutların veya girdilerin farklı türleri için kendi sarmalayıcılarını yazabilirsiniz.

Aşağıda, grckarşı çalışan /var/log/syslogbu işlemleri, pids, IP'leri ve "connect" s vurgular nerede, (config, bu dosya belli bir renk düzeni ayarlanır).

Elbette, bir takma ad kullanılması önerilir, böylece unutmazsınız:

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

syslog'a karşı çalışan grc


Git varsa, sadece diffdallar arasında bile , çok sağlam kuruluma izin veren kullanmak isteyebilirsiniz .

git diff master:cogs/foo.txt branch:widgets/bar.txt

git diffBir depo içinde kullanmak zorunda değilsiniz, sadece normal dosyalar için kullanabilirsiniz.görüntü tanımını buraya girin

git diff old.txt new.txt

Her zaman olduğu gibi diff, kullanım kolaylığı için takma ad kullanabilirsiniz.

alias diff="git diff"

6
git diff için yay
chrismarx

8
git diffCevabınızın tepesinde olmalı! Bir deponun dışında bile çalıştığını gösteren +1.
Lucio Paiva

4
'git diff' genel dosyalar üzerinde çalışmaz, bu yüzden 'git diff' olmak için diğer
isimlendirme farkının

1
Bu benim için işe yaramaz ... echo one > foo; echo two > bar; git diff foo barçıktı üretmez, diff foo barürettiğinde 1c1 < one --- > two (doğru biçimlendirme ile, tabii ki)
LarsR

git difförneğin borular için çalışmıyor
Piotr Findeisen

34

Dosyaları farklılaştırırken neredeyse her zaman vim kullanıyorum:

vim -d file_1 file_2

Yalnızca renkler kullanmakla kalmaz, dosyaları sıralar, böylece eklenen / kaldırılan çizgileri görmek daha kolaydır.


Vay ... Vim güzel bir şey.
Weston Ganger

@WestonGanger vim gerçekten şaşırtıcı, beni etkilemekten asla vazgeçmiyor
Philip Kearns

1
vim git yaması dosyalarında da çalışıyor (renk farkını gösteriyor)!
ryanman


6

Onaylanan cevaba dayanmak için : grc bunun için çok iyi çalışıyor. Demlemek için monte edilebilir ve birçoğu olmak üzere kutudan bir dizi terminal komutunu renklendirir. Yani...

brew install grc

... sisteminize grc yükler. Sonra takma adınızı ayarlamanız gerekir, demleme ihtarı bir çözüm sunar. Basitçe aşağıdaki satırı eklemek için .bashrcveya benzer.

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

Bu şu anda aşağıdaki takma adları ekleyecektir:

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'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.