OSX diff에 컬러 출력을 사용하려면 어떻게해야합니까?


33

두 파일 (동일한 파일의 두 버전이 아니라 git에 의해 추적되지만 관련이 없음)을 비교해야하며 컬러 출력을 원합니다. 어떻게 달성 할 수 있습니까?

$ diff file_1 file_2

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

$ 

위의 코드는 색상이없는 파일 간의 차이점을 보여줍니다. 읽기 어려운 diff의 경우


또는 git (좋은 색상 출력이있는)이 두 개의 다른 파일을 변경하는 방법이 있습니까 (파일 변경은 아님)?

OSX (10.7.5)

답변:


39

Perl은 diff에 대한 부족한 colordiff 래퍼가 있지만 grc (일반적인 colorizer)를 선호합니다 .

함께 GRC (일반 colorizer) (당신이 그런 종류의 물건을 좋아하는 경우에), 당신은 명령이나 입력 다양한 유형의 당신의 자신의 래퍼를 작성할 수 있습니다.

아래 grc에 실행 /var/log/syslog이 프로세스의 PID, IP를하고 "연결"의 하이라이트 곳 (는 config에서이 파일은 특정 색상으로 설정).

물론, 다음을 잊지 않도록 별칭을 사용하는 것이 좋습니다.

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

syslog에 대해 실행되는 grc


자식이 있다면, 그것을 사용하고 싶을 수도 있습니다 diff.

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

git diff저장소 내 에서 사용할 필요는 없으며 일반 파일에만 사용할 수 있습니다.여기에 이미지 설명을 입력하십시오

git diff old.txt new.txt

언제나 그렇듯이 diff사용 편의성을 위해 별칭 을 지정할 수 있습니다.

alias diff="git diff"

6
야호 자식은 diff에 대한
chrismarx

8
git diff답의 맨 위에 있어야합니다! 저장소 외부에서도 작동한다는 점을 지적하면 +1입니다.
Lucio Paiva

4
'git diff'는 일반 파일에서 작동하지 않으므로 diff를 'git diff'로 앨리어싱하는 것은 해로울 수 있습니다
Anton Chikin

1
이것은 나에게 효과 echo one > foo; echo two > bar; git diff foo bar가 없다 ... 출력을 생성하지 않으면 서 (물론 올바른 형식으로) diff foo bar생산1c1 < one --- > two
LarsR

git diff파이프와 같이 작동하지 않음
Piotr Findeisen

34

파일을 비교할 때 거의 항상 vim을 사용합니다.

vim -d file_1 file_2

색상을 사용할뿐만 아니라 파일을 정렬하므로 줄을 추가 / 제거한 것을 쉽게 볼 수 있습니다.


와우 ... Vim은 아름다운 것입니다.
Weston Ganger

@WestonGanger의 정력은 나를 감동 참으로 놀라운 중단되지 않습니다
필립 컨스에게

1
vim은 git 패치 파일에서도 작동합니다 (컬러 diff 표시)!
ryanman


6

승인 된 답변을 바탕으로 : grc 는 이것을 위해 잘 작동합니다. 그것은 brew와 함께 설치 가능하며 많은 터미널 명령을 상자에서 채색합니다. 그래서...

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'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.