COLORDIFF(1) User Commands COLORDIFF(1)

colordiff - ابزاری برای رنگ‌آمیزی خروجی diff

colordiff [diff options] [colordiff options] {file1} {file2}

برنامه colordiff پوششی (wrapper) برای diff است و همان خروجی diff را تولید می‌کند، با این تفاوت که دارای برجسته‌سازی نحوی رنگی در خط فرمان است تا خوانایی را بهبود ببخشد. خروجی آن شبیه به نحوه نمایش یک وصله (patch) تولیدشده توسط diff در Vim یا Emacs با فعال بودن گزینه‌های برجسته‌سازی نحوی مناسب است. طرح‌های رنگی را می‌توان از یک فایل پیکربندی مرکزی یا از فایل محلی کاربر در ~/.colordiffrc خواند.

برنامه colordiff از رنگ‌های ANSI استفاده می‌کند و بنابراین تنها زمانی کار خواهد کرد که رنگ‌های ANSI قابل استفاده باشند - نمونه‌های متداول آن سامانه‌های xterm و Eterm و همچنین نشست‌های کنسول هستند.

برنامه colordiff روی توزیع‌های مختلفی از Linux و تحت OpenBSD آزمایش شده است، اما به‌طور کلی باید روی سایر سیستم‌ها نیز قابل‌حمل (portable) باشد.

از colordiff در هر جایی که معمولاً از diff استفاده می‌کنید بهره ببرید، یا در عوض، خروجی را با لوله (pipe) به colordiff ارسال کنید:

برای مثال:

$ colordiff file1 file2
$ diff -u file1 file2 | colordiff

می‌توانید با استفاده از گزینه '-R' خروجی را به دستور 'less' لوله‌کشی (pipe) کنید (برخی سیستم‌ها یا انواع ترمینال ممکن است با استفاده از '-r' به جای آن نتیجه بهتری بگیرند)، که توالی‌های گریز رنگی را حفظ می‌کند؛ در غیر این صورت، این توالی‌ها نادرست نمایش داده شده یا توسط 'less' نادیده گرفته می‌شوند:

$ diff -u file1 file2 | colordiff | less -R

اگر می‌خواهید توالی‌های گریز رنگی را اجباراً غیرفعال کنید (برای مثال هنگام ارسال خروجی با لوله به patch)، می‌توانید از گزینه '--color=no' برای انجام این کار بهره ببرید:

$ diff -u file1 file2 | colordiff --color=no | patch -p0 -d another-working-dir

اگر wdiff را نصب دارید، colordiff متن‌های اضافه‌شده و حذف‌شده را به‌درستی رنگ‌آمیزی می‌کند، به شرطی که گزینه '-n' به wdiff داده شده باشد:

$ wdiff -n file1 file2 | colordiff

ممکن است برایتان سودمند باشد که diff را طوری تنظیم کنید که به‌طور خودکار colordiff را فراخوانی کند. خط زیر را به ~/.bashrc (یا معادل آن) اضافه کنید:

alias diff=colordiff

هر گزینه‌ای که به colordiff داده شود، عیناً به diff منتقل می‌شود، به جز گزینه اختصاصی colordiff یعنی 'difftype'، مانند:

colordiff --difftype=debdiff file1 file2

مقادیر معتبر برای 'difftype' عبارتند از: diff،‏ diffc،‏ diffu،‏ diffy،‏ wdiff،‏ debdiff؛ این مقادیر به‌ترتیب با diff معمولی، diffهای زمینه‌ای (context diffs)، یکپارچه (unified diffs)، شانه به شانه (side-by-side diffs)، خروجی wdiff و خروجی debdiff متناظر هستند. زمانی که colordiff قادر به تشخیص خودکار نوع diff نیست، از این مقادیر برای لغو تشخیص خودکار استفاده کنید.

همچنین، ساختاری مانند 'cvs diff SOMETHING | colordiff' را می‌توان در ~/.bashrc به شکل زیر قرار داد:

function cvsdiff () { cvs diff $@ | colordiff; }

یا با ترکیب این ایده و استفاده از 'less':

function cvsdiff () { cvs diff $@ | colordiff |less -R; }

توجه داشته باشید که نام تابع، یعنی cvsdiff، قابل سفارشی‌سازی است.

به‌طور پیش‌فرض، colordiff کد خروج فراخوانی diff زیرین (در صورت وجود) را بازمی‌گرداند، اما در شرایط خاصی مفید است که کد خروج colordiff به‌اجبار صفر شود: برای انجام این کار از گزینه '--fakeexitcode' استفاده کنید:

colordiff --fakeexitcode ...

دستور colordiff بیشتر گزینه‌ها را به diff منتقل می‌کند، اما گزینه‌های اختصاصی گوناگونی برای colordiff وجود دارند که می‌توان از آن‌ها استفاده کرد:

--help

نمایش این گزینه‌های اختصاصی colordiff

--color=(yes|no)

اجبار به نمایش (یا جلوگیری از نمایش) رنگ‌ها در خروجی

--color=patches=(yes|no)

اجبار به گنجاندن (یا جلوگیری از گنجاندن) کدهای رنگ در خروجی وصله (patch)

--color-term-output-only

اجبار به نمایش رنگ تنها در خروجی ترمینال

--difftype=DIFFTYPE

اجبار به تشخیص difftype در قالب مشخص‌شده. مقدار DIFFTYPE می‌تواند یکی از موارد زیر باشد: diff،‏ diffc،‏ diffu،‏ diffy،‏ debdiff،‏ wdiff

--(no)banner

نمایش (یا جلوگیری از نمایش) بنر colordiff

/etc/colordiffrc

فایل پیکربندی مرکزی. تنظیمات مخصوص به هر کاربر را می‌توان با تهیه رونوشت از این فایل در ~/.colordiffrc و اعمال تغییرات مناسب فعال کرد.

colordiffrc-lightbg

الگوی پیکربندی جایگزین برای استفاده در ترمینال‌هایی با پس‌زمینه روشن. از این فایل در /etc/colordiffrc یا ~/.colordiffrc رونوشت گرفته و آن را سفارشی‌سازی کنید.

colordiffrc-gitdiff

الگوی پیکربندی جایگزین برای استفاده در ترمینال‌هایی با پس‌زمینه تیره، با رنگ‌های پیش‌فرضی که برای مطابقت با خروجی 'git diff' تنظیم شده‌اند. از این فایل در /etc/colordiffrc یا ~/.colordiffrc رونوشت گرفته و آن را سفارشی‌سازی کنید.

لطفاً گزارش باگ‌ها و پیشنهادات/وصله‌ها را به <davee@sungate.co.uk> ارسال کنید.

Dave Ewart

نویسنده colordiff و بسته‌ساز Debian

Graham Wilson

نویسنده صفحه راهنما و منبع XML

Colin Tuckley

حامی بسته Debian
01/12/2026 colordiff