web-dev-qa-db-ja.com

OSX diffのカラー出力を有効にするにはどうすればよいですか?

2つのファイルを比較する必要があります(同じファイルの2つのバージョンではなく、それらはgitによって追跡されますが、それは無関係です)。色付きの出力が必要です。どうすればそれを達成できますか?

_$ diff file_1 file_2

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

$ 
_

上記のコードは、これらのファイルの違いを示していますが、色はありません。読みにくい長い差分の場合。


別の方法として、git(ニースカラー出力を使用)が2つのdifferentファイル(ファイルへの変更ではない)を比較する方法はありますか?

OSX (10.7.5)

34
miphe

Perlには光沢のない colordiff diffのラッパーがありますが、私は grc(generic colorizer) を好みます。

grc(generic colorizer) を使用すると、さまざまなタイプのコマンドまたは入力用の独自のラッパーを作成できます(そのようなものが好きな場合)。

以下では、grc/var/log/syslogに対して実行されています(構成では、このファイルは特定の配色に設定されています)。ここでは、プロセス、pid、IP、および「接続」が強調表示されています。

もちろん、忘れないようにエイリアスを使用することをお勧めします。

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

grc running against syslog


Gitを使用している場合は、それを使用するだけで、ブランチ間で非常に堅牢なdiffingが可能になります。

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

リポジトリ内でgit diffを使用する必要はありません。通常のファイルだけに使用できます。 enter image description here

git diff old.txt new.txt

いつものように、使いやすいようにdiffにエイリアスを付けることができます。

alias diff="git diff"
40
jnovack

ファイルを比較するとき、私はほとんどいつもvimを使います:

vim -d file_1 file_2

色を使用するだけでなく、ファイルを並べるので、追加/削除された行を簡単に確認できます。

36
Philip Kearns

Gitを 2つの異なるファイルを比較

git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt
7
Colin Pickard

承認された回答に基づいて構築するには:grcがこれに適しています。それはbrewでインストール可能で、箱から出していくつかの端末コマンドを色分けします。diffはその1つです。そう...

brew install grc

...システムにgrcをインストールします。次に、エイリアスを設定する必要があります。醸造の警告が解決策を提供します。次の行を.bashrcまたは同様のものに追加するだけです。

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

これにより、現在次のエイリアスが追加されます。

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'
6