colordiff - подсветка для diff

Автор: Патрик Мурена (Patrick Murena)
Перевод: Алексей Бешенов

2008-03-12

Оригинал: «colordiff: put some color in your diffs», 9 января 2008 г.

colordiff — маленькое средство для подсветки вывода diff, здорово повышающее удобство чтения.

colordiff можно использовать как надстройку для diff, команды построчного сравнения файлов. Запустите

$ colordiff файл1 файл2 
Это покажет различия между файлом1 и файлом2, с подсветкой. Также вы можете передать в colordiff опции для diff. Например, для вывода различий между двумя директориями:
$ colordiff -Nur директория1 директория2 
colordiff также можно использовать в конвейере. Поместите на вход программы вывод diff, и вы получите тот же текст, но уже в цветном варианте.
$ cat some_patch_file | colordiff 
Или, например:
$ cvs diff | colordiff 
colordiff работает даже с wdiff, начиная с версии 1.0.7 (сейчас есть в нестабильной ветке Debian, но не в Ubuntu).

Цвета по умолчанию очень хорошо различаются на темном терминале: синий для нового текста, красный для старого, пурпурный для остальной информации diff. При желании, цвета можно легко поменять. Так как colordiff не может определять, работает ли он в темном или светлом терминале, по умолчанию текст может выглядеть довольно резко на белом фоне. На этот случай к colordiff прилагается файл colordiffrc-lightbg с примером альтернативных настроек.

Сходные программы

Различия между двумя и более файлами могут показывать многие текстовые редакторы. Для двух или трех файлов есть графическое средство xxdiff (у него имеются и другие возможности).

Если вам нравится подсвечивать все в консоли, может оказаться полезным ccze для лог-файлов, colormake для вывода make, colorgcc для вывода gcc, а также highlight (с опцией --ansi) для исходных кодов на более чем 100 языках программирования.

Советы

Замена diff

colordiff можно использовать всюду, где работает diff, поэтому может оказаться удобным заменить diff на colordiff. Добавьте в файл настроек командного процессора

alias diff=colordiff 
Функция svndiff

Если вы постоянно используете систему контроля версий, может пригодиться обертка для diff в ~/.bashrc, ~/.zshrc или другом файле настроек оболочки. Например, вот моя функция svndiff:

svndiff () { svn diff  "${@}"  | colordiff | less -R -E } 
Теперь я могу запускать svndiff в директории, управляемой SVN, и получать читаемую информацию об изменениях. cvsdiff () можно найти в руководстве colordiff, для другой системы контроля версий подобную функцию не составит труда написать самостоятельно.

Снимки экрана

Несколько снимков экрана есть на сайте colordiff: http://colordiff.sourceforge.net/screenshots.html

colordiff доступен в Debian, от Sarge до Sid, и в Ubuntu, от Dapper до Gutsy.