| COLORDIFF(1) | User Commands | COLORDIFF(1) |
نام (NAME)
colordiff - ابزاری برای رنگآمیزی خروجی diff
خلاصه دستور (SYNOPSIS)
colordiff [diff options] [colordiff options] {file1} {file2}
توضیحات (DESCRIPTION)
برنامه colordiff پوششی (wrapper) برای diff است و همان خروجی diff را تولید میکند، با این تفاوت که دارای برجستهسازی نحوی رنگی در خط فرمان است تا خوانایی را بهبود ببخشد. خروجی آن شبیه به نحوه نمایش یک وصله (patch) تولیدشده توسط diff در Vim یا Emacs با فعال بودن گزینههای برجستهسازی نحوی مناسب است. طرحهای رنگی را میتوان از یک فایل پیکربندی مرکزی یا از فایل محلی کاربر در ~/.colordiffrc خواند.
برنامه colordiff از رنگهای ANSI استفاده میکند و بنابراین تنها زمانی کار خواهد کرد که رنگهای ANSI قابل استفاده باشند - نمونههای متداول آن سامانههای xterm و Eterm و همچنین نشستهای کنسول هستند.
برنامه colordiff روی توزیعهای مختلفی از Linux و تحت OpenBSD آزمایش شده است، اما بهطور کلی باید روی سایر سیستمها نیز قابلحمل (portable) باشد.
نحوه استفاده (USAGE)
از 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 ...
گزینهها (OPTIONS)
دستور colordiff بیشتر گزینهها را به diff منتقل میکند، اما گزینههای اختصاصی گوناگونی برای colordiff وجود دارند که میتوان از آنها استفاده کرد:
--help
--color=(yes|no)
--color=patches=(yes|no)
--color-term-output-only
--difftype=DIFFTYPE
--(no)banner
فایلها (FILES)
/etc/colordiffrc
colordiffrc-lightbg
colordiffrc-gitdiff
گزارش باگها (BUGS)
لطفاً گزارش باگها و پیشنهادات/وصلهها را به <davee@sungate.co.uk> ارسال کنید.
نویسندگان (AUTHORS)
Dave Ewart
Graham Wilson
Colin Tuckley
| 01/12/2026 | colordiff |