| FISH-TERMINAL-COMPATIBILITY(1) | fish-shell | FISH-TERMINAL-COMPATIBILITY(1) |
نام (NAME)
fish-terminal-compatibility - سازگاری و تنظیمات شبیهسازهای ترمینال در پوسته فیش
توضیحات (DESCRIPTION)
پوستهٔ fish توالیهای کنترلی مختلفی را به ترمینال ارسال میکند. برخی از این توالیها باید برای فعالسازی قابلیتهای پایهای پیادهسازی شوند، در حالی که برخی دیگر ویژگیهای اختیاری را فعال میکنند و ممکن است توسط ترمینال نادیده گرفته شوند.
ترمینال باید قادر به تجزیهٔ دستورات معرفی توالی کنترلی (CSI)، دستورات سیستمعامل (OSC) و بهصورت اختیاری رشتههای کنترل دستگاه (DCS) باشد. این موارد توسط استاندارد ECMA-48 تعریف شدهاند. اگر یک توالی معتبر CSI، OSC یا DCS نشاندهندهٔ دستوری نباشد که توسط ترمینال پیادهسازی شده است، ترمینال باید آن را نادیده بگیرد.
توالیهای کنترلی با ساختار نحوی شبیه به fish مشخص میشوند. نویسههای خاص بهجز \ اسکیپ نمیشوند. فاصلهها صرفاً برای خوانایی افزوده شدهاند و بخشی از توالی نیستند. متغیرهای جایگزین بهصورت Ps برای یک عدد یا Pt برای یک رشتهٔ قابلچاپ دلخواه نوشته میشوند.
نکته: پوستهٔ fish به پایگاهدادهٔ terminfo سیستم شما وابسته نیست. در این سند، کدهای terminfo (TI) صرفاً جهت ارجاع و راهنمایی آورده شدهاند.
دستورات الزامی (REQUIRED COMMANDS)
| توالی | TI | توضیحات |
| \r | n/a | انتقال مکاننما به ابتدای سطر. |
| \n | cud1 | انتقال مکاننما یک سطر به پایین. |
| \e[ Ps A | cuu | انتقال مکاننما به بالا به تعداد Ps ستون (یا یک ستون در صورت نبود پارامتر). |
| \e[ Ps C | cuf | انتقال مکاننما به راست به تعداد Ps ستون (یا یک ستون در صورت نبود پارامتر). |
| \x08 | cub1 | انتقال مکاننما یک ستون به چپ. |
| \e[ Ps D | cub | انتقال مکاننما به چپ به تعداد Ps بار. |
| \e[H | cup | تنظیم موقعیت مکاننما (بدون پارامتر به معنای: انتقال به سطر ۱، ستون ۱). |
| \e[K | el | پاک کردن تا انتهای سطر. |
| \e[J | ed | پاک کردن تا انتهای صفحه نمایش. |
| \e[2J | clear | پاک کردن صفحه نمایش. |
| \e[0c | درخواست صفتهای اولیهٔ دستگاه (Primary Device Attribute). ترمینال باید با یک دستور CSI پاسخ دهد که با بایت پارامتر ? شروع شده (یعنی توالیای که با \e[? شروع میشود) و بایت پایانی آن c باشد. عدم پیادهسازی این مورد باعث مکث کوتاهی در هنگام راهاندازی و سپس نمایش یک پیام هشدار میشود. در حال حاضر، هر دوی اینها را میتوان با خاموش کردن فلگ ویژگی query-terminal <#featureflags> غیرفعال کرد. | |
| n/a | am | شکستن نرم متن بر اساس پهنای صفحه نمایش (Soft wrap). |
| n/a | xenl | چاپ در آخرین ستون، مکاننما را به سطر بعدی منتقل نمیکند. با اجرای دستور printf %0"$COLUMNS"d 0; sleep 3 این مورد را بررسی کنید. |
دستورات اختیاری (OPTIONAL COMMANDS)
| توالی | TI | توضیحات |
| \t | it | انتقال مکاننما به توقف تب بعدی (هر ۸ ستون یکبار). این مورد عمدتاً زمانی اهمیت دارد که خط فرمان (prompt) شما شامل تب باشد. |
| \e[m | sgr0 | غیرفعال کردن حالتهای صفت برجسته (bold)، کمنور (dim)، مورب (italic)، زیرخطدار (underline)، خطخورده (strikethrough)، معکوس (reverse) و انتخاب رنگهای پیشفرض. |
| \e[1m | bold | ورود به حالت برجسته (bold). |
| \e[2m | dim | ورود به حالت کمنور (dim). |
| \e[3m | sitm | ورود به حالت مورب (italic). |
| \e[4m | smul | ورود به حالت زیرخطدار (underline). |
| \e[4:2m | Su | ورود به حالت دو زیرخط (double underline). |
| \e[4:3m | Su | ورود به حالت زیرخط موجدار (curly underline). |
| \e[4:4m | Su | ورود به حالت زیرخط نقطهچین (dotted underline). |
| \e[4:5m | Su | ورود به حالت زیرخط خطچین (dashed underline). |
| \e[7m | rev | ورود به حالت تصویر معکوس (جابجایی رنگهای پیشزمینه و پسزمینه). |
| \e[9m | smxx | ورود به حالت خطخورده (strikethrough). |
| \e[23m | ritm | خروج از حالت مورب (italic). |
| \e[24m | rmul | خروج از حالت زیرخطدار (underline). |
| \e[29m | rmxx | خروج از حالت خطخورده (strikethrough). |
| \e[38;5; Ps m | setaf | انتخاب رنگ پیشزمینهٔ Ps از پالت ۲۵۶ رنگی. |
| \e[48;5; Ps m | setab | انتخاب رنگ پسزمینهٔ Ps از پالت ۲۵۶ رنگی. |
| \e[58:5: Ps m (توجه: دونقطه بهجای نقطهویرگول) | Su | انتخاب رنگ زیرخط Ps از پالت ۲۵۶ رنگی. |
| \e[ Ps m | setaf setab | انتخاب رنگ پیشزمینه/پسزمینه. این دستور بر اساس محدودهای که شامل پارامتر است، رنگی از پالت ۲۵۶ رنگی یادشده را استفاده میکند: 30-37 به پیشزمینهٔ 0-7 نگاشت میشود، 40-47 به پسزمینهٔ 0-7 نگاشت میشود، 90-97 به پیشزمینهٔ 8-15 نگاشت میشود و 100-107 به پسزمینهٔ 8-15 نگاشت میشود. |
| \e[38;2; Ps ; Ps ; Ps m | انتخاب رنگ پیشزمینه از میان رنگهای ۲۴ بیتی RGB. | |
| \e[48;2; Ps ; Ps ; Ps m | انتخاب رنگ پسزمینه از میان رنگهای ۲۴ بیتی RGB. | |
| \e[39m | بازنشانی رنگ پیشزمینه به مقدار پیشفرض ترمینال. | |
| \e[49m | بازنشانی رنگ پسزمینه به مقدار پیشفرض ترمینال. | |
| \e[58:2:: Ps : Ps : Ps m (توجه: دونقطه بهجای نقطهویرگول) | Su | انتخاب رنگ زیرخط از میان رنگهای ۲۴ بیتی RGB. |
| \e[59m | Su | بازنشانی رنگ زیرخط به مقدار پیشفرض (پیروی از رنگ پیشزمینه). |
| \e[ Ps S | indn | پیمایش محتوا (نه نما یا دیدگاه) به بالا به تعداد Ps سطر (در استاندارد ECMA-48 با عنوان SCROLL UP / SU و در terminfo با عنوان "scroll forward" نامیده میشود). هنگامی که fish پشتیبانی از این قابلیت را تشخیص دهد، status test-terminal-features scroll-content-up <#status-test-terminal-features> مقدار 0 را برمیگرداند، که امکان استفاده از کلید ترکیبی ctrl-l برای فراخوانی تابع ورودی ویژهٔ scrollback-push <#special-input-functions-scrollback-push> را فراهم میسازد. |
| \e[= Ps u, \e[? Ps u | n/a | فعالسازی پروتکل صفحهکلید kitty. |
| \e[6n | n/a | درخواست گزارش موقعیت مکاننما. پاسخ باید به فرم \e[ Ps ; Ps R باشد که در آن پارامتر نخست شمارهٔ سطر و پارامتر دوم شمارهٔ ستون است. شمارش هر دو از ۱ آغاز میشود. این توالی برای کوتاه کردن خودکار پیشنهادهای چندخطی در لبهٔ پایینی صفحه نمایش، توسط تابع ورودی ویژهٔ scrollback-push <#special-input-functions-scrollback-push> و در درون ترمینالهایی که قابلیت click_events در OSC 133 را پیادهسازی کردهاند، استفاده میشود. |
| \e[ \x20 q | Se | بازنشانی سبک مکاننما به مقدار پیشفرض ترمینال. این مورد در حال حاضر استفاده نمیشود اما ممکن است در آینده به کار گرفته شود. |
| \e[ Ps \x20 q | Ss | تنظیم سبک مکاننما (DECSCUSR)؛ مقدار Ps برای شکلهای بلوکی، زیرخط یا خط عمودی برابر ۲، ۴ یا ۶ است. |
| \e[ Ps q | n/a | درخواست نام و نسخهٔ ترمینال (XTVERSION). این مورد صرفاً برای راهکارهای موقت سازگاری با ترمینالهای ناسازگار استفاده میشود. |
| \e[?25h | cvvis | فعالسازی قابلیت رؤیت مکاننما (DECTCEM). |
| \e[?1004h | n/a | فعالسازی گزارش فوکوس (Focus Reporting). |
| \e[?1004l | n/a | غیرفعالسازی گزارش فوکوس. |
| \e[?1049h | n/a | فعالسازی بافر صفحهٔ جایگزین (Alternate screen buffer). |
| \e[?1049l | n/a | غیرفعالسازی بافر صفحهٔ جایگزین. |
| \e[?2004h | فعالسازی چسباندن محصور (Bracketed paste). | |
| \e[?2004l | غیرفعالسازی چسباندن محصور. | |
| \e[?2031h | فعالسازی گزارش ناخواستهٔ تم رنگی https://contour-terminal.org/vt-extensions/color-palette-update-notifications. در صورت فعال بودن، ترمینال باید هر زمان که تم رنگیاش تغییر کرد، توالی \e[?997;1n یا \e[?997;2n را ارسال کند. این کار باعث میشود fish برای رنگ پسزمینه پرسوجو کند. | |
| \e[?2031l | غیرفعالسازی گزارش ناخواستهٔ تم رنگی. | |
| \e]0; Pt \e\\ | ts | تنظیم عنوان پنجرهٔ ترمینال (OSC 0). در fish_title استفاده میشود. |
| \e]1; Pt \e\\ | ts | تنظیم عنوان تب ترمینال (OSC 1). در fish_tab_title استفاده میشود. |
| \e]7;file:// Pt / Pt \e\\ | گزارش دایرکتوری کاری (OSC 7). از آنجا که ترمینال ممکن است روی سیستمی متفاوت از پوسته (از راه دور) اجرا شود، نام میزبان (پارامتر اول) localhost نخواهد بود. | |
| \e]8;; Pt \e\\ | ایجاد یک ابرپیوند (OSC 8) https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda. این مورد در صفحات راهنمای fish استفاده میشود. | |
| \e]11;?\e\\ | n/a | پرسوجوی رنگ پسزمینه. یک پاسخ معتبر به فرم \e]11;rgb: Pt / Pt / Pt \e\\ یا \e]11;rgba: Pt / Pt / Pt / Pt\e\\ خواهد بود که در آن سه پارامتر اول هرکدام شامل یک تا چهار رقم هگزادسیمال هستند که مؤلفههای قرمز، آبی و سبز را نشان میدهند. این توالی برای مقداردهی fish_terminal_color_theme <#envvar-fish_terminal_color_theme> استفاده میشود، که برای انتخاب یک گونهٔ تم <#fish-config-theme-files> بهینهسازیشده برای تم رنگی ترمینال به کار میرود. |
| \e]52;c; Pt \e\\ | کپی به کلیپبورد (OSC 52). در fish_clipboard_copy استفاده میشود. | |
| \e]133;A; click_events=1\e\\ | علامتگذاری آغاز خط فرمان (OSC 133)، با افزونهٔ click_events ترمینال kitty. افزونهٔ click_events با فرض در دسترس بودن گزارش موقعیت مکاننما، کلیکهای ماوس را قادر میسازد مکاننما را جابهجا کرده یا آیتمهای صفحهبند (pager) را انتخاب کنند. | |
| \e]133;B\e\\ | علامتگذاری پایان خط فرمان (OSC 133). | |
| \e]133;C; cmdline_url= Pt \e\\ | علامتگذاری آغاز دستور (OSC 133)، با افزونهٔ cmdline_url ترمینال kitty که پارامتر آن خط فرمان کدگذاریشده بهصورت URL است. | |
| \e]133;D; Ps \e\\ | علامتگذاری پایان دستور (OSC 133)؛ پارامتر Ps وضعیت خروج است. | |
| \eP+q Pt \e\\ | درخواست قابلیت terminfo (XTGETTCAP). پارامتر آن کد terminfo کدگذاریشده بهصورت هگزادسیمالِ قابلیت مورد نظر است. پاسخ باید به فرم \eP1+q Pt \e\\ ("boolean") یا \eP1+q Pt = Pt \e\\ ("string") باشد. در هر دو حالت، پارامتر اول باید مشابه پارامتر درخواست باشد. پوستهٔ fish قابلیتهای رشتهای زیر را استعلام میکند: • indn: پارامتر دوم پاسخ نادیده گرفته میشود. • query-os-name (برای status terminal-os <#status-terminal-os>): ترمینالهایی که روی یونیکس اجرا میشوند باید مقدار هگزادسیمالِ $(uname -s) را بهعنوان پارامتر دوم بازگردانند. |
دستورات DCS و گنو اسکرین (DCS COMMANDS AND GNU SCREEN)
تجزیهٔ DCS اختیاری است، زیرا fish قبل از چاپ هرگونه دستور DCS، موقتاً به بافر صفحهٔ جایگزین جابهجا میشود. با این حال، از آنجا که GNU screen بهطور پیشفرض اجازهٔ روشن کردن بافر صفحهٔ جایگزین را نمیدهد، و همچنین با دستورات DCS بهشکل سازگار رفتار نمیکند، خط فرمان اولیهٔ fish ممکن است با بار دادهٔ DCS مانند +q696e646e مخدوش شود. در حال حاضر، fish با بررسی وجود متغیر محیطی STY این مشکل را دور میزند. اگر این روش بنا به دلایلی کارساز نبود، میتوانید این تنظیم را به ~/.screenrc خود اضافه کنید:
altscreen on
یا این قطعه کد را به config.fish خود بیفزایید:
function GNU-screen-workaround --on-event fish_prompt
commandline -f repaint
functions --erase GNU-screen-workaround
end
نقاط کد یونیکد (UNICODE CODEPOINTS)
بهطور پیشفرض، fish نویسههای غیر ASCII زیر را خروجی میدهد:
× ► ¶ ⏎ • ● … μ ’ ‘ “ ”
و همچنین تصاویر کنترلی (U+2400 تا U+241F)، و نویسههای خاص هر محلی (locale) در پیامهای ترجمهشده <#variables-locale>.
نویسندگان (AUTHORS)
توسعهدهندگان fish-shell
حق نشر (COPYRIGHT)
توسعهدهندگان fish-shell
همچنین ببینید (SEE ALSO)
| September 7, 2026 | 4.9 |