استنساخ قطة (1) مع تمييز بناء الجملة وتكامل Git.
الميزات الرئيسية • كيفية الاستخدام • التثبيت • التخصيص • أهداف المشروع، والبدائل
[إنجليزي] [中文] [日本語] [한국어] [Русский]
شكر خاص لأكبر الرعاة:
تطبيقك جاهز للمؤسسات.
ابدأ البيع لعملاء المؤسسات باستخدام بضعة أسطر فقط من التعليمات البرمجية.
أضف تسجيل الدخول الموحد (والمزيد) في دقائق بدلاً من أشهر.
يدعم bat
تمييز بناء الجملة لعدد كبير من لغات البرمجة والترميز:
يتواصل bat
مع git
لإظهار التعديلات المتعلقة بالفهرس (انظر الشريط الجانبي الأيسر):
يمكنك استخدام الخيار -A
/ --show-all
لإظهار وتمييز الأحرف غير القابلة للطباعة:
افتراضيًا، يقوم bat
بتوجيه مخرجاته إلى جهاز النداء (على سبيل المثال less
) إذا كان الإخراج كبيرًا جدًا بالنسبة لشاشة واحدة. إذا كنت تفضل عمل bat
مثل cat
طوال الوقت (عدم إخراج الصفحة مطلقًا)، فيمكنك تعيين --paging=never
كخيار، إما في سطر الأوامر أو في ملف التكوين الخاص بك. إذا كنت تنوي استخدام الاسم المستعار cat
bat
في تكوين الصدفة، فيمكنك استخدام alias cat='bat --paging=never'
للحفاظ على السلوك الافتراضي.
حتى مع مجموعة النداء، لا يزال بإمكانك استخدام bat
لتسلسل الملفات. عندما يكتشف bat
محطة غير تفاعلية (على سبيل المثال، عندما تقوم بالتوصيل إلى عملية أخرى أو إلى ملف)، فإن bat
سيكون بمثابة بديل مباشر لـ cat
ويعود إلى طباعة محتويات الملف العادي، بغض النظر عن خيار --pager
قيمة.
عرض ملف واحد على المحطة
> bat README.md
عرض ملفات متعددة في وقت واحد
> bat src/ * .rs
القراءة من stdin، وتحديد بناء الجملة تلقائيًا (لاحظ أن التمييز لن يعمل إلا إذا كان من الممكن تحديد بناء الجملة من السطر الأول من الملف، عادةً من خلال shebang مثل #!/bin/sh
)
> curl -s https://sh.rustup.rs | bat
القراءة من stdin، وتحديد اللغة بشكل صريح
> yaml2json .travis.yml | json_pp | bat -l json
إظهار وتمييز الأحرف غير القابلة للطباعة:
> bat -A /etc/hosts
استخدمه كبديل cat
:
bat > note.md # quickly create a new file
bat header.md content.md footer.md > document.md
bat -n main.rs # show line numbers (only)
bat f - g # output 'f', then stdin, then 'g'.
fzf
يمكنك استخدام bat
كمعاين لـ fzf
. للقيام بذلك، استخدم خيار bat
s --color=always
لفرض الإخراج الملون. يمكنك أيضًا استخدام خيار --line-range
لتقييد أوقات التحميل للملفات الطويلة:
fzf --preview " bat --color=always --style=numbers --line-range=:500 {} "
لمزيد من المعلومات، راجع README
الخاص بـ fzf
.
find
أو fd
يمكنك استخدام الخيار -exec
find
لمعاينة جميع نتائج البحث باستخدام bat
:
find … -exec bat {} +
إذا كنت تستخدم fd
، فيمكنك استخدام الخيار -X
/ --exec-batch
للقيام بنفس الشيء:
fd … -X bat
ripgrep
باستخدام batgrep
، يمكن استخدام bat
كطابعة لنتائج بحث ripgrep
.
batgrep needle src/
tail -f
يمكن دمج bat
مع tail -f
لمراقبة ملف معين بشكل مستمر مع تمييز بناء الجملة.
tail -f /var/log/pacman.log | bat --paging=never -l log
لاحظ أنه يتعين علينا إيقاف تشغيل الترحيل حتى يعمل هذا. لقد حددنا أيضًا بناء الجملة بشكل صريح ( -l log
)، حيث لا يمكن اكتشافه تلقائيًا في هذه الحالة.
git
يمكنك دمج bat
مع git show
لعرض إصدار أقدم من ملف معين مع تمييز بناء الجملة المناسب:
git show v0.6.0:src/main.rs | bat -l rs
git diff
يمكنك دمج bat
مع git diff
لعرض الأسطر حول تغييرات التعليمات البرمجية مع تمييز بناء الجملة المناسب:
batdiff () {
git diff --name-only --relative --diff-filter=d | xargs bat --diff
}
إذا كنت تفضل استخدام هذا كأداة منفصلة، فاطلع على batdiff
في bat-extras
.
إذا كنت تبحث عن مزيد من الدعم لعمليات git و diff، فاطلع على delta
.
xclip
يمكن لأرقام الأسطر وعلامات تعديل Git في مخرجات bat
أن تجعل من الصعب نسخ محتويات الملف. لمنع ذلك، يمكنك استدعاء bat
باستخدام الخيار -p
/ --plain
أو ببساطة توجيه الإخراج إلى xclip
:
bat main.cpp | xclip
سيكتشف bat
أنه تتم إعادة توجيه الإخراج وسيقوم بطباعة محتويات الملف العادي.
man
يمكن استخدام bat
كجهاز استدعاء للتلوين لـ man
عن طريق ضبط متغير البيئة MANPAGER
:
export MANPAGER= " sh -c 'col -bx | bat -l man -p' "
man 2 select
(استبدل bat
بـ batcat
إذا كنت تستخدم Debian أو Ubuntu)
قد يكون من الضروري أيضًا تعيين MANROFFOPT="-c"
إذا واجهت مشاكل في التنسيق.
إذا كنت تفضل تجميع هذا في أمر جديد، فيمكنك أيضًا استخدام batman
.
لاحظ أن بناء جملة Manpage تم تطويره في هذا المستودع ولا يزال يحتاج إلى بعض العمل.
لاحظ أيضًا أن هذا لن ينجح مع تطبيق Mandocs man
.
prettier
/ shfmt
/ rustfmt
البرنامج النصي prettybat
عبارة عن غلاف يقوم بتنسيق التعليمات البرمجية وطباعتها باستخدام bat
.
--help
رسائل المساعدة يمكنك استخدام bat
لتلوين نص المساعدة: $ cp --help | bat -plhelp
يمكنك أيضًا استخدام غلاف حول هذا:
# in your .bashrc/.zshrc/*rc
alias bathelp= ' bat --plain --language=help '
help () {
" $@ " --help 2>&1 | bathelp
}
ثم يمكنك القيام $ help cp
أو $ help git commit
.
عندما تستخدم zsh
، يمكنك أيضًا استخدام الأسماء المستعارة العامة لتجاوز -h
و --help
بالكامل:
alias -g -- -h= ' -h 2>&1 | bat --language=help --style=plain '
alias -g -- --help= ' --help 2>&1 | bat --language=help --style=plain '
بهذه الطريقة، يمكنك الاستمرار في استخدام cp --help
، لكن ستحصل على صفحات مساعدة ملونة.
انتبه إلى أنه في بعض الحالات، قد لا يكون -h
اختصارًا لـ --help
(على سبيل المثال مع ls
).
يرجى الإبلاغ عن أية مشكلات تتعلق بصيغة المساعدة في هذا المستودع.
apt
)... وغيرها من توزيعات Linux المبنية على دبيان.
bat
متاح على Ubuntu منذ 20.04 ("Focal") وعلى Debian منذ أغسطس 2021 (Debian 11 - "Bullseye").
إذا كان تثبيت Ubuntu/Debian لديك جديدًا بدرجة كافية، فيمكنك ببساطة تشغيل:
sudo apt install bat
هام : إذا قمت بتثبيت bat
بهذه الطريقة، يرجى ملاحظة أنه قد يتم تثبيت الملف القابل للتنفيذ batcat
بدلاً من bat
(بسبب تعارض الاسم مع حزمة أخرى). يمكنك إعداد رابط رمزي أو اسم مستعار bat -> batcat
لمنع أي مشكلات قد تنشأ بسبب هذا ولكي تكون متسقًا مع التوزيعات الأخرى:
mkdir -p ~ /.local/bin
ln -s /usr/bin/batcat ~ /.local/bin/bat
.deb
)... وغيرها من توزيعات Linux المبنية على دبيان.
إذا لم تتم ترقية الحزمة بعد إلى تثبيت Ubuntu/Debian الخاص بك، أو كنت تريد الإصدار الأحدث من bat
، فقم بتنزيل أحدث حزمة .deb
من صفحة الإصدار وقم بتثبيتها عبر:
sudo dpkg -i bat_0.18.3_amd64.deb # adapt version number and architecture
يمكنك تثبيت حزمة bat
من المصادر الرسمية، بشرط تمكين المستودع المناسب:
apk add bat
يمكنك تثبيت حزمة bat
من المصادر الرسمية:
pacman -S bat
يمكنك تثبيت حزمة bat
من مستودع Fedora Modular الرسمي.
dnf install bat
يمكنك تثبيت حزمة bat
من dev-kit.
emerge sys-apps/bat
يمكنك تثبيت حزمة bat
من المصادر الرسمية:
emerge sys-apps/bat
يمكنك تثبيت bat
عبر xbps-install:
xbps-install -S bat
يمكنك تثبيت bat
عبر pkg:
pkg install bat
يمكنك تثبيت حزمة bat
مترجمة مسبقًا باستخدام pkg:
pkg install bat
أو أنشئه بنفسك من منافذ FreeBSD:
cd /usr/ports/textproc/bat
make install
يمكنك تثبيت حزمة bat
باستخدام pkg_add(1)
:
pkg_add bat
يمكنك تثبيت bat
باستخدام مدير الحزم nix:
nix-env -i bat
يمكنك تثبيت bat
باستخدام Flox
flox install bat
يمكنك تثبيت bat
باستخدام zypper:
zypper install bat
لا تتوفر حاليا أي حزمة مبكرة موصى بها. قد تكون الحزم الموجودة متاحة، ولكنها غير مدعومة رسميًا وقد تحتوي على مشكلات.
يمكنك تثبيت bat
باستخدام Homebrew:
brew install bat
أو قم بتثبيت bat
باستخدام MacPorts:
port install bat
هناك بعض الخيارات لتثبيت bat
على نظام التشغيل Windows. بمجرد تثبيت bat
، قم بإلقاء نظرة على قسم "استخدام bat
على نظام التشغيل Windows".
سوف تحتاج إلى تثبيت حزمة Visual C++ القابلة لإعادة التوزيع.
يمكنك تثبيت bat
عبر WinGet:
winget install sharkdp.bat
يمكنك تثبيت bat
عبر Chocolatey:
choco install bat
يمكنك تثبيت bat
عبر المجرفة:
scoop install bat
يمكنك تنزيل الثنائيات المعدة مسبقًا من صفحة الإصدار،
سوف تحتاج إلى تثبيت حزمة Visual C++ القابلة لإعادة التوزيع.
قم بمراجعة صفحة الإصدار للتعرف على الإصدارات المعدة مسبقًا من bat
للعديد من البنيات المختلفة. تتوفر أيضًا الثنائيات المرتبطة بشكل ثابت: ابحث عن الأرشيفات التي تحتوي على musl
في اسم الملف.
إذا كنت تريد إنشاء bat
من المصدر، فأنت بحاجة إلى Rust 1.70.0 أو أعلى. يمكنك بعد ذلك استخدام cargo
لبناء كل شيء:
cargo install --locked bat
لاحظ أنه لا يمكن تثبيت ملفات إضافية مثل صفحة الدليل أو ملفات إكمال الصدفة بهذه الطريقة. سيتم إنشاؤها بواسطة cargo
ويجب أن تكون متاحة في المجلد المستهدف للبضائع (تحت build
).
استخدم bat --list-themes
للحصول على قائمة بجميع السمات المتاحة لتسليط الضوء على بناء الجملة. لتحديد سمة TwoDark
، قم باستدعاء bat
باستخدام خيار --theme=TwoDark
أو قم بتعيين متغير البيئة BAT_THEME
على TwoDark
. استخدم export BAT_THEME="TwoDark"
في ملف بدء تشغيل Shell الخاص بك لجعل التغيير دائمًا. وبدلاً من ذلك، استخدم ملف التكوين الخاص بـ bat
.
إذا كنت تريد معاينة السمات المختلفة في ملف مخصص، فيمكنك استخدام الأمر التالي (تحتاج إلى fzf
لهذا):
bat --list-themes | fzf --preview= " bat --theme={} --color=always /path/to/file "
يقوم bat
تلقائيًا باختيار السمة المناسبة اعتمادًا على لون خلفية جهازك الطرفي. يمكنك استخدام خيارات --theme-light
/ --theme-light
أو متغيرات البيئة BAT_THEME_DARK
/ BAT_THEME_LIGHT
لتخصيص السمات المستخدمة. يعد هذا مفيدًا بشكل خاص إذا كنت تقوم بالتبديل بشكل متكرر بين الوضع الداكن والوضع الفاتح.
يمكنك أيضًا استخدام سمة مخصصة باتباع قسم "إضافة سمات جديدة" أدناه.
يحتوي bat
على ثلاثة سمات تستخدم دائمًا ألوان 8 بت، حتى عند توفر دعم الألوان الحقيقية:
ansi
تبدو لائقة على أي محطة. ويستخدم ألوان 3 بت: الأسود والأحمر والأخضر والأصفر والأزرق والأرجواني والسماوي والأبيض.base16
لموضوعات Base16 الطرفية. ويستخدم ألوان 4 بت (ألوان 3 بت بالإضافة إلى المتغيرات الساطعة) وفقًا لإرشادات التصميم الأساسية 16.base16-256
لـ base16-shell. فهو يستبدل بعض الألوان الزاهية بألوان 8 بت من 16 إلى 21. لا تستخدم هذا ببساطة لأن لديك محطة ذات 256 لونًا ولكنك لا تستخدم Base16-shell.على الرغم من أن هذه السمات أكثر تقييدًا، إلا أنها تتمتع بثلاث مزايا مقارنة بموضوعات الألوان الحقيقية. هم:
يمكنك استخدام خيار --style
للتحكم في مظهر مخرجات bat
. يمكنك استخدام --style=numbers,changes
، على سبيل المثال، لإظهار تغييرات Git وأرقام الأسطر فقط ولكن بدون شبكة أو رأس ملف. قم بتعيين متغير البيئة BAT_STYLE
لجعل هذه التغييرات دائمة أو استخدم ملف تكوين bat
.
نصيحة
إذا حددت نمطًا افتراضيًا في ملف تكوين bat
، فيمكنك تغيير المكونات التي يتم عرضها أثناء تشغيل bat
مرة واحدة باستخدام وسيطة سطر الأوامر --style
. من خلال بادئة المكون بـ +
أو -
، يمكن إضافته أو إزالته من النمط الحالي.
على سبيل المثال، إذا كان التكوين الخاص بك يحتوي على --style=full,-snip
، فيمكنك تشغيل الخفافيش باستخدام --style=-grid,+snip
لإزالة الشبكة وإعادة إضافة مكون snip
. أو، إذا كنت تريد تجاوز الأنماط بالكامل، فاستخدم --style=numbers
لإظهار أرقام الأسطر فقط.
إذا وجدت أن بناء جملة معين غير متوفر داخل bat
، فيمكنك اتباع هذه التعليمات لإضافة صيغ جديدة بسهولة إلى تثبيت bat
الحالي.
يستخدم bat
مكتبة syntect
الممتازة لتسليط الضوء على بناء الجملة. يمكن syntect
قراءة أي ملف وموضوع Sublime Text .sublime-syntax
.
من الموارد الجيدة للعثور على حزم Sublime Syntax هو التحكم في الحزم. بمجرد العثور على بناء الجملة:
قم بإنشاء مجلد يحتوي على ملفات تعريف بناء الجملة:
mkdir -p " $( bat --config-dir ) /syntaxes "
cd " $( bat --config-dir ) /syntaxes "
# Put new '.sublime-syntax' language definition files
# in this folder (or its subdirectories), for example:
git clone https://github.com/tellnobody1/sublime-purescript-syntax
استخدم الآن الأمر التالي لتحليل هذه الملفات إلى ذاكرة تخزين مؤقت ثنائية:
bat cache --build
أخيرًا، استخدم bat --list-languages
للتحقق من توفر اللغات الجديدة.
إذا أردت العودة إلى الإعدادات الافتراضية، فاتصل بـ:
bat cache --clear
إذا كنت تعتقد أنه يجب تضمين بناء جملة معين في bat
بشكل افتراضي، فيرجى التفكير في فتح تذكرة "طلب بناء الجملة" بعد قراءة السياسات والتعليمات هنا: افتح طلب بناء الجملة.
يعمل هذا بشكل مشابه جدًا لكيفية إضافة تعريفات بناء الجملة الجديدة.
أولاً، قم بإنشاء مجلد يحتوي على سمات تسليط الضوء على بناء الجملة الجديد:
mkdir -p " $( bat --config-dir ) /themes "
cd " $( bat --config-dir ) /themes "
# Download a theme in '.tmTheme' format, for example:
git clone https://github.com/greggb/sublime-snazzy
# Update the binary cache
bat cache --build
أخيرًا، استخدم bat --list-themes
للتحقق من توفر السمات الجديدة.
يمكنك إضافة أنماط اسم ملف جديدة (أو تغيير موجودة) باستخدام خيار سطر الأوامر --map-syntax
. يأخذ الخيار وسيطة pattern:syntax
حيث يكون pattern
عبارة عن نمط كروي مطابق لاسم الملف ومسار الملف المطلق. جزء syntax
هو الاسم الكامل للغة المدعومة (استخدم bat --list-languages
للحصول على نظرة عامة).
ملحوظة: ربما تريد استخدام هذا الخيار كإدخال في ملف تكوين bat
للاستمرارية بدلاً من تمريره على سطر الأوامر لمرة واحدة. بشكل عام، يمكنك فقط استخدام -l
إذا كنت تريد تحديد لغة للملف يدويًا.
مثال: لاستخدام تمييز بناء الجملة "INI" لجميع الملفات ذات ملحق الملف .conf
، استخدم
--map-syntax= ' *.conf:INI '
مثال: لفتح جميع الملفات التي تسمى .ignore
(المطابقة التامة) مع بناء جملة "Git Ignore"، استخدم:
--map-syntax= ' .ignore:Git Ignore '
مثال: لفتح جميع ملفات .conf
في المجلدات الفرعية لـ /etc/apache2
باستخدام بناء جملة "Apache Conf"، استخدم (هذا التعيين مضمن بالفعل):
--map-syntax= ' /etc/apache2/**/*.conf:Apache Conf '
يستخدم bat
جهاز النداء المحدد في متغير بيئة PAGER
. إذا لم يتم تعيين هذا المتغير، فسيتم استخدام less
بشكل افتراضي. إذا كنت تريد استخدام جهاز استدعاء مختلف، فيمكنك إما تعديل متغير PAGER
أو تعيين متغير البيئة BAT_PAGER
لتجاوز ما تم تحديده في PAGER
.
ملحوظة
إذا كان PAGER
more
أو most
، فسيستخدم bat
بصمت less
بدلاً من ذلك لضمان دعم الألوان.
إذا كنت تريد تمرير وسيطات سطر الأوامر إلى جهاز النداء، فيمكنك أيضًا تعيينها عبر متغيرات PAGER
/ BAT_PAGER
:
export BAT_PAGER= " less -RF "
بدلاً من استخدام متغيرات البيئة، يمكنك أيضًا استخدام ملف تكوين bat
لتكوين جهاز النداء (خيار --pager
).
less
كجهاز النداء عند استخدام less
كجهاز استدعاء، سيقوم bat
تلقائيًا بتمرير خيارات إضافية إلى less
لتحسين التجربة. على وجه التحديد، -R
/ --RAW-CONTROL-CHARS
، -F
/ --quit-if-one-screen
، وفي ظل ظروف معينة، -X
/ --no-init
و/أو -S
/ --chop-long-lines
.
مهم
لن تتم إضافة هذه الخيارات إذا:
less
.--pager
على أي وسيطات لسطر الأوامر (على سبيل المثال --pager="less -R"
).BAT_PAGER
على أي وسيطات لسطر الأوامر (على سبيل المثال، export BAT_PAGER="less -R"
) لن يتم إضافة خيار --quit-if-one-screen
عندما:
--paging=always
.BAT_PAGING
على always
. الخيار -R
مطلوب لتفسير ألوان ANSI بشكل صحيح.
less
الخيار -F
إلى الخروج فورًا إذا كان حجم الإخراج أصغر من الحجم الرأسي للمحطة. يعد هذا مناسبًا للملفات الصغيرة لأنه لا يتعين عليك الضغط على q
لإنهاء جهاز النداء.
يعد الخيار -X
ضروريًا لإصلاح خطأ في ميزة --quit-if-one-screen
في الإصدارات less
من الإصدار 530. ولسوء الحظ، فإنه يكسر أيضًا دعم عجلة الماوس في إصدارات less
. إذا كنت تريد تمكين التمرير بعجلة الماوس على الإصدارات الأقدم من الإصدار less
ولا تمانع في فقدان ميزة الخروج إذا كانت هناك شاشة واحدة، فيمكنك ضبط جهاز النداء (عبر --pager
أو BAT_PAGER
) على less -R
. لأقل less
530 أو أحدث، يجب أن تعمل خارج الصندوق.
تتم إضافة خيار -S
عند استخدام خيار -S
/ --chop-long-lines
الخاص bat
. وهذا يخبرنا less
باقتطاع أي خطوط أكبر من عرض المحطة الطرفية.
يقوم bat
بتوسيع علامات التبويب إلى 4 مسافات بمفرده، دون الاعتماد على جهاز النداء. لتغيير ذلك، ما عليك سوى إضافة وسيطة --tabs
مع عدد المسافات التي تريد عرضها.
ملاحظة : لن يتم أخذ تحديد علامات الجدولة لجهاز النداء (عبر وسيطة --pager
بواسطة bat
أو عبر متغير البيئة LESS
لـ less
) في الاعتبار لأن جهاز النداء سيحصل بالفعل على مسافات موسعة بدلاً من علامات التبويب. تتم إضافة هذا السلوك لتجنب مشكلات المسافة البادئة التي يسببها الشريط الجانبي. سيؤدي استدعاء bat
بـ --tabs=0
إلى تجاوزه والسماح باستهلاك علامات التبويب بواسطة جهاز النداء.
إذا كنت تستخدم ميزة الوضع المظلم في نظام التشغيل macOS، فقد ترغب في تكوين bat
لاستخدام سمة مختلفة بناءً على سمة نظام التشغيل. يستخدم المقتطف التالي السمة default
عندما تكون في الوضع المظلم وموضوع GitHub
عندما تكون في الوضع الفاتح .
alias cat= " bat --theme= $ (defaults read -globalDomain AppleInterfaceStyle &> /dev/null && echo default || echo GitHub) "
يمكن أيضًا تخصيص bat
باستخدام ملف التكوين. يعتمد موقع الملف على نظام التشغيل لديك. للحصول على المسار الافتراضي لنظامك، اتصل
bat --config-file
وبدلاً من ذلك، يمكنك استخدام متغيرات البيئة BAT_CONFIG_PATH
أو BAT_CONFIG_DIR
لتوجيه bat
إلى موقع غير افتراضي لملف التكوين أو دليل التكوين على التوالي:
export BAT_CONFIG_PATH= " /path/to/bat/bat.conf "
export BAT_CONFIG_DIR= " /path/to/bat "
يمكن إنشاء ملف التكوين الافتراضي باستخدام خيار --generate-config-file
.
bat --generate-config-file
يوجد الآن أيضًا ملف تكوين على مستوى النظام، والذي يقع ضمن /etc/bat/config
على Linux وMac OS و C:ProgramDatabatconfig
على نظام التشغيل windows. إذا كان ملف التكوين على مستوى النظام موجودًا، فسيتم ببساطة إلحاق محتوى تكوين المستخدم به.
ملف التكوين عبارة عن قائمة بسيطة لوسائط سطر الأوامر. استخدم bat --help
لرؤية القائمة الكاملة للخيارات والقيم الممكنة. بالإضافة إلى ذلك، يمكنك إضافة تعليقات عن طريق إضافة سطر بالحرف #
.
مثال لملف التكوين:
# Set the theme to "TwoDark"
--theme= " TwoDark "
# Show line numbers, Git modifications and file header (but no grid)
--style= " numbers,changes,header "
# Use italic text on the terminal (not supported on all terminals)
--italic-text=always
# Use C++ syntax for Arduino .ino files
--map-syntax " *.ino:C++ "
bat
على نظام التشغيل Windows يعمل bat
في الغالب خارج الصندوق على نظام التشغيل Windows، ولكن قد تحتاج بعض الميزات إلى تكوين إضافي.
سوف تحتاج إلى تثبيت حزمة Visual C++ القابلة لإعادة التوزيع.
يتضمن Windows فقط جهاز بيجر محدود للغاية في شكل more
من ملفات . يمكنك تنزيل برنامج Windows الثنائي بتكلفة less
من صفحته الرئيسية أو من خلال Chocolatey. لاستخدامه، ضع الملف الثنائي في دليل في PATH
الخاص بك أو حدد متغير بيئة. يتم تثبيت حزمة Chocolatey less
تلقائيًا.
يدعم Windows 10 الألوان في كل من conhost.exe
(موجه الأوامر) وPowerShell منذ الإصدار 1511، وكذلك في الإصدارات الأحدث من bash. في الإصدارات السابقة من Windows، يمكنك استخدام Cmder، والذي يتضمن ConEmu.
ملاحظة: الإصدارات القديمة من less
لا تفسر الألوان بشكل صحيح على نظام التشغيل Windows. لإصلاح ذلك، يمكنك إضافة أدوات Unix الاختيارية إلى PATH الخاص بك عند تثبيت Git. إذا لم يكن لديك أي أجهزة استدعاء أخرى مثبتة، فيمكنك تعطيل الترحيل بالكامل عن طريق تمرير --paging=never
أو عن طريق تعيين BAT_PAGER
على سلسلة فارغة.
bat
على نظام التشغيل Windows لا يدعم أصلاً مسارات نمط Unix الخاصة بـ Cygwin ( /cygdrive/*
). عند تمرير مسار cygwin مطلق كوسيطة، سيواجه bat
الخطأ التالي: The system cannot find the path specified. (os error 3)
يمكن حل هذه المشكلة عن طريق إنشاء غلاف أو إضافة الوظيفة التالية إلى ملف .bash_profile
الخاص بك:
bat () {
local index
local args=( " $@ " )
for index in $( seq 0 ${ # args[@]} ) ; do
case " ${args[index]} " in
- * ) continue ;;
* ) [ -e " ${args[index]} " ] && args[index]= " $( cygpath --windows " ${args[index]} " ) " ;;
esac
done
command bat " ${args[@]} "
}
إذا كان ملف الإدخال يحتوي على رموز ألوان أو تسلسلات هروب أخرى من ANSI أو أحرف تحكم، فسوف يواجه bat
مشكلات في تنفيذ تمييز بناء الجملة والتفاف النص، وبالتالي يمكن أن يصبح الإخراج مشوهًا.
إذا كان إصدار bat
الخاص بك يدعم الخيار --strip-ansi=auto
، فيمكن استخدامه لإزالة مثل هذه التسلسلات قبل تمييز بناء الجملة. بدلًا من ذلك، يمكنك تعطيل تمييز والتفاف بناء الجملة عن طريق تمرير خيارات --color=never --wrap=never
إلى bat
.
ملحوظة
يتجنب الخيار auto
لـ --strip-ansi
إزالة تسلسلات الهروب عندما يكون بناء الجملة نصًا عاديًا.
يتعامل bat
مع المحطات الطرفية بدعم الألوان الحقيقية أو بدونها . ومع ذلك، لم يتم تحسين الألوان في معظم سمات تمييز بناء الجملة للألوان ذات 8 بت. لذلك يوصى بشدة باستخدام وحدة طرفية تدعم اللون الحقيقي 24 بت ( terminator
، konsole
، iTerm2
، ...)، أو استخدام أحد السمات الأساسية ذات 8 بت المصممة لمجموعة محدودة من الألوان. راجع هذه المقالة للحصول على مزيد من التفاصيل وقائمة كاملة من المحطات الطرفية التي تدعم اللون الحقيقي.
تأكد من أن محطة truecolor الخاصة بك تقوم بتعيين متغير COLORTERM
إما على truecolor
أو 24bit
. بخلاف ذلك، لن يتمكن bat
من تحديد ما إذا كان تسلسل الهروب 24 بت مدعومًا أم لا (ويعود إلى ألوان 8 بت).
يرجى تجربة سمة مختلفة (راجع bat --list-themes
للحصول على القائمة). توفر سمات OneHalfDark
و OneHalfLight
ألوانًا للشبكة والخطوط أكثر سطوعًا.
يدعم bat
أصلاً UTF-8 بالإضافة إلى UTF-16. بالنسبة لكل ترميز ملف آخر، قد تحتاج إلى التحويل إلى UTF-8 أولاً لأنه لا يمكن عادةً اكتشاف الترميزات تلقائيًا. يمكنك iconv
للقيام بذلك. مثال: إذا كان لديك ملف PHP بترميز Latin-1 (ISO-8859-1)، فيمكنك الاتصال بـ:
iconv -f ISO-8859-1 -t UTF-8 my-file.php | bat
ملاحظة: قد يتعين عليك استخدام خيار -l
/ --language
إذا لم يكن من الممكن اكتشاف بناء الجملة تلقائيًا بواسطة bat
.
# Recursive clone to retrieve all submodules
git clone --recursive https://github.com/sharkdp/bat
# Build (debug version)
cd bat
cargo build --bins
# Run unit tests and integration tests
cargo test
# Install (release version)
cargo install --path . --locked
# Build a bat binary with modified syntaxes and themes
bash assets/create.sh
cargo install --path . --locked --force
إذا كنت ترغب في إنشاء تطبيق يستخدم ميزات الطباعة الرائعة التي يوفرها bat
كمكتبة، فراجع وثائق واجهة برمجة التطبيقات (API). لاحظ أنه يتعين عليك استخدام إما regex-onig
أو regex-fancy
كميزة عندما تعتمد على bat
كمكتبة.
قم بإلقاء نظرة على دليل CONTRIBUTING.md
.
يرجى الاتصال بـ David Peter عبر البريد الإلكتروني إذا كنت تريد الإبلاغ عن ثغرة أمنية في bat
.
يحاول bat
تحقيق الأهداف التالية:
cat
(POSIX).هناك الكثير من البدائل، إذا كنت تبحث عن برامج مماثلة. انظر هذه الوثيقة للمقارنة.
حقوق الطبع والنشر (ج) 2018-2023 لمطوري الخفافيش.
bat
متاحًا بموجب شروط ترخيص MIT أو ترخيص Apache 2.0، حسب اختيارك.
راجع ملفات LICENSE-APACHE وLICENSE-MIT للحصول على تفاصيل الترخيص.