TIGRC(5) Tig Manual TIGRC(5)

tigrc - پرونده پیکربندی Tig

set   variable = value
bind  keymap key action
color area fgcolor bgcolor [attributes]
source path

شما می‌توانید با قرار دادن یک گزینه در پرونده ~/.tigrc آن را به طور دائمی تنظیم کنید. این پرونده از مجموعه‌ای از دستورات تشکیل شده است. هر خط از پرونده فقط می‌تواند شامل یک دستور باشد. اگر انتهای هر خط با نویسه بک‌اسلش (\) خاتمه یابد، دستورات می‌توانند در چند خط ادامه یابند.

علامت هش (#) به عنوان نویسه توضیحات (کامنت) استفاده می‌شود. تمام متن پس از نویسه توضیح تا انتهای خط نادیده گرفته می‌شود. می‌توانید از توضیحات برای یادداشت‌گذاری در پرونده مقداردهی اولیه خود استفاده کنید.

برخی از گزینه‌ها را می‌توان در زمان اجرا از طریق منوی گزینه‌ها دستکاری کرد. علاوه بر این، گزینه‌ها را می‌توان با دستور اعلان :toggle یا با وارد کردن دستور پیکربندی در خط فرمان تغییر وضعیت داد.

در برخی محیط‌ها، پیکربندی کاربر در مکان جایگزین $XDG_CONFIG_HOME/tig/config ذخیره می‌شود. برای اختصار، در این سند فقط به ~/.tigrc اشاره خواهد شد.

به عنوان جایگزینی برای استفاده از ~/.tigrc، می‌توان گزینه‌های Tig را با قرار دادن آن‌ها در یکی از پرونده‌های پیکربندی گیت (Git) تنظیم کرد که در زمان راه‌اندازی توسط Tig خوانده می‌شوند. برای آگاهی از اینکه از چه پرونده‌هایی استفاده کنید، به git-config(1) مراجعه نمایید. مثال زیر نحو پایه مورد استفاده برای تنظیمات، کلیدها و رنگ‌ها را نشان می‌دهد.

[tig] show-changes = true
[tig "color"] cursor = yellow red bold
[tig "bind"] generic = P parent

علاوه بر گزینه‌های خاص tig، گزینه‌های گیت زیر نیز از پیکربندی گیت خوانده می‌شوند:

color.*

رنگ‌ها برای انواع مختلف رابط کاربری. می‌تواند از طریق تنظیم git-colors پیکربندی شود.

core.abbrev

طول شناسه کامیت. همچنین گزینه id-width را ببینید.

core.editor

دستور ویرایشگر متن. می‌تواند با تنظیم TIG_EDITOR یا GIT_EDITOR بازنویسی شود.

core.worktree

مسیر ریشه درخت کاری (working tree).

gui.encoding

کدگذاری مورد استفاده برای نمایش محتوای فایل.

i18n.commitencoding

کدگذاری مورد استفاده برای کامیت‌ها. پیش‌فرض UTF-8 است.

تعدادی از متغیرهای انتخابی را می‌توان از طریق دستور set پیکربندی کرد. نحو دستور به این صورت است:

set variables = value

از += برای الحاق مقدار به یک متغیر رشته‌ای استفاده کنید.

مثال‌ها:

set commit-order = topo         # مرتب‌سازی توپولوژیکی کامیت‌ها
set git-colors = no             # عدم خواندن تنظیمات رنگ گیت
set horizontal-scroll = 33%     # پیمایش ۳۳٪ از عرض نما
set blame-options = -C -C -C    # انتساب خطوط از فایل‌های دیگر
set log-options += --minimal    # استفاده از الگوریتم diff کمینه
# قرار دادن نام شاخه‌ها درون () و تگ‌ها درون <>
set reference-format = (branch) <tag>
# پیکربندی ستون‌های نمای blame با استفاده از دستوری که در چند خط ادامه دارد.
set blame-view = \
        date:default \
        author:abbreviated \
        committer:abbreviated \
        file-name:auto \
        id:yes,color \
        line-number:yes,interval=5 text

یا در پرونده‌های پیکربندی گیت:

[tig]
        line-graphics = no      # غیرفعال کردن نویسه‌های گرافیکی
        tab-size = 8            # تعداد فاصله‌ها به ازای هر تب

نوع متغیرها می‌تواند بولی (bool)، عدد صحیح (int)، رشته (string) یا ترکیبی (mixed) باشد.

مقادیر بولی معتبر

برای تنظیم یک متغیر بولی روی true از "1"، "true" یا "yes" استفاده کنید. هر مقدار دیگری متغیر را روی false تنظیم می‌کند.

مقادیر صحیح معتبر

یک عدد صحیح غیرمنفی.

مقادیر رشته‌ای معتبر

یک رشته از نویسه‌ها. به صورت اختیاری، از ' یا " به عنوان جداکننده استفاده کنید.

مقادیر ترکیبی معتبر

این مقادیر ترکیبی از انواع بالا هستند. مقادیر معتبر در توضیحات مشخص شده‌اند.

متغیرهای زیر قابل تنظیم هستند:

diff-options (string)

رشته‌ای جداشده با فاصله از گزینه‌های diff برای استفاده در نمای diff. دستور git-show(1) برای قالب‌بندی استفاده می‌شود و همیشه --patch-with-stat را ارسال می‌کند. می‌تواند نمایش متادیتای سربرگ کامیت را با ارسال گزینه --format کنترل کند. این گزینه هر گزینه‌ای را که در متغیر محیطی TIG_DIFF_OPTS (توضیح داده شده در tig(1)) مشخص شده باشد لغو می‌کند، اما خودش توسط فلگ‌های diff داده‌شده در فراخوانی خط فرمان بازنویسی می‌شود.

blame-options (string)

رشته‌ای جداشده با فاصله از گزینه‌های پیش‌فرض blame. می‌تواند برای تعیین نحوه تشخیص منشأ خطوط به git-blame(1) استفاده شود. این گزینه‌ها زمانی که Tig در حالت blame شروع شده و گزینه‌های blame در خط فرمان به آن داده شود، نادیده گرفته می‌شوند.

log-options (string)

رشته‌ای جداشده با فاصله از گزینه‌های پیش‌فرض که باید به دستور git-log(1) استفاده‌شده توسط نمای log ارسال شوند. گزینه‌ها می‌توانند توسط گزینه‌های خط فرمان بازنویسی شوند. به صورت داخلی برای لغو تنظیمات سفارشی ‘pretty.format’ که نمای log را مختل می‌کنند استفاده می‌شود.

main-options (string)

رشته‌ای جداشده با فاصله از گزینه‌های پیش‌فرض که باید به دستور git-log(1) استفاده‌شده توسط نمای main ارسال شوند. گزینه‌ها می‌توانند توسط گزینه‌های خط فرمان بازنویسی شوند.

reference-format (string)

رشته‌ای جداشده با فاصله از رشته‌های قالب‌بندی مورد استفاده برای قالب‌بندی نام‌های ارجاع (refs). نام نوع ارجاع را با نویسه‌هایی که می‌خواهید برای قالب‌بندی استفاده کنید احاطه کنید، به عنوان مثال [tag] و <remote>. اگر هیچ قالبی برای local-tag مشخص نشده باشد، قالب tag استفاده می‌شود. به طور مشابه، اگر قالبی برای tracked-remote مشخص نشده باشد، قالب remote استفاده می‌شود، و اگر قالبی برای هر نوع ارجاع دیگری مشخص نشده باشد، قالب branch استفاده می‌شود. پیشوند hide: را اضافه کنید تا آن نوع ارجاع نمایش داده نشود، به عنوان مثال hide:remote. انواع ارجاع پشتیبانی‌شده عبارتند از:
•head : مقدار فعلی HEAD.
•tag : یک تگ حاشیه‌نویسی‌شده (annotated tag).
•local-tag : یک تگ سبک (lightweight tag).
•remote : یک مخزن ریموت (دوردست).
•tracked-remote : ریموت ردیابی‌شده توسط HEAD فعلی.
•replace : یک ارجاع جایگزین‌شده (replaced reference).
•branch : یک شاخه (branch).
•stash : فضای ذخیره موقت (stash).
•note : یادداشت‌ها (Notes).
•prefetch : ارجاع‌های از پیش دریافت شده توسط git maintenance.
•other : هر ارجاع دیگر.

line-graphics (mixed) [ascii|default|utf-8|auto|<bool>]

نوع نویسه‌های گرافیکی برای رسم خطوط. مقدار "auto" در صورت پشتیبانی لوکال از UTF-8 به معنی "utf-8" است، و در غیر این صورت "default".

truncation-delimiter (mixed) [utf-8|<string>]

یک نویسه تکی برای رسم در جایی که ستون‌ها کوتاه شده‌اند. پیش‌فرض "~" است. مقدار ویژه "utf-8" به نویسه "..." ("سه نقطه افقی خط وسط") اشاره دارد.

horizontal-scroll (mixed)

بازه پیمایش افقی در هر مرحله. می‌تواند به عنوان تعداد ستون‌ها مشخص شود، مثلاً 5، یا به عنوان درصدی از عرض نما، مثلاً 33%، که حداکثر آن 100% است. برای درصدها همیشه اطمینان حاصل می‌شود که حداقل یک ستون پیمایش شود. مقدار پیش‌فرض پیمایش 50% از عرض نما است.

git-colors (list)

فهرستی جداشده با فاصله از جفت‌های "key=value" که در آن کلید نام رنگ گیت و مقدار نام رنگ Tig است، مثلاً "branch.current=main-head" و "grep.filename=grep.file". برای غیرفعال کردن روی "no" تنظیم کنید.

show-notes (mixed) [<reference>|<bool>]

آیا یادداشت‌ها برای یک کامیت نمایش داده شوند یا خیر. هنگام تنظیم روی یک ارجاع یادداشت، آن ارجاع به git show --notes= ارسال می‌شود. یادداشت‌ها به طور پیش‌فرض فعال هستند.

show-changes (bool)

آیا تغییرات مرحله‌بندی‌شده (staged) و مرحله‌بندی‌نشده (unstaged) در نمای اصلی (main) نمایش داده شوند یا خیر.

show-untracked (bool)

آیا تغییرات پیگیری‌نشده (untracked) نیز در نمای اصلی نمایش داده شوند یا خیر.

vertical-split (mixed) [auto|<bool>]

آیا نما به صورت افقی یا عمودی تقسیم شود. مقدار "auto" (که پیش‌فرض است) به این معنی است که به ابعاد پنجره بستگی دارد. مقدار true جهت‌گیری عمودی و false جهت‌گیری افقی را تنظیم می‌کند.

split-view-height (mixed)

ارتفاع نمای پایین در یک نمایش افقی تقسیم‌شده. می‌تواند به عنوان تعداد ردیف‌ها، مثلاً 5، یا به عنوان درصدی از ارتفاع نما، مثلاً 80%، مشخص شود که حداکثر آن 100% است. همیشه اطمینان حاصل می‌شود که نمای کوچک‌تر حداقل چهار ردیف ارتفاع داشته باشد. پیش‌فرض 67% است.

split-view-width (mixed)

عرض راست‌ترین نما در یک نمایش عمودی تقسیم‌شده. می‌تواند به عنوان تعداد ستون‌ها، مثلاً 5، یا به عنوان درصدی از عرض نما، مثلاً 80%، مشخص شود که حداکثر آن 100% است. همیشه اطمینان حاصل می‌شود که نمای کوچک‌تر حداقل چهار ستون عرض داشته باشد. پیش‌فرض 50% است.

status-show-untracked-dirs (bool)

نمایش محتوای دایرکتوری‌های پیگیری‌نشده در نمای وضعیت (مشابه گزینه git ls-files --directory). به طور پیش‌فرض فعال است.

status-show-untracked-files (bool)

نمایش فایل‌های پیگیری‌نشده در نمای وضعیت (منعکس‌کننده گزینه status.showUntrackedFiles گیت). به طور پیش‌فرض فعال است.

tab-size (int)

تعداد فاصله‌ها به ازای هر تب (tab). مقدار پیش‌فرض ۸ فاصله است.

diff-context (int)

تعداد خطوط زمینه‌ای که برای diffها نمایش داده می‌شود.

word-diff (bool)

نمایش diff کلمه‌ای (word diff). فقط حالت متنی ساده پشتیبانی می‌شود. به طور پیش‌فرض غیرفعال است.

diff-highlight (mixed)

آیا diffها با استفاده از برنامه diff-highlight گیت برجسته شوند یا خیر. پیش‌فرض false است. در صورت تنظیم روی true، برنامه diff-highlight استفاده می‌شود، در غیر این صورت مقدار گزینه به عنوان مسیر برنامه در نظر گرفته می‌شود. هنگامی که این گزینه فعال است، بخش‌های برجسته‌شده توسط color diff-add-highlight و color diff-del-highlight کنترل می‌شوند.

diff-indicator (bool)

نمایش علامت‌های +/- در نمای diff. به طور پیش‌فرض فعال است.

ignore-space (mixed) [no|all|some|at-eol|<bool>]

نادیده گرفتن تغییرات فاصله‌های خالی در نمای diff. به طور پیش‌فرض هیچ تغییر فاصله‌ای نادیده گرفته نمی‌شود. تغییر این مقدار به "all"، "some" یا "at-eol" به ترتیب معادل ارسال "--ignore-all-space"، "--ignore-space" یا "--ignore-space-at-eol" به git diff یا git show است.

هشدار: هنگامی که ignore-space روی some، all یا at-eol تنظیم شده باشد، ممکن است status-update و status-revert هنگام به‌روزرسانی یا بازگرداندن قطعاتی که شامل خطوطی با تغییرات فاصله هستند با شکست مواجه شوند. به طور مشابه، stage-update-line ممکن است هنگام به‌روزرسانی خطی مجاور خطی با تغییرات فاصله با شکست مواجه شود.

commit-order (enum) [auto|default|topo|date|author-date|reverse]

ترتیب‌بندی کامیت‌ها با استفاده از ترتیب پیش‌فرض (زمانی معکوس)، ترتیب توپولوژیکی، ترتیب تاریخ یا ترتیب معکوس. هنگام تنظیم روی "auto" (که پیش‌فرض است)، در صورت فعال بودن گراف کامیت، ترتیب توپولوژیکی به طور خودکار در نمای اصلی استفاده می‌شود. در مخازنی با تاریخچه طولانی کامیت‌ها، توصیه می‌شود این گزینه را روی "default" تنظیم کنید تا بارگذاری نمای اصلی سریع‌تر شود.

ignore-case (enum) [no|yes|smart-case]

نادیده گرفتن بزرگی و کوچکی حروف در جستجوها. مقدار "smart-case" در صورتی که رشته جستجو شامل هیچ حرف بزرگی نباشد بزرگی و کوچکی را نادیده می‌گیرد. به طور پیش‌فرض، جستجو به بزرگی و کوچکی حروف حساس است.

mailmap (bool)

خواندن نام استاندارد و آدرس‌های ایمیل برای نویسندگان و کامیت‌کنندگان از .mailmap. به طور پیش‌فرض غیرفعال است. به git-shortlog(1) مراجعه کنید.

wrap-lines (bool)

شکستن خطوط طولانی (پیچیدن متن). به طور پیش‌فرض، خطوط شکسته نمی‌شوند. با شماره‌گذاری خطوط سازگار نیست.

wrap-search (bool)

چرخش به بالا/پایین نما هنگام جستجو در صورت رسیدن به ابتدا یا انتها. به طور پیش‌فرض فعال است.

focus-child (bool)

آیا نمای فرزند هنگام باز شدن فوکوس شود یا خیر. در صورت غیرفعال بودن، فوکوس در نمای والد باقی می‌ماند و از بارگذاری مجدد نمای فرزند هنگام پیمایش در نمای والد جلوگیری می‌کند. به طور پیش‌فرض true است.

send-child-enter (bool)

آیا فشردن کلید "enter" به نمای فرزند ارسال شود، حتی اگر نمای والد فعال باشد یا خیر. در صورت غیرفعال بودن، نمای فرزند باید صریحاً فوکوس شود تا کلیدهای "enter" را دریافت کند. در عمل فقط زمانی اهمیت دارد که set focus-child = no. به طور پیش‌فرض true است.

editor-line-number (bool)

آیا شماره خط انتخاب‌شده به دستور ویرایشگر ارسال شود یا خیر. شماره خط به صورت +<line-number> قبل از نام فایل ارسال می‌شود. مثال: vim +10 tig.c

history-size (int)

اندازه فایل ماندگار ~/.tig_history در هنگام کامپایل با پشتیبانی از readline. پیش‌فرض 500 است. برای غیرفعال کردن روی 0 تنظیم کنید.

mouse (bool)

آیا پشتیبانی از ماوس فعال شود یا خیر. به طور پیش‌فرض غیرفعال است زیرا انتخاب متن از ترمینال را کمتر شهودی می‌کند. در صورت فعال بودن، کلید Shift (یا Option در مک) را برای انتخاب متن نگه دارید. پشتیبانی از ماوس مستلزم آن است که خود ncurses از رویدادهای ماوس پشتیبانی کند.

mouse-scroll (int)

بازه پیمایش به بالا یا پایین با استفاده از ماوس. پیش‌فرض ۳ خط است. پشتیبانی از ماوس مستلزم آن است که ncurses از رویدادهای ماوس پشتیبانی کند و شما پشتیبانی از ماوس را در ~/.tigrc با set mouse = true فعال کرده باشید.

mouse-wheel-cursor (bool)

آیا هنگام استفاده از چرخ ماوس، حرکت مکان‌نما به پیمایش نما ترجیح داده شود یا خیر. به طور پیش‌فرض غیرفعال است. به خوبی با set mouse-scroll = 1 ترکیب می‌شود. پشتیبانی از ماوس مستلزم آن است که ncurses از رویدادهای ماوس پشتیبانی کند و پشتیبانی از ماوس در ~/.tigrc با set mouse = true فعال شده باشد.

pager-autoscroll (bool)

آیا نمای صفحه‌بندی (pager) هنگام بارگذاری به صورت خودکار پیمایش شود یا خیر. مکان‌نما را از آخرین خط خارج کنید تا پیمایش متوقف شود و برای از سرگیری دوباره آن را برگردانید.

recurse-tree (bool)

آیا همه فایل‌ها به صورت بازگشتی در نمای درختی نمایش داده شوند یا خیر.

pgrp (bool)

تبدیل tig به سرگروه فرایندها (process-group leader) هنگام شروع و پاکسازی تمام فرآیندها هنگام خروج. به طور پیش‌فرض غیرفعال است. اگر از نسخه Zsh متأثر از zsh-workers/43379 استفاده می‌کنید این گزینه را فعال نکنید. دستور xclip را با setsid اجرا کنید تا محتوای کلیپ‌بورد پس از خروج از tig حفظ شود. اگر از کمکی git-credential-cache استفاده می‌کنید، گزینه credentialCache.ignoreSIGHUP را تنظیم کنید.

start-on-head (bool)

شروع با مکان‌نما بر روی کامیت HEAD.

refresh-mode (mixed) [manual|auto|after-command|periodic|<bool>]

نحوه بازخوانی نماها را بر اساس تغییرات فایل‌های تحت نظر در مخزن پیکربندی می‌کند. هنگامی که روی manual تنظیم شده باشد، هیچ چیزی به طور خودکار بازخوانی نمی‌شود. هنگامی که روی auto تنظیم شده باشد، با تشخیص تغییر در نمای دیگر، نماها بازخوانی می‌شوند. هنگامی که روی after-command تنظیم شود فقط پس از بازگشت از یک دستور خارجی بازخوانی انجام می‌شود. هنگامی که روی periodic تنظیم شود، نماهای قابل مشاهده به صورت دوره‌ای با استفاده از refresh-interval بازخوانی می‌شوند.

refresh-interval (int)

فاصله بر حسب ثانیه بین بررسی‌های به‌روزرسانی بازخوانی نما هنگامی که refresh-mode روی periodic تنظیم شده باشد.

file-args (args)

آرگومان‌های خط فرمان که به فایل‌ها اشاره دارند. این موارد با استفاده از git-rev-parse(1) فیلتر می‌شوند.

rev-args (args)

آرگومان‌های خط فرمان که به بازبینی‌ها (revisions) اشاره دارند. این موارد با استفاده از git-rev-parse(1) فیلتر می‌شوند.

تنظیمات نما ترتیب و گزینه‌های ستون‌های مختلف یک نما را مشخص می‌کنند. هر تنظیم نما انتظار فهرستی جداشده با فاصله از مشخصات ستون‌ها را دارد. مشخصات ستون با نوع ستون شروع می‌شود و به صورت اختیاری می‌تواند یک دونقطه (:) و فهرستی از گزینه‌های ستون به دنبال آن بیاید. به عنوان مثال، مشخصه ستون زیر یک ستون author (نویسنده) را تعریف می‌کند که ایمیل نویسنده را با عرض ثابت ۲۰ نویسه نمایش می‌دهد: author:email,width=20.

اولین مقدار گزینه در یک مشخصه ستون همیشه گزینه display است. هنگامی که هیچ مقداری برای display داده نشود، مقدار yes فرض می‌شود. برای گزینه‌های display که انتظار یک مقدار شمارشی دارند، این مقدار به طور خودکار به مقدار شمارشی پیش‌فرض تبدیل می‌شود. به عنوان مثال، تنظیم display برای file-name به طور خودکار به auto تبدیل خواهد شد.

مشخصات را می‌توان برای یک ستون واحد نیز ارائه داد، به عنوان مثال برای بازنویسی پیش‌فرض‌ها در پرونده tigrc سیستم. برای بازنویسی یک ستون واحد، از نام ستون به عنوان پسوند پس از نام تنظیمات نما استفاده کنید، مثلاً main-view-date امکان تنظیم تاریخ در نمای اصلی (main) را فراهم می‌کند.

مثال‌ها:

# فعال کردن هم شناسه و هم شماره خطوط در نمای blame
set blame-view = date:default author:full committer:no file-name:auto \
                 id:yes,color line-number:yes,interval=5 text
# تغییر نمای grep به شکلی مشابه با قالب `git grep`
set grep-view = file-name:yes line-number:yes,interval=1 text
# نمایش اندازه فایل‌ها به صورت واحد
set tree-view = line-number:no,interval=5 mode author:full committer:no \
                file-size:units date:default id:no file-name
# نمایش شماره خطوط به ازای هر ۱۰ خط در نمای صفحه‌بندی
set pager-view = line-number:yes,interval=10 text
# میان‌برهایی برای تغییر تنظیمات نما برای ستونی که قبلاً تعریف شده است
set main-view-date = custom
set main-view-date-format = "%Y-%m-%d %H:%M"
set blame-view-line-number = no
# استفاده از ترتیب کامیت پیش‌فرض گیت، حتی در صورت فعال بودن گراف کامیت.
set commit-order = default

فهرست زیر تنظیمات نمای موجود و انواع ستون‌های پشتیبانی‌شده توسط آن‌ها را نشان می‌دهد:

blob-view, diff-view, log-view, pager-view, stage-view

line-number, text

blame-view

author, committer, date, file-name, id, line-number, text

grep-view

file-name, line-number, text

main-view, reflog-view

author, committer, date, commit-title, id, line-number, ref

refs-view

author, committer, date, commit-title, id, line-number, ref

stash-view

author, date, commit-title, id, line-number

status-view

file-name, line-number, status

tree-view

author, committer, date, id, file-name, file-size, line-number, mode

انواع ستون‌های پشتیبانی‌شده و گزینه‌های مربوط به هر ستون:

author, committer

•display (mixed) [full|abbreviated|email|email-user|<bool>]: نحوه نمایش نام‌های نویسنده/کامیت‌کننده. اگر روی "abbreviated" تنظیم شود، حروف اول نام نویسنده/کامیت‌کننده نمایش داده خواهد شد.
•width (int): عرض ثابت برای ستون. هنگامی که روی مقداری بین ۱ تا ۱۰ تنظیم شود، نام نویسنده/کامیت‌کننده به حروف اول نام او کوتاه می‌شود. هنگامی که روی صفر تنظیم شود، عرض به طور خودکار متناسب با محتوا اندازه می‌شود.
•maxwidth (int): حداکثر عرض ستون. اجازه اندازه‌بندی خودکار محتوا را تا این حد می‌دهد. می‌تواند به عنوان تعداد ستون‌ها، مثلاً 15، یا به عنوان درصدی از عرض نما، مثلاً 20%، مشخص شود که حداکثر آن 100% است.

commit-title

•graph (mixed) [no|v2|v1]: آیا گراف بازبینی در نمای اصلی هنگام راه‌اندازی نمایش داده شود یا خیر. مقدار "v1" به رندر گراف قدیمی اشاره دارد که دقت کمتری دارد اما سریع‌تر است و بنابراین در مخازن بزرگ توصیه می‌شود. همچنین گزینه‌های line-graphics را ببینید.
•refs (bool): آیا ارجاع‌ها (شاخه‌ها، تگ‌ها و ریموت‌ها) در نمای اصلی نمایش داده شوند یا خیر. قابل تغییر وضعیت است.
•overflow (bool or int): آیا متنی در عنوان کامیت که از عرض مشخصی فراتر می‌رود برجسته شود یا خیر. در صورت تنظیم روی مقدار بولی، برجسته‌سازی با عرض پیش‌فرض ۵۰ نویسه فعال یا غیرفعال می‌شود. در صورت تنظیم روی عدد صحیح، مقدار اختصاص‌داده‌شده به عنوان حداکثر عرض نویسه‌ها استفاده می‌شود.

date

•display (mixed) [relative|relative-compact|custom|default|<bool>]: نحوه نمایش تاریخ‌ها. اگر روی "relative" یا "relative-compact" تنظیم شود، از تاریخ نسبی استفاده می‌شود، مثلاً "2 minutes ago" یا "2m". اگر روی "custom" تنظیم شود، قالب رشته strftime(3) مشخص‌شده در گزینه "format" استفاده می‌شود.
•use-author (bool): آیا به جای تاریخ کامیت‌کننده، تاریخ نویسنده نمایش داده شود یا خیر.
•local (bool): در صورت true بودن، از localtime(3) برای تبدیل به منطقه زمانی محلی استفاده کنید. توجه داشته باشید که تاریخ‌های نسبی همیشه از آفست‌های محلی استفاده می‌کنند.
•format (string): رشته قالب برای ارسال به strftime(3) هنگامی که حالت نمایش custom انتخاب شده باشد.
•width (int): عرض ثابت برای ستون. هنگامی که روی صفر تنظیم شود، عرض به طور خودکار متناسب با محتوا اندازه می‌شود.

file-name

•display (mixed) [auto|always|<bool>]: زمان نمایش نام پرونده‌ها. اگر روی "auto" تنظیم شود، نام پرونده‌ها فقط در صورت نیاز نمایش داده می‌شوند، مثلاً هنگام اجرای: tig blame -C <file>.
•width (int): عرض ستون. هنگامی که روی صفر تنظیم شود، عرض به طور خودکار متناسب با محتوا اندازه می‌شود.
•maxwidth (int): حداکثر عرض ستون. اجازه اندازه‌بندی خودکار محتوا را تا این حد می‌دهد. می‌تواند به عنوان تعداد ستون‌ها، مثلاً 15، یا به عنوان درصدی از عرض نما، مثلاً 20%، مشخص شود که حداکثر آن 100% است.

file-size

•display (mixed) [default|units|<bool>]: نحوه نمایش اندازه پرونده‌ها. هنگامی که روی "units" تنظیم شود، اندازه‌ها با استفاده از پیشوندهای باینری نمایش داده می‌شوند، مثلاً 12524 بایت به صورت "12.2K" نمایش داده می‌شود.
•width (int): عرض ثابت برای ستون نام پرونده. هنگامی که روی صفر تنظیم شود، عرض به طور خودکار متناسب با محتوا اندازه می‌شود.

id

•display (bool): آیا شناسه‌های کامیت در نمای اصلی نمایش داده شوند یا خیر.
•width (int) : عرض ثابت برای ستون شناسه کامیت. در صورت تنظیم نشدن، Tig در صورت وجود از مقدار core.abbrev استفاده خواهد کرد. برای نحوه تنظیم core.abbrev به git-config(1) مراجعه کنید. هنگامی که روی صفر تنظیم شود، عرض به طور خودکار متناسب با محتوای شناسه‌های reflog (مثلاً ref/stash@{4}) اندازه می‌شود و در غیر این صورت به طور پیش‌فرض ۷ خواهد بود.

line-number

•display (bool): آیا شماره خطوط نمایش داده شوند یا خیر.
•interval (int): فاصله بین شماره خطوط.
•width (int): عرض ثابت برای ستون. هنگامی که روی صفر تنظیم شود، عرض به طور خودکار متناسب با محتوا اندازه می‌شود.

mode

•display (bool): آیا حالت‌های پرونده (دسترسی‌ها/مجوزها) نمایش داده شوند یا خیر.
•width (int): عرض ثابت برای ستون. هنگامی که روی صفر تنظیم شود، عرض به طور خودکار متناسب با محتوا اندازه می‌شود.

ref

•display (bool): آیا نام ارجاع نمایش داده شود یا خیر.
•width (int): عرض ثابت برای ستون. هنگامی که روی صفر تنظیم شود، عرض به طور خودکار متناسب با محتوا اندازه می‌شود.
•maxwidth (int): حداکثر عرض ستون. اجازه اندازه‌بندی خودکار محتوا را تا این حد می‌دهد. می‌تواند به عنوان تعداد ستون‌ها، مثلاً 15، یا به عنوان درصدی از عرض نما، مثلاً 20%، مشخص شود که حداکثر آن 100% است.

status

•display (mixed) [no|short|long|<bool>]: نحوه نمایش برچسب وضعیت.

text

•commit-title-overflow (bool or int): آیا عناوین کامیت که از عرض مشخصی در نمای diff فراتر می‌روند برجسته شوند یا خیر. در صورت تنظیم روی مقدار بولی، برجسته‌سازی با عرض پیش‌فرض ۵۰ نویسه فعال یا غیرفعال می‌شود. در صورت تنظیم روی عدد صحیح، مقدار اختصاص‌داده‌شده به عنوان حداکثر عرض نویسه‌ها استفاده می‌شود.

تمام گزینه‌های ستون قابل تغییر وضعیت هستند. برای گزینه‌های display، از نام گزینه به عنوان پیشوند همراه با یک خط تیره و نام ستون استفاده کنید. مثلاً :toggle author-display گزینه display را در ستون author تغییر وضعیت می‌دهد. برای تمام گزینه‌های دیگر از نام ستون به همراه یک خط تیره و سپس نام گزینه به عنوان پسوند استفاده کنید. مثلاً :toggle commit-title-graph گزینه graph را در ستون commit-title تغییر وضعیت می‌دهد. همچنین می‌توانید از منوی گزینه‌ها برای تغییر گزینه‌ها استفاده کنید.

با استفاده از دستورات bind، کلیدها می‌توانند در صورت فشردن در یک نگاشت کلید معین به یک عملیات نگاشت شوند. نحو دستور به این صورت است:

bind keymap key action

مثال‌ها:

# افزودن کلید میانبر برای پرش سریع به قطعه diff بعدی در نمای stage
bind stage <Enter> :/^@@
# غیرفعال کردن نگاشت پیش‌فرض برای اجرای git-gc
bind generic G none
# دستور خارجی تعریف‌شده توسط کاربر برای اصلاح آخرین کامیت
bind status + !git commit --amend
# دستور داخلی تعریف‌شده توسط کاربر برای بارگذاری مجدد ~/.tigrc
bind generic S :source ~/.tigrc
# نویسه‌های با کدگذاری UTF8 می‌توانند به عنوان مقادیر کلید استفاده شوند.
bind generic ø @sh -c "printf '%s' %(commit) | pbcopy"

یا در پرونده‌های پیکربندی گیت:

[tig "bind"]
        # لغو انتساب کلید پیش‌فرض خروج
        generic = Q none
        # چری‌پیک کامیت فعلی روی شاخه فعلی
        main = C !git cherry-pick %(commit)

کلیدها ابتدا با جستجو در کلیدهای میانبر نمای فعلی، سپس کلیدهای میانبر نگاشت کلید generic، و در نهایت کلیدهای میانبر پیش‌فرض نگاشت می‌شوند. بنابراین، کلیدهای میانبر نما کلیدهای میانبر generic را بازنویسی می‌کنند که خود کلیدهای میانبر توکار را بازنویسی می‌کنند.

حذف کلید میانبر (unbind) از تمام نگاشت‌های کلید به طور همزمان با دستور bind generic key none انجام می‌شود.

کلیدهای میانبر در خط فرمان معمولاً توسط کتابخانه readline اداره می‌شوند و به طور جداگانه در ~/.inputrc پیکربندی می‌شوند. به readline(1) مراجعه کنید. برنامه Tig بخش $if tig را در ~/.inputrc به رسمیت می‌شناسد اما الزامی به وجود آن ندارد.

نگاشت‌های کلید (Keymaps)

نگاشت‌های کلید معتبر عبارتند از: main, diff, log, reflog, help, pager, status, stage, tree, blob, blame, refs, stash, grep و generic. از generic برای تنظیم نگاشت کلید در تمام نگاشت‌های کلید استفاده کنید (که همچنان ممکن است توسط یک کلید میانبر خاص در یک نما بازنویسی شود). از search برای تعیین کلیدها جهت پیمایش نتایج جستجو در حین جستجو استفاده کنید.

مقادیر کلید (Key values)

مقادیر کلید هرگز نباید داخل علامت نقل‌قول قرار گیرند. از یک نویسه اسکی یا با کدگذاری UTF8 یا یکی از نام‌های کلید نمادین زیر استفاده کنید. نام‌های کلید نمادین به بزرگی و کوچکی حروف حساس نیستند و با "<" شروع شده و با ">" پایان می‌یابند. از <Hash> برای اتصال به کلید # استفاده کنید، زیرا علامت هش به عنوان نویسه توضیح استفاده می‌شود. از <LessThan> برای اتصال به کلید < استفاده کنید.

<Enter>, <Space>, <Backspace>, <Tab>, <Escape> or <Esc>, <Left>, <Right>, <Up>, <Down>, <Insert> or <Ins>, <Delete> or <Del>, <Hash>, <LessThan> or <LT>, <Home>, <End>, <PageUp> or <PgUp>, <PageDown> or <PgDown>, <ScrollBack> or <SBack>, <ScrollFwd> or <SFwd>, <ShiftTab> or <BackTab>, <ShiftLeft>, <ShiftRight>, <ShiftDelete> or <ShiftDel>, <ShiftHome>, <ShiftEnd>, <SingleQuote>, <DoubleQuote>, <F1> ... <F19>

برای تعریف نگاشت‌های کلید با کلید Ctrl، از <Ctrl-key> استفاده کنید. علاوه بر این، ترکیب‌های کلیدی شامل کلید Escape اولیه به همراه یک مقدار کلید عادی را می‌توان با استفاده از <Esc>key مقید کرد.

مثال‌ها:

bind main R             refresh
bind main <Down>        next
bind main <Ctrl-f>      scroll-page-down
bind main <Esc>o        options
bind main <ShiftTab>    parent

نکات (Notes)

•برنامه Tig فشردن کلیدها را از طریق ncurses می‌خواند و مشمول محدودیت‌های مختلفی است. به ncurses(3x) و terminfo(5) (یا termcap) مراجعه کنید.
•Ctrl-m و Ctrl-i نمی‌توانند مقید شوند زیرا به ترتیب با Enter و Tab تداخل دارند.
•تفاوت بزرگی و کوچکی حروف در دنباله‌های کنترلی مانند Ctrl-f و Ctrl-F قابل تشخیص نیست.
•Ctrl-<Space> معمولاً به Ctrl-@ ترجمه می‌شود که برای مقیدسازی در دسترس است.
•تنها زیرمجموعه‌ای از کلیدهای نمادین خاص مانند <ShiftTab> در هر شبیه‌ساز ترمینال معین در دسترس خواهد بود.
•ترکیب Ctrl-z به طور خودکار برای کنترل فرایند استفاده می‌شود و باعث تعلیق Tig و باز شدن یک زیرپوسته می‌شود (از fg برای ورود مجدد به Tig استفاده کنید).

عملیات‌ها (Actions)

عملیات‌ها یا به عنوان دستورات تعریف‌شده توسط کاربر (خارجی یا داخلی) یا با استفاده از نام‌های عملیات همان‌طور که در بخش‌های بعدی توضیح داده شده است مشخص می‌شوند.

این عملیات‌ها با یک یا چند مورد از فلگ‌های گزینه‌ای زیر شروع می‌شوند که پس از آن‌ها دستور مورد نظر برای اجرا قرار می‌گیرد.

! اجرای دستور در پیش‌زمینه همراه با نمایش خروجی.
@ اجرای دستور در پس‌زمینه بدون هیچ خروجی.
+ اجرای همگام دستور، و چاپ خط اول خروجی در نوار وضعیت.
? درخواست تایید از کاربر پیش از اجرای دستور.
< خروج از Tig پس از اجرای دستور.
> بازگشایی مجدد و فوری Tig در آخرین نمای نمایش‌داده‌شده پس از اجرای دستور.

مگر اینکه طور دیگری مشخص شده باشد، دستورات در پیش‌زمینه همراه با نمایش خروجی کنسول اجرا می‌شوند (همانند حالتی که ! مشخص شده باشد). هنگامی که چندین گزینه دستور مشخص شده باشند رفتار آن‌ها با یکدیگر ترکیب می‌شود، برای مثال "?<git commit" ابتدا از کاربر برای اجرای دستور تایید می‌گیرد و پس از پایان کار، از Tig خارج می‌شود.

توجه داشته باشید که اگر می‌خواهید در دستورات خود از پایپ‌ها یا تغییر مسیر (redirection) استفاده کنید، باید آن‌ها را در یک زیرپوسته اجرا کنید، یعنی دستورات خود را در sh -c '<commands>' قرار دهید.

متغیرهای وضعیت مرور (Browsing state variables)

دستورات تعریف‌شده توسط کاربر می‌توانند به صورت اختیاری با استفاده از نام‌های متغیر زیر به وضعیت درونی Tig ارجاع دهند، که قبل از اجرای دستورات جایگزین می‌شوند:

%(head) شناسه head که هم‌اکنون مشاهده می‌شود. مقدار پیش‌فرض HEAD است.
%(commit) شناسه کامیت انتخاب‌شده فعلی.
%(blob) شناسه blob انتخاب‌شده فعلی.
%(branch) نام شاخه انتخاب‌شده فعلی.
%(remote) نام مخزن دوردست (remote) انتخاب‌شده فعلی. برای شاخه‌های دوردست %(branch) حاوی نام شاخه خواهد بود.
%(tag) نام تگ انتخاب‌شده فعلی.
%(refname) نام مرجع انتخاب‌شده فعلی شامل نام مخزن دوردست برای شاخه‌های دوردست.
%(stash) نام stash انتخاب‌شده فعلی.
%(directory) مسیر دایرکتوری جاری در نمای درخت یا "." در صورت تعریف‌نشده بودن.
%(file) فایل انتخاب‌شده فعلی.
%(file_old) نام پیشین فایل انتخاب‌شده فعلی.
%(lineno) شماره خط انتخاب‌شده فعلی. مقدار پیش‌فرض 0 است.
%(lineno_old) شماره خط انتخاب‌شده فعلی، پیش از اعمال diff. مقدار پیش‌فرض 0 است.
%(status) وضعیت استیج خط انتخاب‌شده فعلی.
%(ref) مرجع ارائه‌شده به blame، یا HEAD در صورت تعریف‌نشده بودن.
%(revargs) آرگومان‌های بازبینی (revision) ارائه‌شده در خط فرمان.
%(fileargs) آرگومان‌های فایل ارائه‌شده در خط فرمان.
%(cmdlineargs) تمام گزینه‌های دیگر ارائه‌شده در خط فرمان.
%(diffargs) گزینه‌های حاصل از diff-options یا TIG_DIFF_OPTS مورد استفاده در نمای diff و stage.
%(blameargs) گزینه‌های حاصل از blame-options مورد استفاده در نمای blame.
%(logargs) گزینه‌های حاصل از log-options مورد استفاده در نمای log.
%(mainargs) گزینه‌های حاصل از main-options مورد استفاده در نمای main.
%(prompt) درخواست مقدار آرگومان از کاربر. به صورت اختیاری می‌توانید با "%(prompt Enter branch name: )" یک اعلان سفارشی تعیین کنید.
%(text) ستون متنی خط انتخاب‌شده فعلی.
%(repo:head) نام شاخه بررسی‌شده (checked out)، برای مثال master
%(repo:head-id) شناسه کامیت شاخه بررسی‌شده.
%(repo:remote) نام مخزن دوردست مرتبط با شاخه بررسی‌شده، برای مثال origin.
%(repo:upstream) شاخه بالادست (upstream) مرتبط با شاخه بررسی‌شده، برای مثال origin/master.
%(repo:cdup) مسیر تغییر دایرکتوری به ریشه مخزن، برای مثال ../
%(repo:prefix) پیشوند مسیر دایرکتوری کاری فعلی، برای مثال subdir/.
%(repo:git-dir) مسیر دایرکتوری گیت، برای مثال /src/repo/.git.
%(repo:worktree) مسیر درخت کاری (worktree)، در صورت تعریف شدن.
%(repo:is-inside-work-tree) اینکه آیا Tig درون یک درخت کاری اجرا می‌شود یا خیر (true یا false).

مثال‌ها:

# ذخیره کامیت فعلی به عنوان یک فایل پچ هنگامی که کاربر یک کامیت را
# در نمای اصلی انتخاب کرده و کلید 'S' را فشار می‌دهد.
bind main S !git format-patch -1 %(commit)
# ایجاد و بررسی یک شاخه جدید؛ همراه با تعیین اعلان سفارشی
bind main B ?git checkout -b "%(prompt Enter new branch name: )"
# نمایش آمار کامیت برای نویسنده زیر مکان‌نما
bind main U +sh -c 'git --0-pager shortlog -s --uthor="$(git show -s --rmat=%aE %(commit))" </dev/tty'

دستورات پیشرفته شبیه به پوسته (Advanced shell-like commands)

اگر دستور شما نیازمند استفاده از ویژگی‌های پویا، مانند زیرپوسته‌ها، بسط متغیرهای محیطی و کنترل فرایندها باشد، این کار با استفاده از یک دستور پوسته قابل دستیابی است:

مثال ۱. پیکربندی یک اتصال کلید برای کپی شناسه کامیت فعلی در کلیپ‌بورد.

bind generic I @sh -c "echo -n %(commit) | xclip -selection c"

یا با استفاده از ترکیبی از نام‌های مستعار گیت و دستورات خارجی Tig. ورودی‌های نمونه زیر را می‌توان در فایل‌های .gitconfig یا .git/config قرار داد:

مثال ۲. پیکربندی گیت که کلیدهای Tig را به نام‌های مستعار دستورات گیت متصل می‌کند.

[alias]
        gitk-bg = !"gitk HEAD --0t $(git rev-parse --emotes) &"
        publish = !"for i in origin public; do git push $i; done"
[tig "bind"]
        generic = V @git gitk-bg
        generic = > !git publish

عملیاتی که با یک : آغاز می‌شوند به عنوان دستورات داخلی اجرا و تفسیر شده و مانند دستورات اجراشده از طریق اعلان خط فرمان Tig عمل می‌کنند. دستورات داخلی معتبر شامل گزینه‌های فایل پیکربندی (همان‌طور که در این سند شرح داده شده است) و دستورات نمای صفحه‌بند (pager view) هستند. مثال‌ها:

# بارگذاری مجدد ~/.tigrc هنگام فشرده شدن 'S'
bind generic S :source .tigrc
# تغییر نمای diff برای نمایش تمام تغییرات کامیت بدون در نظر گرفتن محدودیت‌های فایل
bind diff F :set diff-options = --ll-diff
# نمایش خروجی git-reflog(1) در نمای صفحه‌بند
bind generic W :!git reflog
# جستجو برای تکه (chunk) قبلی diff و سربرگ بعدی diff
bind stage 2 :?^@@
bind stage D :/^diff --(git|cc)
bind main I :toggle id                          # نمایش/پنهان‌سازی ستون شناسه (ID)
bind diff D :toggle diff-options --nimal      # استفاده از الگوریتم diff کمینه
bind diff [ :toggle diff-context -3             # کاهش متن زمینه (آرگومان -U)
bind diff ] :toggle diff-context +3             # افزایش متن زمینه
bind generic V :toggle split-view-height -10%   # کاهش ارتفاع نمای دو نیم‌شده

مشابه دستورات خارجی، دستورات نمای صفحه‌بند می‌توانند حاوی نام‌های متغیری باشند که قبل از اجرای دستور جایگزین می‌شوند.

نام‌های معتبر عملیات در ادامه شرح داده شده‌اند. توجه داشته باشید که تمامی نام‌های عملیات به حروف بزرگ و کوچک حساس نیستند، و می‌توانید از -، _ و . به جای یکدیگر استفاده کنید؛ برای مثال "view-main"، "View.Main" و "VIEW_MAIN" یکسان هستند.

تعویض نما (View switching)

view-main نمایش نمای اصلی (main view)
view-diff نمایش نمای diff
view-log نمایش نمای لاگ (log view)
view-reflog نمایش نمای reflog
view-tree نمایش نمای درخت (tree view)
view-blob نمایش نمای blob
view-blame نمایش نمای blame
view-refs نمایش نمای مراجع (refs view)
view-status نمایش نمای وضعیت (status view)
view-stage نمایش نمای استیج (stage view)
view-stash نمایش نمای stash
view-grep نمایش نمای grep
view-pager نمایش نمای صفحه‌بند (pager view)
view-help نمایش نمای راهنما (help view)

دستکاری نما (View manipulation)

enter ورود و باز کردن خط انتخاب‌شده
back بازگشت به وضعیت قبلی نما
next رفتن به مورد بعدی
previous رفتن به مورد قبلی
parent رفتن به والد
view-next انتقال تمرکز به نمای بعدی
refresh بارگذاری مجدد و نوسازی نما
maximize بزرگ‌نمایی نمای فعلی به اندازه تمام صفحه
view-close بستن نمای فعلی
view-close-no-quit بستن نمای فعلی بدون خروج از برنامه
quit بستن تمامی نماها و خروج از برنامه

عملیات‌های ویژه نما (View-specific actions)

status-update استیج/آن‌استیج کردن تغییرات تکه (chunk) یا فایل
status-revert بازگردانی تغییرات تکه (chunk) یا فایل
status-merge ادغام فایل با استفاده از ابزار خارجی
stage-update-line استیج/آن‌استیج کردن یک خط منفرد
stage-update-part استیج/آن‌استیج کردن بخشی از یک تکه
stage-split-chunk تقسیم تکه فعلی diff

پیمایش مکان‌نما (Cursor navigation)

move-up حرکت مکان‌نما یک خط به بالا
move-down حرکت مکان‌نما یک خط به پایین
move-page-up حرکت مکان‌نما یک صفحه به بالا
move-page-down حرکت مکان‌نما یک صفحه به پایین
move-half-page-up حرکت مکان‌نما نیم‌صفحه به بالا
move-half-page-down حرکت مکان‌نما نیم‌صفحه به پایین
move-first-line حرکت مکان‌نما به خط اول
move-last-line حرکت مکان‌نما به خط آخر
move-next-merge حرکت مکان‌نما به کامیت ادغام بعدی
move-prev-merge حرکت مکان‌نما به کامیت ادغام قبلی

پیمایش صفحه (Scrolling)

scroll-line-up پیمایش یک خط به بالا
scroll-line-down پیمایش یک خط به پایین
scroll-page-up پیمایش یک صفحه به بالا
scroll-page-down پیمایش یک صفحه به پایین
scroll-half-page-up پیمایش نیم‌صفحه به بالا
scroll-half-page-down پیمایش نیم‌صفحه به پایین
scroll-first-col پیمایش به ستون‌های آغازین خط
scroll-left پیمایش دو ستون به چپ
scroll-right پیمایش دو ستون به راست

جستجو (Searching)

search جستجو در نما
search-back جستجو به عقب در نما
find-next یافتن مورد منطبق بعدی در جستجو
find-prev یافتن مورد منطبق قبلی در جستجو

متفرقه (Misc)

edit باز کردن در ویرایشگر
prompt باز کردن اعلان خط فرمان
options باز کردن منوی گزینه‌ها
screen-redraw بازترسیم صفحه
stop-loading توقف بارگذاری تمامی نماها
show-version نمایش اطلاعات نسخه
none هیچ کاری انجام نده

دستورات رنگ، برجسته‌سازی و سبک‌های رابط کاربری را کنترل می‌کنند. اگر ترمینال شما از رنگ پشتیبانی می‌کند و متغیر محیطی NO_COLOR تنظیم نشده یا خالی باشد، این دستورات را می‌توان برای اختصاص ترکیب رنگ‌های پیش‌زمینه و پس‌زمینه به نواحی مشخص به کار برد. به صورت اختیاری، یک صفت می‌تواند به عنوان آخرین پارامتر تعیین شود. ساختار دستور به این صورت است:

color area fgcolor bgcolor [attributes]

مثال‌ها:

# بازنویسی رنگ‌های پیش‌فرض ترمینال به سفید روی سیاه.
color default           white   black
# رنگ‌های Diff
color diff-header       yellow  default
color diff-index        blue    default
color diff-chunk        magenta default
color "Reported-by:"    green   default
# رنگ ویژه نما
color tree.date         black   cyan    bold
# رنگ سفارشی
color "/(note|warning|error):/" yellow  default bold

یا در فایل‌های پیکربندی گیت:

[tig "color"]
        # یک خط مکان‌نمای با ظاهر غیرمعمول
        cursor          = red   default underline
        # رنگ‌های رابط کاربری
        title-blur      = white blue
        title-focus     = white blue    bold
# رنگ ویژه نما
[tig "color.tree"]
        date            = cyan  default bold

نام‌های ناحیه (Area names)

می‌تواند یک نام ناحیه توکار یا یک رشته نقل‌قول‌شده سفارشی باشد. رشته سفارشی اجازه می‌دهد قواعد رنگ دلخواه برای خطوطی که با رشته داخل نقل‌قول مطابقت دارند اضافه شود. رشته‌هایی به صورت "/.../" به عنوان عبارات باقاعده تفسیر می‌شوند. نام‌های معتبر نواحی توکار در ادامه شرح داده شده‌اند. توجه داشته باشید که تمامی نام‌ها به حروف بزرگ و کوچک حساس نیستند، و می‌توانید از - و _ به جای یکدیگر استفاده کنید؛ برای مثال "Diff-Header" و "DIFF_HEADER" یکسان هستند. رنگ‌های ویژه هر نما را می‌توان با اضافه کردن نام نما به عنوان پیشوند به نام ناحیه تعریف کرد؛ برای مثال "stage.diff-chunk" و "diff.diff-chunk".

نام‌های رنگ (Color names)

رنگ‌های معتبر عبارتند از: white، black، green، magenta، blue، cyan، yellow، red، default. از default برای اشاره به رنگ‌های پیش‌فرض ترمینال استفاده کنید؛ برای مثال جهت شفاف نگه‌داشتن پس‌زمینه در حالتی که از ترمینالی با پس‌زمینه شفاف استفاده می‌کنید.

رنگ‌ها را می‌توان با استفاده از کلیدواژه‌های color0، color1، ...، colorN-1 نیز مشخص کرد (که در آن N تعداد رنگ‌های پشتیبانی‌شده توسط ترمینال شما است). این امر زمانی مفید است که رنگ‌ها را برای نمایشگر خود بازنگاشت کرده‌اید یا می‌خواهید از رنگ‌های ارائه‌شده توسط ترمینال‌های ۸۸ رنگی و ۲۵۶ رنگی بهره ببرید. توجه داشته باشید که پیشوند color اختیاری است. در صورت تمایل می‌توانید همانند فایل‌های پیکربندی گیت، رنگ‌ها را مستقیماً با شماره‌های 0، 1، ...، N-1 مشخص کنید.

نام‌های صفت (Attribute names)

صفت‌های معتبر عبارتند از: normal، blink، bold، dim، reverse، standout و underline. توجه داشته باشید که ممکن است همه صفت‌ها توسط ترمینال پشتیبانی نشوند.

رنگ‌ها و صفت‌هایی که باید برای متن‌های فاقد برجسته‌سازی استفاده شوند یا مواردی که استفاده از رنگ‌های پیش‌فرض ترمینال را مشخص می‌کنند، می‌توان با تنظیم گزینه رنگ default کنترل کرد.

جدول ۱. عمومی (General)

default بازنویسی رنگ‌های پیش‌فرض ترمینال (به توضیحات بالا مراجعه کنید).
cursor خط مکان‌نما برای نمای جاری.
cursor-blur خط مکان‌نمای هر نمایی که در پس‌زمینه قرار دارد.
status پنجره وضعیت که پیام‌های اطلاع‌رسانی را نشان می‌دهد.
title-focus پنجره عنوان برای نمای جاری.
title-blur پنجره عنوان هر نمایی که در پس‌زمینه قرار دارد.
search-result نتیجه برجسته‌شده جستجو.
delimiter جداکننده نمایش‌داده‌شده برای خطوط کوتاه‌شده.
header خطوط سربرگ نما. از status.header برای رنگ‌آمیزی بخش‌های استیج‌شده، استیج‌نشده و ردگیری‌نشده در نمای وضعیت استفاده کنید. از help.header برای رنگ‌آمیزی بخش‌های نگاشت کلید در نمای راهنما استفاده کنید.
line-number شماره خطوط.
id شناسه کامیت.
date تاریخ ثبت‌کننده یا تاریخ نویسنده.
author نویسنده کامیت.
committer ثبت‌کننده کامیت.
mode حالت فایل شامل دسترسی‌ها و نوع آن.
overflow سرریز متن عنوان.
directory نام دایرکتوری.
file نام فایل.
file-size اندازه فایل.

جدول ۲. رنگ‌های نمای اصلی (Main view colors)

graph-commit نقطه کامیت در نمودار بازبینی‌ها.
palette-[0-13] ۱۴ رنگ مختلف، مورد استفاده برای متمایز کردن شاخه‌ها یا کامیت‌ها. به صورت پیش‌فرض، پالت از رنگ‌های اسکی استفاده می‌کند که نیمه دوم آن‌ها صفت بولد را برای ایجاد رنگی درخشان‌تر فعال دارند. مثال: palette-0 = red
main-commit توضیحات کامیت.
main-annotated توضیحات کامیت برای یک کامیت حاشیه‌نویسی‌شده.
main-head برچسب شاخه جاری.
main-remote برچسب یک مخزن دوردست.
main-tracked برچسب مخزن دوردستی که توسط شاخه جاری ردگیری می‌شود.
main-tag برچسب یک تگ امضاشده.
main-local-tag برچسب یک تگ محلی.
main-ref برچسب یک شاخه.
main-replace برچسب مرجع جایگزین‌شده.
main-stash برچسب stash.
main-note برچسب یادداشت‌ها (notes).
main-prefetch برچسب مرجع پیش‌واکشی‌شده توسط git maintenance.
main-other برچسب هر مرجع دیگر.

جدول ۳. نمای وضعیت (Status view)

stat-none برچسب وضعیت خالی.
stat-staged فلگ وضعیت فایل‌های استیج‌شده.
stat-unstaged فلگ وضعیت فایل‌های استیج‌نشده.
stat-untracked فلگ وضعیت فایل‌های ردگیری‌نشده.

جدول ۴. نمای راهنما (Help view)

help-group نام گروه راهنما.
help-action نام عملیات راهنما.

علامت‌گذاری Diff (Diff markup)

گزینه‌های مربوط به شروع diff، تکه‌ها و خطوط اضافه‌شده و حذف‌شده.

diff-header, diff-chunk, diff-stat, diff-add, diff-add2, diff-del, diff-del2, diff-add-highlight, diff-del-highlight

علامت‌گذاری پیشرفته Diff گیت (Enhanced Git diff markup)

اطلاعات اضافی diff ارائه‌شده توسط سازوکار diff گیت، مانند تغییرات حالت، تشخیص تغییر نام و شباهت.

diff-oldmode, diff-newmode, diff-copy-from, diff-copy-to, diff-similarity, diff-index

قالب‌بندی زیبای سربرگ‌های کامیت (Pretty print commit headers)

تغییرات کامیت و لاگ‌های بازبینی معمولاً با استفاده از سربرگ‌های قالب‌بندی‌شده زیبا نمایش داده می‌شوند، مگر اینکه --retty=raw
تعیین شده باشد. این شامل خطوطی مانند اطلاعات ادغام، شناسه کامیت، و تاریخ نویسنده و ثبت‌کننده می‌شود.

pp-refs, pp-reflog, pp-reflogmsg, pp-merge

سربرگ خام کامیت (Raw commit header)

معمولاً هنگامی نشان داده می‌شود که --retty=raw
داده شده باشد، با این حال commit تقریباً همه‌جا حاضر است.

commit, parent, tree, author, committer

پیام کامیت (Commit message)

بیشتر خطوط دنباله متداول (مانند Signed-off-by) رنگ‌آمیزی می‌شوند. نویسه‌های عنوان کامیت که از عرض از پیش تعریف‌شده فراتر روند می‌توانند برجسته شوند.

علامت‌گذاری درخت (Tree markup)

رنگ‌ها برای اطلاعات نمای درخت.

tree-dir, tree-file

دستورات source خواندن فایل‌های پیکربندی اضافی را امکان‌پذیر می‌سازند. فایل‌های خوانده‌شده به صورت درجا گنجانده می‌شوند، بدین معنی که هنگام مواجهه با یک دستور source، فایل بلافاصله خوانده خواهد شد. هر دستوری که بعداً در فایل پیکربندی فعلی بیاید اولویت خواهد داشت.

اگر مسیر داده‌شده وجود نداشته باشد، tig همراه با یک هشدار به کار خود ادامه می‌دهد. برای نادیده گرفتن این هشدار، پارامتر -q را مشخص کنید.

ساختار دستور به این صورت است:

source [-q] path

مثال‌ها:

source ~/.tig/colorscheme.tigrc
source ~/.tig/keybindings.tigrc

Copyright (c) 2006-2026 Jonas Fonseca <jonas.fonseca@gmail.com[1]>

این برنامه یک نرم‌افزار آزاد است؛ شما می‌توانید آن را تحت شرایط اجازه‌نامه عمومی همگانی گنو (GNU General Public License) همان‌طور که توسط بنیاد نرم‌افزارهای آزاد منتشر شده است، چه نسخه ۲ مجوز یا (به انتخاب خودتان) هر نسخه بعدی، بازتوزیع کرده و/یا تغییر دهید.

tig(1), tigmanual(7), git(7), git-config(1)

1.
jonas.fonseca@gmail.com
mailto:jonas.fonseca@gmail.com
2026-06-13 Tig 2.6.1