| BAT(1) | General Commands Manual | BAT(1) |
نام (NAME)
bat - شبیهساز دستور cat با برجستهسازی نحوی و یکپارچگی گیت
خلاصه دستور (SYNOPSIS)
توضیحات (DESCRIPTION)
دستور bat محتوای دارای برجستهسازی نحوی مجموعهای از FILE ها را در ترمینال چاپ میکند. اگر هیچ FILE مشخص نشود، یا زمانی که FILE برابر '-' باشد، ورودی استاندارد را میخواند.
دستور bat از تعداد زیادی از زبانهای برنامهنویسی و نشانهگذاری پشتیبانی میکند. همچنین با git(1) ارتباط برقرار میکند تا تغییرات را نسبت به ایندکس گیت نمایش دهد. دستور bat بهطور خودکار خروجی خود را از طریق یک صفحهبند (بهطور پیشفرض: less) هدایت میکند.
هر زمان که خروجی bat به یک ترمینال غیرتعاملی برود، یعنی زمانی که خروجی به یک فرآیند دیگر یا درون یک فایل هدایت (pipe) شود، bat به عنوان یک جایگزین مستقیم برای cat(1) عمل کرده و به چاپ محتوای ساده فایل بازمیگردد، مگر اینکه یک استایل صریح درخواست شده باشد.
گزینهها (OPTIONS)
نکات کلی: گزینههای خط فرمان مانند '-l' / '--language' که مقدار میپذیرند را میتوان به یکی از صورتهای '--languagevalue'، '--language=value'، '-l value' یا '-lvalue' مشخص کرد.
-A, --show-all
- نمایش نویسههای غیرقابلچاپ مانند فاصله (space)، تب (tab) یا خط جدید (newline). از '--tabs' برای کنترل عرض جایگزینهای تب استفاده کنید.
--nonprintable-notation <notation>
- نحوه نمایش نویسههای غیرقابلچاپ را هنگام استفاده از --show-all مشخص میکند.
مقادیر ممکن:
--binary <behavior>
- نحوه برخورد با محتوای باینری.
مقادیر ممکن:
- no-printing
- هیچ محتوای باینری چاپ نشود (پیشفرض)
- as-text
- با محتوای باینری مانند متن عادی رفتار شود
--completion <SHELL>
- نمایش تکمیل خودکار پوسته برای یک پوسته مشخص. مقادیر ممکن: bash، fish، zsh، ps1
-p, --plain
- فقط نمایش استایل ساده بدون تزئینات اضافی. این گزینه نام مستعاری برای '--style=plain' است. هنگامی که '-p' دو بار استفاده شود ('-pp')، صفحهبندی خودکار را نیز غیرفعال میکند (نام مستعاری برای '--style=plain--paging=never').
-l, --language <language>
- تنظیم صریح زبان برای برجستهسازی نحوی. زبان میتواند به صورت یک نام (مانند 'C++' یا 'LaTeX') یا پسوند فایل ممکن (مانند 'cpp'، 'hpp' یا 'md') مشخص شود. از '--list-languages' برای نمایش تمام نامهای زبان و پسوندهای فایل پشتیبانیشده استفاده کنید.
-H, --highlight-line <N:M>...
- محدوده خطوط مشخصشده را با یک رنگ پسزمینه متفاوت برجسته میکند. به عنوان مثال:
- --highlight-line 40
- خط ۴۰ را برجسته میکند
- --highlight-line 30:40
- خطوط ۳۰ تا ۴۰ را برجسته میکند
- --highlight-line :40
- خطوط ۱ تا ۴۰ را برجسته میکند
- --highlight-line 40:
- خطوط ۴۰ تا انتهای فایل را برجسته میکند
- --highlight-line 30:+10
- خطوط ۳۰ تا ۴۰ را برجسته میکند
--file-name <name>...
- نامی را برای نمایش فایل مشخص میکند. هنگام ارسال داده به bat از طریق STDIN که در غیر این صورت bat نام فایل را نمیداند مفید است. توجه داشته باشید که نام فایل ارائهشده برای تشخیص نحو نیز استفاده میشود.
-d, --diff
- فقط خطوطی را نمایش میدهد که نسبت به ایندکس گیت اضافه، حذف یا ویرایش شدهاند. از '--diff-context=N' برای کنترل میزان زمینهای که میخواهید ببینید استفاده کنید.
--diff-context <N>...
- هنگام استفاده از '--diff'، تعداد N خط از زمینه را در اطراف خطوط اضافه/حذف/ویرایششده در بر میگیرد.
--tabs <T>
- عرض تب را روی T فاصله تنظیم میکند. از عرض 0 برای عبور مستقیم تبها بدون تغییر استفاده کنید.
--wrap <mode>
- حالت شکستن خودکار خطوط متن را مشخص میکند (*auto*، never، character). گزینه '--terminal-width' میتواند علاوه بر این برای کنترل عرض خروجی استفاده شود.
-S, --chop-long-lines
- برش تمام خطوط طولانیتر از عرض صفحه نمایش. نام مستعاری برای '--wrap=never'.
--terminal-width <width>
- عرض ترمینال را به جای تعیین خودکار، به صورت صریح تنظیم میکند. اگر با '+' یا '-' شروع شود، مقدار به عنوان یک افست نسبت به عرض واقعی ترمینال در نظر گرفته میشود. همچنین ببینید: '--wrap'.
-n, --number
- فقط نمایش شماره خطوط بدون تزئینات دیگر. این گزینه نام مستعاری برای '--style=numbers' است.
--color <when>
- مشخص میکند چه زمانی از خروجی رنگی استفاده شود. حالت خودکار تنها در صورتی رنگها را فعال میکند که یک ترمینال تعاملی شناسایی شود. مقادیر ممکن: *auto*، never، always.
--italic-text <when>
- مشخص میکند چه زمانی از توالیهای ANSI برای متن مورب (ایتالیک) در خروجی استفاده شود. مقادیر ممکن: always، *never*.
--decorations <when>
- مشخص میکند چه زمانی از تزئیناتی که از طریق '--style' مشخص شدهاند استفاده شود. حالت خودکار تنها در صورت تشخیص یک ترمینال تعاملی تزئینات را فعال میکند. حالت always حتی هنگام لولهکشی (pipe) خروجی نیز تزئینات را نمایش میدهد. مقادیر ممکن: *auto*، never، always.
-f, --force-colorization
- نام مستعاری برای '--decorations=always--color=always'. این گزینه زمانی مفید است که خروجی bat به برنامه دیگری هدایت میشود، اما میخواهید رنگآمیزی و تزئینات حفظ شوند.
--paging <when>
- مشخص میکند چه زمانی از صفحهبند (pager) استفاده شود. برای غیرفعال کردن صفحهبند، از '--paging=never' یا نام مستعار آن، -P استفاده کنید. برای غیرفعال کردن دائمی صفحهبند، متغیر محیطی BAT_PAGER را به یک رشته خالی تنظیم کنید. برای کنترل صفحهبند مورد استفاده، گزینه '--pager' را ببینید. مقادیر ممکن: *auto*، never، always.
--pager <command>
- تعیین میکند کدام صفحهبند استفاده شود. این گزینه متغیرهای محیطی PAGER و BAT_PAGER را بازنویسی (override) میکند. صفحهبند پیشفرض 'less' است. اگر '--pager=builtin' را ارائه دهید، از صفحهبند داخلی 'minus' استفاده میشود. برای کنترل زمان استفاده از صفحهبند، گزینه '--paging' را ببینید. مثال: '--pagerless -RF'.
نکته: بهطور پیشفرض، اگر صفحهبند روی 'less' تنظیم شده باشد (و هیچ گزینه خط فرمانی مشخص نشده باشد)، 'bat' گزینههای خط فرمان زیر را به صفحهبند ارسال میکند: '-R' / '--RAW-CONTROL-CHARS'، '-F' / '--quit-if-one-screen' و '-X' / '--no-init'. آخرین گزینه ('-X') تنها برای نسخههای 'less' قدیمیتر از ۵۳۰ استفاده میشود. گزینه '-R' برای تفسیر صحیح رنگهای ANSI مورد نیاز است. گزینه دوم ('-F') به less دستور میدهد اگر اندازه خروجی کوچکتر از اندازه عمودی ترمینال باشد، بلافاصله خارج شود. این ویژگی برای فایلهای کوچک بسیار راحت است زیرا نیازی به فشردن کلید 'q' برای خروج از صفحهبند ندارید. گزینه سوم ('-X') برای رفع یک باگ در قابلیت '--quit-if-one-screen' در نسخههای قدیمی 'less' لازم است؛ اما متأسفانه پشتیبانی از چرخ ماوس را در 'less' از کار میاندازد. اگر میخواهید پیمایش با چرخ ماوس را در نسخههای قدیمیتر 'less' فعال کنید، میتوانید فقط '-R' را ارسال کنید (مانند مثال بالا، که این کار قابلیت quit-if-one-screen را غیرفعال میکند). برای نسخه ۵۳۰ یا جدیدتر less، این قابلیت بهطور خودکار کار میکند.
-m, --map-syntax <glob-pattern:syntax-name>...
- نگاشت یک الگوی glob به یک نام نحو (syntax) موجود. الگوی glob بر روی مسیر کامل و نام فایل مطابقت داده میشود. برای مثال، برای برجستهسازی فایلهای *.build با نحو Python، از -m '*.build:Python' استفاده کنید. برای برجستهسازی فایلهایی به نام '.myignore' با نحو Git Ignore، از -m '.myignore:Git Ignore' استفاده کنید. توجه داشته باشید که سمت راست، *نام* نحو است، نه پسوند فایل.
--ignored-suffix <ignored-suffix>
- نادیده گرفتن پسوند. برای مثال: 'bat --ignored-suffix .dev my_file.json.dev' از نحو JSON استفاده کرده و '.dev' را نادیده میگیرد.
--theme <theme>
- تنظیم تم برای برجستهسازی نحو. از --list-themes برای دیدن تمام تمهای موجود استفاده کنید. برای تنظیم یک تم پیشفرض، گزینه --theme="..." را به فایل پیکربندی اضافه کنید یا متغیر محیطی BAT_THEME را صادر کنید (مثال: 'exportBAT_THEME="..."').
مقادیر ویژه:
- auto (پیشفرض)
- بسته به رنگهای ترمینال یک تم تیره یا روشن را انتخاب میکند. از --theme-light و --theme-dark برای سفارشیسازی تم انتخابشده استفاده کنید.
- auto:always
- گونهای از auto که در آن رنگهای ترمینال حتی زمانی که خروجی هدایت (تغییر مسیر) شده است نیز تشخیص داده میشوند.
- auto:system (فقط در macOS)
- گونهای از auto که در آن طرح رنگ به جای آن از اولویت سراسری سیستم تشخیص داده میشود.
- dark
- استفاده از تم تیرهای که با --theme-dark مشخص شده است.
- light
- استفاده از تم روشنی که با --theme-light مشخص شده است.
--theme-dark <theme>
- نام تم مورد استفاده برای برجستهسازی نحو را زمانی که ترمینال از پسزمینه تیره استفاده میکند تنظیم میکند. برای تنظیم یک تم پیشفرض، گزینه --theme-dark="..." را به فایل پیکربندی اضافه کنید یا متغیر محیطی BAT_THEME_DARK را صادر کنید (مثال: 'exportBAT_THEME_DARK="..."'). این گزینه فقط زمانی تأثیر دارد که گزینه --theme روی auto یا dark تنظیم شده باشد.
--theme-light <theme>
- نام تم مورد استفاده برای برجستهسازی نحو را زمانی که ترمینال از پسزمینه روشن استفاده میکند تنظیم میکند. برای تنظیم یک تم پیشفرض، گزینه --theme-light="..." را به فایل پیکربندی اضافه کنید یا متغیر محیطی BAT_THEME_LIGHT را صادر کنید (مثال: 'exportBAT_THEME_LIGHT="..."'). این گزینه فقط زمانی تأثیر دارد که گزینه --theme روی auto یا light تنظیم شده باشد.
--list-themes
- نمایش فهرستی از تمهای پشتیبانیشده برای برجستهسازی نحو.
-s, --squeeze-blank
- فشردهسازی خطوط خالی متوالی به یک خط خالی منفرد.
--squeeze-limit <squeeze-limit>
- تنظیم حداکثر تعداد خطوط خالی متوالی برای چاپ.
--strip-ansi <when>
- مشخص میکند چه زمانی توالیهای گریز ANSI از ورودی حذف شوند. حالت خودکار توالیهای گریز را حذف میکند مگر اینکه زبان برجستهسازی نحو، متن ساده (plain text) باشد. مقادیر ممکن: auto، always، *never*.
--style <style-components>
- پیکربندی اینکه کدام عناصر (شماره خطوط، سرآیند فایل، حاشیههای شبکه/جدول، تغییرات گیت و...) علاوه بر محتوای فایل نمایش داده شوند. آرگومان یک فهرست جداشده با کاما از اجزا برای نمایش (مانند 'numbers,changes,grid') یا یک استایل از پیش تعریفشده ('full') است. برای تنظیم یک استایل پیشفرض، گزینه '--style=".."' را به فایل پیکربندی اضافه کنید یا متغیر محیطی BAT_STYLE را صادر (export) کنید (مثال: 'exportBAT_STYLE=".."').
- هنگامی که استایلها در چندین مکان مشخص شده باشند، "نزدیکترین" مجموعه استایلها اولویت دارد. آرگومانهای خط فرمان بالاترین اولویت را دارند، پس از آن متغیر محیطی BAT_STYLE و سپس فایل پیکربندی قرار میگیرد. اگر هر مجموعهای از استایلها کاملاً از اجزایی با پیشوند "+" یا "-" تشکیل شده باشد، به جای جایگزینی، مجموعه استایلهای قبلی را تغییر میدهد.
- بهطور پیشفرض، اجزای زیر فعال هستند: changes, grid, header-filename, numbers, snip
- مقادیر ممکن: *default*, full, auto, plain, changes, header, header-filename, header-filesize, grid, rule, numbers, snip.
-r, --line-range <N:M>...
- فقط محدوده مشخصشدهای از خطوط را برای هر فایل چاپ میکند. به عنوان مثال:
- --line-range 30:40
- خطوط ۳۰ تا ۴۰ را چاپ میکند
- --line-range :40
- خطوط ۱ تا ۴۰ را چاپ میکند
- --line-range 40:
- خطوط ۴۰ تا انتهای فایل را چاپ میکند
- --line-range 30:+10
- خطوط ۳۰ تا ۴۰ را چاپ میکند
-L, --list-languages
- نمایش فهرستی از زبانهای پشتیبانیشده برای برجستهسازی نحو.
-u, --unbuffered
- این گزینه به دلایل سازگاری با استاندارد POSIX وجود دارد ('u' برای 'unbuffered' یا بدون بافر است). خروجی همیشه بدون بافر است - این گزینه نادیده گرفته میشود.
--no-custom-assets
- عدم بارگذاری داراییهای سفارشی.
--config-dir
- نمایش دایرکتوری پیکربندی bat.
--cache-dir
- نمایش دایرکتوری کش (حافظه موقت) bat.
--diagnostic
- نمایش اطلاعات تشخیصی برای گزارش اشکالات.
--acknowledgements
- نمایش قدردانیها و اعتبارات.
--set-terminal-title
- تنظیم عنوان ترمینال به نام فایلها هنگام استفاده از صفحهبند.
-h, --help
- چاپ این پیام راهنما.
-V, --version
- نمایش اطلاعات نسخه.
آرگومانهای موضعی (POSITIONAL ARGUMENTS)
<FILE>...
- فایلهایی که باید چاپ و به یکدیگر متصل شوند. برای خواندن از ورودی استاندارد، از یک خط تیره ('-') یا عدم درج هرگونه آرگومان استفاده کنید.
زیردستورها (SUBCOMMANDS)
cache - ویرایش حافظه موقت (کش) تعاریف نحو و تمها.
بخشها و استایلها (STYLES)
دستور bat امکان سفارشیسازی ظاهر خروجی و اجزای کادر را از طریق گزینه --style فراهم میکند. آرگومان این گزینه شامل فهرستی جداشده با کاما از اجزا یا یکی از استایلهای از پیش تعریفشده است.
اجزایی که بهطور پیشفرض فعال هستند:
changes (نمایش تغییرات گیت در نوار کناری)، grid (خطوط حاشیه و چارچوب جدول)، header-filename (نام فایل در سرآیند)، numbers (نمایش شماره خطوط)، snip (علامت برش بین محدودههای خطوط).
مقادیر ممکن:
default، full، auto، plain، changes، header، header-filename، header-filesize، grid، rule، numbers و snip.
فایلها (FILES)
دستور bat میتواند از طریق یک فایل پیکربندی نیز سفارشی شود. مکان این فایل به سیستمعامل شما بستگی دارد. برای بهدست آوردن مسیر پیشفرض سیستم خود، دستور زیر را اجرا کنید:
bat --config-file
همچنین، میتوانید از متغیر محیطی BAT_CONFIG_PATH استفاده کنید تا bat را به مکانی غیرپیشفرض از فایل پیکربندی هدایت نمایید.
برای ایجاد یک فایل پیکربندی پیشفرض، دستور زیر را فراخوانی کنید:
bat --generate-config-file
گزینههای مرتبط عبارتند از:
--config-file
- نمایش مسیر فایل پیکربندی.
--generate-config-file
- ایجاد یک فایل پیکربندی پیشفرض.
--no-config
- عدم استفاده از فایل پیکربندی.
افزودن زبانهای سفارشی (ADDING CUSTOM LANGUAGES)
دستور bat از فایلهای زبان .sublime-syntax در Sublime Text پشتیبانی میکند و میتواند برای افزودن زبانهای بیشتر به سیستم محلی شما سفارشی شود. برای این کار، فایلهای زبان .sublime-syntax را به `$(bat --config-dir)/syntaxes` اضافه کرده و دستور `bat cache --build` را اجرا کنید.
مثال:
cd "$(bat --config-dir)/syntaxes"
# قرار
دادن
فایلهای
تعریف زبان
جدید '.sublime-syntax'
# در این پوشه
(یا
زیرپوشههای
آن)، برای
مثال:
git clone https://github.com/tellnobody1/sublime-purescript-syntax
# و سپس
ساخت حافظه
موقت (کش):
bat cache --build
پس از
ساخته شدن
کش، زبان
جدید در `bat
--list-languages` قابل
مشاهده
خواهد بود.
اگر قصد حذف
زبانهای
سفارشی را
داشته
باشید،
میتوانید
کش را با `bat cache
--clear`
پاکسازی
کنید.
افزودن تمهای سفارشی (ADDING CUSTOM THEMES)
مشابه زبانهای سفارشی، bat از تمهای .tmTheme مربوط به Sublime Text پشتیبانی میکند. این تمها را میتوان در `$(bat --config-dir)/themes` نصب نمود و با اجرای `bat cache --build` به کش اضافه کرد.
پیشپردازنده ورودی (INPUT PREPROCESSOR)
همانند less(1)، دستور bat نیز از پیشپردازندههای ورودی از طریق متغیرهای محیطی LESSOPEN و LESSCLOSE پشتیبانی میکند. علاوه بر این، bat تلاش میکند تا حد امکان با پیادهسازی پیشپردازنده less سازگار باشد.
برای استفاده از پیشپردازنده، دستور زیر را فراخوانی کنید:
bat --lessopen
همچنین میتوان با افزودن گزینه '--lessopen' به فایل پیکربندی، پیشپردازنده را بهطور پیشفرض فعال کرد.
برای غیرفعال کردن موقت پیشپردازنده در صورتی که بهطور پیشفرض فعال است، دستور زیر را فراخوانی کنید:
bat --no-lessopen
گزینههای مرتبط عبارتند از:
--lessopen
- فعالسازی پیشپردازنده $LESSOPEN.
--no-lessopen
- غیرفعالسازی پیشپردازنده $LESSOPEN در صورت فعال بودن (گزینه --lessopen را بازنویسی میکند).
برای اطلاعات بیشتر، بخش "INPUT PREPROCESSOR" در less(1) را ببینید.
همچنین ببینید (SEE ALSO)
برای
اطلاعات
بیشتر و
مستندات
بهروز،
مخزن
گیتهاب bat
را مشاهده
کنید:
https://github.com/sharkdp/bat