'\" t .\" Man page generated from reStructuredText .\" by the Docutils 0.23 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "FISH-INTERACTIVE" "1" "Sep 07, 2026" "4.9" "fish-shell" .SH "نام (NAME)" fish-interactive \- قابلیت‌ها و ویژگی‌های استفاده تعاملی در پوسته فیش .SH "توضیحات (DESCRIPTION)" .sp پوستهٔ .B fish به داشتن محیطی بسیار دلپذیر و کارآمد برای استفادهٔ تعاملی افتخار می‌کند. این امر به دلیل ویژگی‌های متعددی است که در بخش‌های بعدی توضیح خواهیم داد. .sp استفاده از .B fish با وارد کردن دستورات به زبان فیش انجام می‌پذیرد؛ برای کسب اطلاعات بیشتر در این مورد، سند The fish Language \%<> را ببینید. .SH "راهنما (HELP)" .sp پوستهٔ .B fish دارای سامانهٔ راهنمای جامعی است. از دستور help \%<> برای دریافت راهنما در مورد یک موضوع یا دستور خاص استفاده کنید. برای نمونه، نوشتن \fBhelp syntax\fP بخش نحو \%<#\:syntax> از این مستندات را نمایش می‌دهد. .sp همچنین .B fish برای دستورات خود دارای صفحات راهنما (man) است و صفحات راهنما را به صفحات man ترجمه می‌کند. به عنوان مثال، \fBman set\fP مستندات دستور \fBset\fP را به عنوان یک صفحه راهنما نشان می‌دهد. .sp راهنمای یک دستور توکار مشخص را می‌توان با پارامتر \fB\-h\fP نیز دریافت کرد. برای مثال، برای دریافت راهنما در مورد دستور توکار fg \%<>، می‌توانید \fBfg \-h\fP یا \fBhelp fg\fP را وارد کنید\&. .sp صفحه اصلی از طریق \fBhelp index\fP (یا صرفاً \fBhelp\fP) یا \fBman fish\-doc\fP قابل مشاهده است\&. آموزش گام‌به‌گام را نیز می‌توان با \fBhelp tutorial\fP یا \fBman fish\-tutorial\fP مشاهده کرد\&. .SH "پیشنهادهای خودکار (AUTOSUGGESTIONS)" .sp پوستهٔ .B fish هم‌زمان با تایپ کردن شما، بر اساس تاریخچه دستورات، تکمیل‌ها و مسیرهای معتبر فایل، دستوراتی را پیشنهاد می‌دهد. همان‌طور که دستورات را تایپ می‌کنید، پیشنهادی پس از مکان‌نما به رنگ خاکستری ملایم نمایش داده می‌شود (که با متغیر \fBfish_color_autosuggestion\fP قابل تغییر است). .sp برای پذیرش پیشنهاد خودکار (که جایگزین محتوای خط فرمان می‌شود)، کلید جهت‌نمای \fBright\fP (\fB→\fP) یا \fBctrl\fP\-\fBf\fP را فشار دهید\&. برای پذیرش تنها اولین کلمهٔ پیشنهادشده، کلیدهای ترکیبی \fBalt\fP\-\fBright\fP (\fB→\fP) یا \fBalt\fP\-\fBf\fP را فشار دهید\&. اگر پیشنهاد خودکار مورد نظر شما نیست، آن را نادیده بگیرید: تا زمانی که آن را نپذیرید، اجرا نخواهد شد. .sp پیشنهادهای خودکار روشی قدرتمند برای فراخوانی سریع دستوراتی هستند که مکرراً وارد می‌کنید، تنها با تایپ چند نویسهٔ اول آن‌ها. این قابلیت همچنین روشی کارآمد برای پیمایش در ساختار سلسله‌مراتبی دایرکتوری‌ها است. .sp اگر تمایلی به استفاده از پیشنهادهای خودکار ندارید، می‌توانید با تنظیم متغیر \fB$fish_autosuggestion_enabled\fP روی مقدار 0 آن‌ها را غیرفعال کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX set \-g fish_autosuggestion_enabled 0 .EE .UNINDENT .UNINDENT .SH "تکمیل با کلید تب (TAB COMPLETION)" .sp تکمیل با کلید تب یکی از ویژگی‌های صرفه‌جویی در زمان در هر پوستهٔ مدرنی است. هنگامی که کلید \fBtab\fP را فشار می‌دهید، fish تلاش می‌کند بقیهٔ کلمهٔ زیر مکان‌نما را حدس بزند. اگر دقیقاً یک احتمال پیدا کند، آن را درج می‌کند. اگر احتمالات بیشتری پیدا کند، طولانی‌ترین بخش بدون ابهام را درج کرده و سپس منویی (پیجر یا \(dqpager\(dq) را باز می‌کند که می‌توانید در آن به دنبال گزینه مورد نظر خود بگردید. .sp می‌توانید با کلیدهای جهت‌نما، \fBpageup\fP / \fBpagedown\fP، \fBtab\fP یا \fBshift\fP\-\fBtab\fP در پیجر پیمایش کنید\&. فشردن \fBctrl\fP\-\fBs\fP (کلید میانبر \fBpager\-toggle\-search\fP \- یا \fB/\fP در حالت vi) منوی جستجویی را باز می‌کند که می‌توانید با آن فهرست را فیلتر کنید. .sp پوستهٔ fish تکمیل‌های عمومی مختلفی مانند دستورات، نام‌های متغیرها، نام‌های کاربری یا فایل‌ها را فراهم می‌کند. .sp همچنین تعداد زیادی تکمیل اسکریپت‌شده مخصوص برنامه‌ها ارائه می‌دهد. بیشتر این موارد گزینه‌های ساده‌ای مانند گزینهٔ \fB\-l\fP برای \fBls\fP هستند، اما بسیاری از آن‌ها پیشرفته‌ترند. برای مثال: .INDENT 0.0 .IP \(bu 2 دستورات \fBman\fP و \fBwhatis\fP صفحات راهنمای نصب‌شده را به عنوان تکمیل نمایش می‌دهند. .IP \(bu 2 دستور \fBmake\fP از هدف‌های موجود در Makefile در دایرکتوری فعلی به عنوان تکمیل استفاده می‌کند. .IP \(bu 2 دستور \fBmount\fP از نقاط اتصال مشخص‌شده در fstab به عنوان تکمیل بهره می‌گیرد. .IP \(bu 2 مدیر بسته‌های \fBapt\fP، \fBrpm\fP و \fByum\fP بسته‌های نصب‌شده یا قابل‌نصب را نمایش می‌دهند. .UNINDENT .sp همچنین می‌توانید تکمیل‌های اختصاصی خود را بنویسید یا تکمیل‌هایی را که از دیگران دریافت کرده‌اید نصب کنید. برای این منظور به بخش نگارش تکمیل‌های اختصاصی (Writing your own completions) \%<> مراجعه فرمایید\&. .sp اسکریپت‌های تکمیل بنا به نیاز لود می‌شوند، درست مانند بارگذاری خودکار توابع \%<#\:syntax-function-autoloading>\&. تفاوت در این است که فهرست متغیر \fB$fish_complete_path\fP \%<#\:variables-lists> به جای \fB$fish_function_path\fP استفاده می‌شود\&. معمولاً می‌توانید تکمیل‌های جدید را در مسیر \fB~/.config/fish/completions/.fish\fP قرار دهید و fish آن‌ها را به‌طور خودکار پیدا خواهد کرد. .SH "برجسته‌سازی نحو (SYNTAX HIGHLIGHTING)" .sp پوستهٔ .B fish خط فرمان را هم‌زمان با تایپ شدن تفسیر کرده و از برجسته‌سازی نحو برای ارائهٔ بازخورد به کاربر استفاده می‌کند. مهم‌ترین بازخورد، تشخیص خطاهای بالقوه است. به‌طور پیش‌فرض، خطاها با رنگ قرمز مشخص می‌شوند. .sp خطاهای شناسایی‌شده عبارتند از: .INDENT 0.0 .IP \(bu 2 دستورات ناموجود و ناشناخته. .IP \(bu 2 خواندن از یک فایل ناموجود یا افزودن به آن. .IP \(bu 2 استفاده نادرست از تغییرمسیرهای خروجی. .IP \(bu 2 پرانتزهای جفت‌نشده و نامتقارن. .UNINDENT .sp برای سفارشی‌سازی برجسته‌سازی نحو، می‌توانید متغیرهای محیطی فهرست‌شده در بخش متغیرهای تغییر رنگ‌های برجسته‌سازی را تنظیم کنید. .sp همچنین .B fish پوسته‌های رنگی از پیش‌آماده‌ای فراهم می‌کند که می‌توانید با دستور fish_config \%<> آن‌ها را انتخاب کنید\&. اجرای دستور \fBfish_config\fP به تنهایی یک رابط کاربری مرورگر را باز می‌کند، یا می‌توانید از \fBfish_config theme\fP مستقیماً در fish استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX # غیرفعال کردن تقریباً تمام رنگ‌آمیزی‌ها fish_config theme choose none # بازگردانی پوسته پیش‌فرض فیش fish_config theme choose default .EE .UNINDENT .UNINDENT .sp یا برای مشاهده تمامی پوسته‌ها، مستقیماً درون ترمینال: .INDENT 0.0 .INDENT 3.5 .sp .EX fish_config theme show .EE .UNINDENT .UNINDENT .sp برای به‌روزرسانی پوستهٔ تمام نشست‌های پوسته بدون راه‌اندازی مجدد آن‌ها، ابتدا با افزودن کد زیر به فایل config.fish \%<#\:configuration> و راه‌اندازی مجدد، به نشست‌ها اجازه دهید یک مدیریت‌کنندهٔ رویداد (event handler) \%<#\:event> تعریف کنند: .INDENT 0.0 .INDENT 3.5 .sp .EX function apply\-my\-theme \-\-on\-variable=my_theme fish_config theme choose $my_theme end .EE .UNINDENT .UNINDENT .sp سپس، متغیر سراسری (universal variable) متناظر \%<#\:variables-universal> را از هر نشستی تنظیم نمایید: .INDENT 0.0 .INDENT 3.5 .sp .EX > set \-U my_theme lava > set \-U my_theme snow\-day .EE .UNINDENT .UNINDENT .SS "متغیرهای برجسته‌سازی نحو (Syntax highlighting variables)" .sp رنگ‌های استفاده‌شده توسط fish برای برجسته‌سازی نحو را می‌توان با تغییر مقادیر متغیرهای گوناگون پیکربندی کرد. مقدار این متغیرها می‌تواند یکی از رنگ‌های پذیرفته‌شده توسط دستور set_color \%<> باشد. گزینه‌های پذیرفته‌شده توسط \fBset_color\fP مانند \fB\-\-foreground=\fP، \fB\-\-background=\fP، \fB\-\-bold\fP، \fB\-\-dim\fP، \fB\-\-italics\fP، \fB\-\-reverse\fP، \fB\-\-strikethrough\fP، \fB\-\-underline\fP و \fB\-\-underline\-color=\fP نیز قابل استفاده هستند. .sp مثال: برای نمایش خطاها به صورت پررنگ (bold) و قرمز، از دستور زیر استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX set fish_color_error red \-\-bold .EE .UNINDENT .UNINDENT .sp متغیرهای زیر برای تغییر رنگ‌های برجسته‌سازی در fish در دسترس هستند: .TS box center; l|l. T{ متغیر T} T{ مفهوم و کاربرد T} _ T{ .INDENT 0.0 .TP .B fish_color_normal .UNINDENT T} T{ رنگ پیش‌فرض T} _ T{ .INDENT 0.0 .TP .B fish_color_command .UNINDENT T} T{ دستوراتی مانند echo T} _ T{ .INDENT 0.0 .TP .B fish_color_builtin .UNINDENT T} T{ دستورات توکار مانند cd و set \- در صورت عدم تنظیم، به رنگ دستور برمی‌گردد T} _ T{ .INDENT 0.0 .TP .B fish_color_function .UNINDENT T} T{ توابع تعریف‌شده توسط کاربر \- در صورت عدم تنظیم، به رنگ دستور برمی‌گردد T} _ T{ .INDENT 0.0 .TP .B fish_color_keyword .UNINDENT T} T{ کلمات کلیدی مانند if \- در صورت عدم تنظیم، به رنگ دستور برمی‌گردد T} _ T{ .INDENT 0.0 .TP .B fish_color_quote .UNINDENT T} T{ متن داخل نقل‌قول مانند \fB\(dqabc\(dq\fP T} _ T{ .INDENT 0.0 .TP .B fish_color_redirection .UNINDENT T} T{ تغییرمسیرهای ورودی/خروجی مانند >/dev/null T} _ T{ .INDENT 0.0 .TP .B fish_color_end .UNINDENT T} T{ جداکننده‌های فرایند مانند \fB;\fP و \fB&\fP T} _ T{ .INDENT 0.0 .TP .B fish_color_error .UNINDENT T} T{ خطاهای نحوی T} _ T{ .INDENT 0.0 .TP .B fish_color_param .UNINDENT T} T{ پارامترهای معمولی دستور T} _ T{ .INDENT 0.0 .TP .B fish_color_valid_path .UNINDENT T} T{ پارامترها و مقصدهای تغییرمسیر که نام فایل هستند (در صورتی که فایل موجود باشد) T} _ T{ .INDENT 0.0 .TP .B fish_color_option .UNINDENT T} T{ گزینه‌هایی که با \(dq\-\(dq شروع می‌شوند، تا نخستین پارامتر \(dq\-\-\(dq T} _ T{ .INDENT 0.0 .TP .B fish_color_comment .UNINDENT T} T{ توضیحات مانند \(aq# important\(aq T} _ T{ .INDENT 0.0 .TP .B fish_color_selection .UNINDENT T} T{ متن انتخاب‌شده در حالت دیداری vi T} _ T{ .INDENT 0.0 .TP .B fish_color_operator .UNINDENT T} T{ عملگرهای بسط پارامتر مانند \fB*\fP و \fB~\fP T} _ T{ .INDENT 0.0 .TP .B fish_color_escape .UNINDENT T} T{ نویسه‌های گریز مانند \fB\en\fP و \fB\ex70\fP T} _ T{ .INDENT 0.0 .TP .B fish_color_autosuggestion .UNINDENT T} T{ پیشنهادهای خودکار (بخش پیشنهادی ادامه‌دار یک دستور) T} _ T{ .INDENT 0.0 .TP .B fish_color_cwd .UNINDENT T} T{ دایرکتوری کاری فعلی در اعلان پیش‌فرض T} _ T{ .INDENT 0.0 .TP .B fish_color_cwd_root .UNINDENT T} T{ دایرکتوری کاری فعلی در اعلان پیش‌فرض برای کاربر ریشه T} _ T{ .INDENT 0.0 .TP .B fish_color_user .UNINDENT T} T{ نام کاربری در اعلان پیش‌فرض T} _ T{ .INDENT 0.0 .TP .B fish_color_host .UNINDENT T} T{ نام میزبان در اعلان پیش‌فرض T} _ T{ .INDENT 0.0 .TP .B fish_color_host_remote .UNINDENT T} T{ نام میزبان در اعلان پیش‌فرض برای نشست‌های از راه دور (مانند ssh) T} _ T{ .INDENT 0.0 .TP .B fish_color_status .UNINDENT T} T{ کد خروج غیرصفر آخرین دستور در اعلان پیش‌فرض T} _ T{ .INDENT 0.0 .TP .B fish_color_cancel .UNINDENT T} T{ نشانگر \(aq^C\(aq در یک دستور لغوشده T} _ T{ .INDENT 0.0 .TP .B fish_color_search_match .UNINDENT T} T{ تطابق‌های جستجوی تاریخچه و موارد انتخاب‌شده در پیجر (فقط پس‌زمینه) T} _ T{ .INDENT 0.0 .TP .B fish_color_history_current .UNINDENT T} T{ موقعیت فعلی در تاریخچه برای دستوراتی مانند \fBdirh\fP و \fBcdh\fP T} .TE .sp اگر متغیری تنظیم نشده باشد یا پس از کسر گزینه‌های \fB\-\-theme=THEME\fP خالی باشد، پوستهٔ fish معمولاً از \fB$fish_color_normal\fP استفاده می‌کند، به استثنای موارد زیر: .INDENT 0.0 .IP \(bu 2 برای \fB$fish_color_builtin\fP و \fB$fish_color_function\fP، ابتدا \fB$fish_color_command\fP بررسی می‌شود. .IP \(bu 2 برای \fB$fish_color_keyword\fP، ابتدا \fB$fish_color_command\fP بررسی می‌شود. .IP \(bu 2 برای \fB$fish_color_option\fP، ابتدا \fB$fish_color_param\fP بررسی می‌شود. .IP \(bu 2 برای \fB$fish_color_valid_path\fP، اگر رنگی برای آن تعریف نشده باشد و فقط دارای اصلاح‌کننده‌ها (modifiers) باشد، آن اصلاح‌کننده‌ها به رنگی اضافه می‌شوند که در غیر این صورت استفاده می‌شد، مانند \fB$fish_color_param\fP\&. اما اگر مسیرهای معتبر رنگ داشته باشند، از همان رنگ استفاده شده و اصلاح‌کننده‌های رنگ دیگر نیز به آن اضافه می‌گردند. .UNINDENT .SS "متغیرهای رنگ پیجر (Pager color variables)" .sp پوستهٔ fish گاهی اوقات فهرستی از گزینه‌ها را در یک جدول نمایش می‌دهد که پیجر (pager) نامیده می‌شود. .sp مثال: برای تنظیم پس‌زمینهٔ هر سطر پیجر، از دستور زیر استفاده کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX set fish_pager_color_background \-\-background=white .EE .UNINDENT .UNINDENT .sp برای داشتن متن سیاه روی پس‌زمینه‌های یک‌درمیان سفید و خاکستری: .INDENT 0.0 .INDENT 3.5 .sp .EX set fish_pager_color_prefix black set fish_pager_color_completion black set fish_pager_color_description black set fish_pager_color_background \-\-background=white set fish_pager_color_secondary_background \-\-background=brwhite .EE .UNINDENT .UNINDENT .sp متغیرهای موثر بر رنگ‌های پیجر: .TS box center; l|l. T{ متغیر T} T{ مفهوم و کاربرد T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_progress .UNINDENT T} T{ نوار پیشرفت در گوشه پایین سمت چپ T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_background .UNINDENT T} T{ رنگ پس‌زمینه یک خط T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_prefix .UNINDENT T} T{ رشته پیشوند، یعنی رشته‌ای که قرار است تکمیل شود T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_completion .UNINDENT T} T{ خود مورد تکمیل، یعنی بخش پیشنهادی باقی‌مانده از رشته T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_description .UNINDENT T} T{ توضیحات مورد تکمیل T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_selected_background .UNINDENT T} T{ پس‌زمینه مورد تکمیلِ انتخاب‌شده T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_selected_prefix .UNINDENT T} T{ پیشوند مورد تکمیلِ انتخاب‌شده T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_selected_completion .UNINDENT T} T{ پسوند مورد تکمیلِ انتخاب‌شده T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_selected_description .UNINDENT T} T{ توضیحات مورد تکمیلِ انتخاب‌شده T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_secondary_background .UNINDENT T} T{ پس‌زمینهٔ یک‌درمیان موارد تکمیل انتخاب‌نشده T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_secondary_prefix .UNINDENT T} T{ پیشوند یک‌درمیان موارد تکمیل انتخاب‌نشده T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_secondary_completion .UNINDENT T} T{ پسوند یک‌درمیان موارد تکمیل انتخاب‌نشده T} _ T{ .INDENT 0.0 .TP .B fish_pager_color_secondary_description .UNINDENT T} T{ توضیحات یک‌درمیان موارد تکمیل انتخاب‌نشده T} .TE .sp هنگامی که متغیرهای secondary یا selected تنظیم نشده باشند یا خالی باشند، متغیرهای عادی استفاده می‌شوند، به استثنای \fB$fish_pager_color_selected_background\fP که ابتدا رنگ پس‌زمینهٔ \fB$fish_color_search_match\fP امتحان می‌شود. .SH "مخفف‌ها (ABBREVIATIONS)" .sp برای جلوگیری از تایپ غیرضروری، دستوری که مکرراً اجرا می‌شود مانند \fBgit checkout\fP را می‌توان با استفاده از دستور abbr \%<> به \fBgco\fP خلاصه کرد. .INDENT 0.0 .INDENT 3.5 .sp .EX abbr \-a gco git checkout .EE .UNINDENT .UNINDENT .sp پس از وارد کردن \fBgco\fP و فشردن کلید \fBspace\fP (فاصله) یا \fBenter\fP، عبارت \fBgco\fP در جایگاه دستور در خط فرمان به \fBgit checkout\fP تبدیل می‌شود. اگر گاهی می‌خواهید دقیقاً از عبارت \fBgco\fP استفاده کنید، از کلیدهای ترکیبی \fBctrl\fP\-\fBspace\fP استفاده کنید [1]\&. .sp مخفف‌ها بسیار قدرتمندتر از جایگزینی سادهٔ رشته‌های متنی هستند. برای نمونه، می‌توانید بالا رفتن در چند سطح دایرکتوری را با این قطعه کد آسان‌تر کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX function multicd echo cd (string repeat \-n (math (string length \-\- $argv[1]) \- 1) ../) end abbr \-\-add dotdot \-\-regex \(aq^\e.\e.+$\(aq \-\-function multicd .EE .UNINDENT .UNINDENT .sp اکنون، \fB\&..\fP به \fBcd ../\fP، عبارت \fB\&...\fP به \fBcd ../../\fP و عبارت \fB\&....\fP به \fBcd ../../../\fP بسط می‌یابد\&. .sp مزیت مخفف‌ها نسبت به نام‌های مستعار (aliases) در این است که می‌توانید دستور واقعی را قبل از اجرا ببینید، به آن چیزی بیفزایید یا آن را تغییر دهید و دستور واقعی در تاریخچه ثبت خواهد شد. .IP [1] 5 هر کلید میانبری که تابع پیوند \fBexpand\-abbr\fP یا \fBexecute\fP \%<> را فراخوانی کند، مخفف‌ها را بسط می‌دهد. به‌طور پیش‌فرض کلید ترکیبی \fBctrl\fP\-\fBspace\fP فقط برای درج یک نویسه فاصله تعریف شده است. .SH "اعلان قابل برنامه‌ریزی (PROGRAMMABLE PROMPT)" .sp هنگامی که نوبت به fish برسد تا ورودی کاربر را دریافت کند (مانند پس از شروع پوسته یا اتمام یک دستور)، یک اعلان (prompt) نمایش می‌دهد. معمولاً این اعلان شبیه به مورد زیر است: .INDENT 0.0 .INDENT 3.5 .sp .EX you@hostname ~> .EE .UNINDENT .UNINDENT .sp این اعلان با اجرای توابع fish_prompt \%<> و fish_right_prompt \%<> تعیین می‌شود. .sp خروجی تابع اول در سمت چپ و خروجی تابع دوم در سمت راست ترمینال نمایش داده می‌شود. برای حالت vi، خروجی تابع fish_mode_prompt \%<> به ابتدای سمت چپ اضافه خواهد شد. .sp اگر متغیر \fBfish_transient_prompt\fP \%<#\:envvar-fish_transient_prompt> روی 1 تنظیم شده باشد، پوستهٔ fish پیش از اجرای خط فرمان، اعلان را با آرگومان \fB\-\-final\-rendering\fP بازطراحی می‌کند که به شما امکان می‌دهد آن را قبل از ارسال به تاریخچه اسکرول ترمینال تغییر دهید. .sp پوستهٔ fish همراه با چندین اعلان پیش‌فرض عرضه می‌شود که می‌توانید آن‌ها را با دستور fish_config \%<> مشاهده کنید\&. اگر تنها دستور \fBfish_config\fP را اجرا کنید، یک رابط کاربری وب [2] باز می‌شود که اعلان‌ها را به شما نمایش می‌دهد و می‌توانید اعلان دلخواه خود را انتخاب کنید. دستور \fBfish_config prompt show\fP اعلان‌ها را مستقیماً درون ترمینال شما نشان می‌دهد. .sp برای مثال، \fBfish_config prompt choose disco\fP به‌طور موقت اعلان \(dqdisco\(dq را انتخاب می‌کند. اگر آن را پسندیدید و تصمیم گرفتید حفظش کنید، دستور \fBfish_config prompt save\fP را اجرا کنید\&. .sp همچنین می‌توانید خودتان این توابع را تغییر دهید؛ کافی است دستور \fBfunced fish_prompt\fP را اجرا کرده و پس از رسیدن به نتیجهٔ مطلوب، \fBfuncsave fish_prompt\fP را برای ذخیره اجرا کنید (یا \fBfish_right_prompt\fP در صورتی که می‌خواهید آن را تغییر دهید). .IP [2] 5 رابط وب کاملاً به‌صورت محلی روی رایانه شما اجرا می‌شود و نیازمند نصب بودن پایتون است. .SH "پیام خوش‌آمدگویی قابل پیکربندی (CONFIGURABLE GREETING)" .sp هنگامی که fish به‌صورت تعاملی راه‌اندازی می‌شود، تلاش می‌کند تابع fish_greeting \%<> را اجرا کند. تابع پیش‌فرض fish_greeting پیامی ساده چاپ می‌کند. می‌توانید متن آن را با تغییر متغیر \fB$fish_greeting\fP دگرگون کنید؛ برای نمونه با استفاده از یک متغیر سراسری (universal variable) \%<#\:variables-universal>: .INDENT 0.0 .INDENT 3.5 .sp .EX set \-U fish_greeting .EE .UNINDENT .UNINDENT .sp یا می‌توانید آن را به‌صورت عمومی (global) \%<#\:variables-scope> در فایل config.fish \%<#\:configuration> تنظیم کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX set \-g fish_greeting \(aqHey, stranger!\(aq .EE .UNINDENT .UNINDENT .sp یا می‌توانید با تغییر تابع، رفتار آن را اسکریپت‌نویسی کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX function fish_greeting random choice \(dqHello!\(dq \(dqHi\(dq \(dqG\(aqday\(dq \(dqHowdy\(dq end .EE .UNINDENT .UNINDENT .sp این کد را در config.fish یا یک فایل تابع \%<#\:syntax-function-autoloading> ذخیره کنید\&. همچنین می‌توانید از funced \%<> و funcsave \%<> برای ویرایش آسان آن استفاده نمایید. .SH "عنوان پنجره قابل برنامه‌ریزی (PROGRAMMABLE TITLE)" .sp بیشتر ترمینال‌ها امکان تنظیم متن نمایش‌یافته در نوار عنوان پنجره ترمینال را فراهم می‌کنند. پوستهٔ fish این کار را با اجرای تابع fish_title \%<> انجام می‌دهد. این تابع قبل و بعد از اجرای یک دستور اجرا شده و خروجی آن به عنوان پیام نوار عنوان استفاده می‌شود. .sp دستور توکار status current\-command \%<> همیشه نام کاری را که قرار است به پیش‌زمینه بیاید برمی‌گرداند (یا \fBfish\fP در صورتی که کنترل در حال بازگشت به پوسته باشد) هنگامی که تابع fish_title \%<> فراخوانی شود. آرگومان نخست شامل آخرین دستور پیش‌زمینهٔ اجراشده به عنوان یک رشته خواهد بود. .sp عنوان پیش‌فرض در صورت اتصال از طریق ssh نام میزبان، دستور در حال اجرای فعلی (مگر اینکه خود fish باشد) و دایرکتوری کاری فعلی را نشان می‌دهد. تمامی این موارد کوتاه می‌شوند تا تب ترمینال بیش از حد عریض نشود. .sp مثال‌ها: .sp برای نمایش آخرین دستور و دایرکتوری کاری در عنوان پنجره: .INDENT 0.0 .INDENT 3.5 .sp .EX function fish_title # \(gaprompt_pwd\(ga عنوان را کوتاه می‌کند. این به جلوگیری از عریض شدن بیش از حد تب‌ها کمک می‌کند. echo $argv[1] (prompt_pwd) pwd end .EE .UNINDENT .UNINDENT .SH "ویرایشگر خط فرمان (COMMAND LINE EDITOR)" .sp ویرایشگر fish دارای قابلیت‌های کپی و چسباندن، تاریخچه با امکان جستجو و عملکردهای ویرایشی فراوانی است که می‌توان آن‌ها را به میانبرهای صفحه‌کلید اختصاص داد. .sp همانند bash و سایر پوسته‌ها، fish شامل دو مجموعه کلید میانبر است: یکی الهام‌گرفته از ویرایشگر متن Emacs، و دیگری برگرفته از ویرایشگر متن vi. حالت ویرایش پیش‌فرض Emacs است. می‌توانید با اجرای fish_vi_key_bindings \%<> به حالت vi تغییر حالت دهید و با fish_default_key_bindings \%<> بازگردید\&. همچنین می‌توانید با ایجاد یک تابع و تنظیم نام آن در متغیر \fBfish_key_bindings\fP میانبرهای اختصاصی خود را تعریف کنید. برای نمونه: .INDENT 0.0 .INDENT 3.5 .sp .EX function fish_hybrid_key_bindings \-\-description \e \(dqVi\-style bindings that inherit emacs\-style bindings in all modes\(dq for mode in default insert visual fish_default_key_bindings \-M $mode end fish_vi_key_bindings \-\-no\-erase end set \-g fish_key_bindings fish_hybrid_key_bindings .EE .UNINDENT .UNINDENT .sp اگرچه کلیدهای میانبر ارائه‌شده در fish بسیاری از میانبرهای محبوب ویرایشگرهای متن مربوطه را شامل می‌شوند، اما پیاده‌سازی کامل آن‌ها نیستند. در صورتی که به تمامی قابلیت‌های ویرایشگر خود نیاز داشته باشید، fish شامل میانبری برای باز کردن خط فرمان جاری در ویرایشگر ترجیحی شما است (به‌طور پیش‌فرض \fBalt\fP\-\fBe\fP). .SS "کلیدهای میانبر مشترک (Shared bindings)" .sp برخی میانبرها بین حالت‌های Emacs و vi مشترک هستند، زیرا یا مربوط به ویرایش متن نیستند، یا رفتار vi/Vim برای یک کلید خاص در محیط پوسته معنا پیدا نمی‌کند. .INDENT 0.0 .IP \(bu 2 کلید \fBtab\fP نشانهٔ فعلی را تکمیل می‌کند. \fBshift\fP\-\fBtab\fP نشانهٔ فعلی را تکمیل کرده و حالت جستجوی پیجر را باز می‌کند. کلید \fBtab\fP همان عملکرد \fBctrl\fP\-\fBi\fP را دارد\&. .IP \(bu 2 کلیدهای جهت‌نمای \fBleft\fP (\fB←\fP) و \fBright\fP (\fB→\fP) مکان‌نما را یک نویسه به چپ یا راست حرکت می‌دهند. اگر مکان‌نما در انتهای خط باشد و پیشنهاد خودکار در دسترس باشد، کلید \fBright\fP (\fB→\fP) پیشنهاد را می‌پذیرد. .IP \(bu 2 کلید \fBenter\fP خط فرمان فعلی را اجرا می‌کند، یا در صورتی که دستور هنوز کامل نشده باشد (مثلاً یک \fB)\fP یا \fBend\fP وجود نداشته باشد)، یک خط جدید درج می‌کند. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBenter\fP یک خط جدید در موقعیت مکان‌نما درج می‌کند. این برای افزودن خط به فرمانی که قبلاً کامل شده، کاربرد دارد. .IP \(bu 2 کلیدهای ترکیبی \fBalt\fP\-\fBleft\fP (\fB←\fP) و \fBalt\fP\-\fBright\fP (\fB→\fP) مکان‌نما را یک کلمه به چپ یا راست حرکت می‌دهند. اگر خط فرمان خالی باشد، در تاریخچه دایرکتوری‌ها به جلو/عقب حرکت می‌کنند. اگر مکان‌نما در انتهای خط باشد و پیشنهاد خودکار وجود داشته باشد، \fBalt\fP\-\fBright\fP (\fB→\fP) (یا \fBalt\fP\-\fBf\fP) کلمه اول پیشنهاد را می‌پذیرد. .IP \(bu 2 کلیدهای ترکیبی \fBctrl\fP\-\fBleft\fP (\fB←\fP) و \fBctrl\fP\-\fBright\fP (\fB→\fP) مکان‌نما را یک نشانه به چپ یا راست می‌برند. این کلیدها یک نشانه از پیشنهاد خودکار را می‌پذیرند (بخشی که روی آن حرکت می‌کنند). .IP \(bu 2 کلیدهای ترکیبی \fBshift\fP\-\fBleft\fP (\fB←\fP) و \fBshift\fP\-\fBright\fP (\fB→\fP) مکان‌نما را یک کلمه بدون توقف روی علائم نگارشی به چپ یا راست می‌برند. این کلیدها یک کلمهٔ بزرگ از پیشنهاد خودکار را می‌پذیرند. .IP \(bu 2 کلیدهای \fBup\fP (\fB↑\fP) و \fBdown\fP (\fB↓\fP) (یا \fBctrl\fP\-\fBp\fP و \fBctrl\fP\-\fBn\fP برای علاقه‌مندان به ایمکس) تاریخچه دستورات را برای دستور قبلی/بعدی حاوی رشته مشخص‌شده در خط فرمان قبل از شروع جستجو جستجو می‌کنند. اگر خط فرمان هنگام شروع جستجو خالی باشد، تمام دستورات مطابقت دارند. برای اطلاعات بیشتر به بخش تاریخچه مراجعه کنید. .IP \(bu 2 کلیدهای \fBalt\fP\-\fBup\fP (\fB↑\fP) و \fBalt\fP\-\fBdown\fP (\fB↓\fP) در تاریخچه دستورات به دنبال نشانهٔ قبلی/بعدی حاوی نشانهٔ زیر مکان‌نما می‌گردند. اگر خط فرمان روی نشانه‌ای نباشد، تمامی نشانه‌ها مطابقت دارند. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBc\fP هر فرمانی را که در حال اجراست قطع کرده یا خاتمه می‌دهد (SIGINT). .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBd\fP یک نویسه در سمت راست مکان‌نما را حذف می‌کند. اگر خط فرمان خالی باشد، فشردن \fBctrl\fP\-\fBd\fP از fish خارج می‌شود. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBu\fP محتوا را از ابتدای خط تا مکان‌نما حذف کرده و به حلقه حذفیات (killring) منتقل می‌کند. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBl\fP هر متنی بالای اعلان را به تاریخچه پیمایش (scrollback) ترمینال فرستاده، سپس صفحه را پاکسازی و مجدداً ترسیم می‌کند. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBw\fP بخش قبلی مسیر (هر چیز تا نویسه قبلی \(dq/\(dq، \(dq:\(dq یا \(dq@\(dq) را حذف کرده و به حلقه حذفیات منتقل می‌کند. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBx\fP بافر فعلی را در کلیپ‌بورد سیستم کپی می‌کند و \fBctrl\fP\-\fBv\fP محتوای کلیپ‌بورد را درج می‌کند (توابع fish_clipboard_copy \%<> و fish_clipboard_paste \%<> را ببینید). .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBd\fP کلمه بعدی را به حلقه حذفیات (Kill Ring) منتقل می‌کند\&. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBdelete\fP کلمه بعدی (یا آرگومان بعدی در macOS) را به حلقه حذفیات منتقل می‌کند\&. .IP \(bu 2 اگر خط فرمان خالی باشد، کلید ترکیبی \fBalt\fP\-\fBd\fP تاریخچه دایرکتوری را فهرست می‌کند. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBdelete\fP آرگومان بعدی (یا کلمه در macOS) را به حلقه حذفیات منتقل می‌کند\&. .IP \(bu 2 کلید ترکیبی \fBshift\fP\-\fBdelete\fP مورد جاری تاریخچه یا پیشنهاد خودکار را از تاریخچه دستورات حذف می‌کند. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBh\fP (یا \fBf1\fP) در صورت وجود، صفحه راهنمای دستور جاری را نمایش می‌دهد. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBl\fP محتویات دایرکتوری جاری را فهرست می‌کند، مگر اینکه مکان‌نما روی آرگومان دایرکتوری باشد که در این صورت محتویات آن دایرکتوری نمایش داده می‌شود. .UNINDENT .INDENT 0.0 .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBo\fP فایل زیر مکان‌نما را در یک پیجر باز می‌کند. اگر مکان‌نما در جایگاه دستور باشد و دستور یک اسکریپت باشد، در عوض آن اسکریپت را در ویرایشگر شما باز می‌کند. ویرایشگر از نخستین متغیر در دسترس بین \fB$VISUAL\fP یا \fB$EDITOR\fP انتخاب می‌شود. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBp\fP رشته \fB&| less;\fP را به انتهای کارِ زیر مکان‌نما اضافه می‌کند که باعث صفحه‌بندی خروجی دستور می‌شود. اگر متغیر \fBPAGER\fP را تنظیم کرده باشید، مقدار آن به جای \fBless\fP استفاده خواهد شد\&. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBw\fP توصیف کوتاهی از دستور زیر مکان‌نما چاپ می‌کند. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBe\fP خط فرمان جاری را در یک ویرایشگر خارجی ویرایش می‌کند. ویرایشگر از اولین متغیر معتبر بین \fB$VISUAL\fP یا \fB$EDITOR\fP انتخاب می‌شود. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBv\fP همان کارکرد \fBalt\fP\-\fBe\fP را دارد\&. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBs\fP عبارت \fBsudo\fP را به ابتدای خط فرمان فعلی اضافه می‌کند. اگر خط فرمان خالی باشد، \fBsudo\fP به ابتدای آخرین خط فرمان اضافه می‌شود. در صورتی که \fBsudo\fP نصب نباشد، دستورات مشابه مانند \fBdoas\fP، \fBplease\fP و \fBrun0\fP امتحان می‌شوند\&. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBspace\fP یک فاصله بدون بسط دادن مخفف درج می‌کند\&. در حالت vi، این کلید فقط به حالت درج اعمال می‌شود. .UNINDENT .SS "دستورات حالت ایمکس (Emacs mode commands)" .sp برای فعال‌سازی حالت Emacs، از دستور fish_default_key_bindings \%<> استفاده کنید\&. این حالت پیش‌فرض نیز هست. .INDENT 0.0 .IP \(bu 2 کلید \fBhome\fP یا \fBctrl\fP\-\fBa\fP مکان‌نما را به ابتدای سطر منتقل می‌کند. .IP \(bu 2 کلید \fBend\fP یا \fBctrl\fP\-\fBe\fP مکان‌نما را به انتهای سطر می‌برد. اگر مکان‌نما در انتهای سطر باشد و پیشنهاد خودکار در دسترس باشد، \fBend\fP یا \fBctrl\fP\-\fBe\fP پیشنهاد را می‌پذیرد. .IP \(bu 2 کلیدهای \fBctrl\fP\-\fBb\fP و \fBctrl\fP\-\fBf\fP مکان‌نما را یک نویسه به چپ یا راست حرکت می‌دهند یا درست مانند کلیدهای جهت‌نمای \fBleft\fP (\fB←\fP) و \fBright\fP (\fB→\fP) پیشنهاد خودکار را می‌پذیرند (که آن‌ها نیز در دسترس هستند). .IP \(bu 2 کلیدهای \fBalt\fP\-\fBb\fP و \fBalt\fP\-\fBf\fP مکان‌نما را یک کلمه به چپ یا راست می‌برند، یا یک کلمه از پیشنهاد خودکار را می‌پذیرند. اگر خط فرمان خالی باشد، در تاریخچه دایرکتوری به جلو/عقب حرکت می‌کنند. .IP \(bu 2 کلیدهای \fBctrl\fP\-\fBn\fP و \fBctrl\fP\-\fBp\fP مکان‌نما را به بالا/پایین یا در طول تاریخچه حرکت می‌دهند، همانند کلیدهای میانبر فلش بالا و پایین. .IP \(bu 2 کلیدهای \fBdelete\fP یا \fBbackspace\fP یا \fBctrl\fP\-\fBh\fP به ترتیب یک نویسه رو به جلو یا عقب را حذف می‌کنند. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBbackspace\fP یک کلمه به سمت عقب و \fBctrl\fP\-\fBbackspace\fP یک آرگومان به سمت عقب را حذف می‌کند. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fB<\fP به ابتدای خط فرمان و \fBalt\fP\-\fB>\fP به انتهای آن حرکت می‌کند. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBk\fP از موقعیت مکان‌نما تا انتهای سطر را حذف کرده و به حلقه حذفیات (Kill Ring) منتقل می‌کند. .IP \(bu 2 کلیدهای \fBescape\fP و \fBctrl\fP\-\fBg\fP عملیات جاری را لغو می‌کنند. بلافاصله پس از یک تکمیل بدون ابهام، این کار آن تکمیل را لغو (undo) می‌کند. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBc\fP حرف اول کلمه جاری را بزرگ (capitalize) می‌کند. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBu\fP تمام حروف کلمه جاری را به حروف بزرگ تبدیل می‌کند. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBt\fP جای دو نویسه آخر را با یکدیگر عوض می‌کند. .IP \(bu 2 کلید ترکیبی \fBalt\fP\-\fBt\fP جای دو کلمه آخر را با یکدیگر عوض می‌کند. .IP \(bu 2 کلیدهای ترکیبی \fBctrl\fP\-\fBz\fP یا \fBctrl\fP\-\fB_\fP (در برخی پایانه‌ها \fBctrl\fP\-\fB/\fP) آخرین ویرایش انجام‌شده روی سطر را واگردانی (undo) می‌کنند. .IP \(bu 2 کلیدهای ترکیبی \fBalt\fP\-\fB/\fP یا \fBctrl\fP\-\fBshift\fP\-\fBz\fP آخرین واگردانی را بازگردانی (redo) می‌کنند. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBr\fP تاریخچه را در یک پیجر باز می‌کند. این کار موارد تاریخچه مطابق با جستجو را چند مورد در هر بار نشان می‌دهد. فشردن مجدد \fBctrl\fP\-\fBr\fP موارد قدیمی‌تر را جستجو می‌کند، و فشردن \fBctrl\fP\-\fBs\fP به موارد جدیدتر می‌رود. نوار جستجو همیشه در حالت انتخاب خواهد بود. .UNINDENT .sp می‌توانید این کلیدهای میانبر را با استفاده از دستور توکار bind \%<> تغییر دهید. .SS "دستورات حالت وی‌آی (Vi mode commands)" .sp حالت vi امکان استفاده از دستورات شبیه به vi را در اعلان خط فرمان فراهم می‌کند. در ابتدا، حالت درج (insert mode) فعال است. فشردن کلید \fBescape\fP وارد حالت فرمان (command mode) می‌شود\&. دستورات موجود در حالت‌های فرمان، درج و دیداری در ادامه شرح داده شده‌اند. حالت vi چندین میانبر مشترک با حالت Emacs دارد\&. .sp برای فعال‌سازی حالت vi، از دستور fish_vi_key_bindings \%<> استفاده کنید\&. همچنین امکان افزودن تمام میانبرهای حالت Emacs به حالت vi با استفاده از کدی شبیه به زیر وجود دارد: .INDENT 0.0 .INDENT 3.5 .sp .EX function fish_user_key_bindings # این دستور را یک بار برای هر حالتی که میانبرهای ایمکس باید در آن استفاده شوند اجرا کنید fish_default_key_bindings \-M insert # سپس میانبرهای vi را اجرا کنید تا در صورت وجود تعارض، اولویت داشته باشند. # بدون سوییچ \-\-no\-erase، تابع fish_vi_key_bindings تمام میانبرها را بازنشانی می‌کند. # آرگومان حالت اولیه را مشخص می‌کند (insert، \(dqdefault\(dq یا visual). fish_vi_key_bindings \-\-no\-erase insert end .EE .UNINDENT .UNINDENT .sp در حالت vi، تابع fish_mode_prompt \%<> یک نشانگر وضعیت حالت را در سمت چپ اعلان نمایش می‌دهد. برای غیرفعال کردن این ویژگی، آن را با یک تابع خالی جایگزین (override) کنید. برای نمایش حالت در جای دیگر (مانند سمت راست اعلان)، از خروجی تابع \fBfish_default_mode_prompt\fP استفاده کنید. .sp هنگامی که یک میانبر حالت را تغییر می‌دهد، اعلان حالت را (در صورت وجود) مجدداً ترسیم می‌کند، و بقیه اعلان را فقط در صورتی که اعلان حالت وجود نداشته باشد بازطراحی خواهد کرد. بنابراین اگر خواهان نشانگر حالت در \fBfish_prompt\fP خود هستید، باید \fBfish_mode_prompt\fP را حذف کنید؛ مثلاً با افزودن یک فایل خالی در مسیر \fB~/.config/fish/functions/fish_mode_prompt.fish\fP\&. (میانبرهایی که حالت را تغییر می‌دهند باید تابع پیوند \fIrepaint\-mode\fP را فراخوانی کنند، به bind \%<> مراجعه نمایید). .sp تابع \fBfish_vi_cursor\fP برای تغییر شکل مکان‌نما متناسب با حالت فعال در ترمینال‌های پشتیبانی‌شده استفاده می‌شود. قطعه‌کد زیر می‌تواند برای پیکربندی دستی مکان‌نما پس از فعال‌سازی حالت vi استفاده شود: .INDENT 0.0 .INDENT 3.5 .sp .EX # شبیه‌سازی رفتار شکل مکان‌نمای vim # تنظیم مکان‌نمای حالت عادی و دیداری به شکل مکعب (block) set fish_cursor_default block # تنظیم مکان‌نمای حالت درج به شکل خط (line) set fish_cursor_insert line # تنظیم مکان‌نمای حالت جایگزینی به شکل خط زیرین (underscore) set fish_cursor_replace_one underscore set fish_cursor_replace underscore # تنظیم مکان‌نمای خارجی به شکل خط. مکان‌نمای خارجی هنگام شروع دستور ظاهر می‌شود. # در صورت عدم تعیین fish_cursor_external، شکل مکان‌نما مقدار fish_cursor_default را می‌گیرد. set fish_cursor_external line # متغیر زیر می‌تواند برای پیکربندی شکل مکان‌نما در حالت دیداری استفاده شود، # اما به دلیل مقدار fish_cursor_default در اینجا افزونه و اختیاری است set fish_cursor_visual block .EE .UNINDENT .UNINDENT .sp علاوه بر این، می‌توان عبارت \fBblink\fP را پس از هر یک از پارامترهای شکل مکان‌نما اضافه کرد تا یک مکان‌نمای چشمک‌زن با شکل تعیین‌شده تنظیم شود. .sp پوستهٔ fish شکل‌های \(dqblock\(dq (مکعب)، \(dqline\(dq (خط) و \(dqunderscore\(dq (خط زیرین) را می‌شناسد و سایر مقادیر نادیده گرفته می‌شوند. .sp اگر پس از تنظیم متغیرهای فوق شکل مکان‌نما تغییر نکرد، احتمالاً شبیه‌ساز ترمینال شما از قابلیت‌های لازم برای انجام این کار پشتیبانی نمی‌کند. .SS "حالت فرمان (Command mode)" .sp حالت فرمان به عنوان حالت عادی (normal mode) نیز شناخته می‌شود. .INDENT 0.0 .IP \(bu 2 کلید \fBh\fP مکان‌نما را به سمت چپ حرکت می‌دهد. .IP \(bu 2 کلید \fBl\fP مکان‌نما را به سمت راست حرکت می‌دهد. .IP \(bu 2 کلیدهای \fBk\fP و \fBj\fP تاریخچه دستورات را برای دستور قبلی/بعدی حاوی رشته مشخص‌شده در خط فرمان جستجو می‌کنند. اگر خط فرمان خالی باشد، تمام دستورات مطابقت دارند. در دستورات چندخطی، به ترتیب مکان‌نما را به بالا و پایین می‌برند. .IP \(bu 2 کلید \fBi\fP در موقعیت فعلی مکان‌نما وارد حالت درج می‌شود. .IP \(bu 2 کلید \fBI\fP در ابتدای خط وارد حالت درج می‌شود. .IP \(bu 2 کلید \fBv\fP در موقعیت فعلی مکان‌نما وارد حالت دیداری می‌شود. .IP \(bu 2 کلید \fBa\fP پس از موقعیت فعلی مکان‌نما وارد حالت درج می‌شود. .IP \(bu 2 کلید \fBA\fP در انتهای سطر وارد حالت درج می‌شود. .IP \(bu 2 کلید \fBo\fP یک خط جدید زیر خط فعلی درج کرده و وارد حالت درج می‌شود. .IP \(bu 2 کلید \fBO\fP (حرف بزرگ) یک خط جدید بالای خط فعلی درج کرده و وارد حالت درج می‌شود. .IP \(bu 2 کلید \fB0\fP (صفر) مکان‌نما را به ابتدای خط منتقل می‌کند (در حالت فرمان باقی می‌ماند). .IP \(bu 2 کلید \fBd,d\fP سطر جاری را حذف کرده و به حلقه حذفیات (Kill Ring) منتقل می‌کند\&. .IP \(bu 2 کلید \fBD\fP متن پس از موقعیت مکان‌نما را حذف کرده و به حلقه حذفیات منتقل می‌کند\&. .IP \(bu 2 کلید \fBp\fP متن را از حلقه حذفیات می‌چسباند\&. .IP \(bu 2 کلید \fBu\fP آخرین ویرایش خط فرمان را واگردانی (undo) می‌کند. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBr\fP آخرین ویرایش واگردانی‌شده را بازگردانی (redo) می‌کند. .IP \(bu 2 کلیدهای \fB[\fP و \fB]\fP در تاریخچه به دنبال نشانهٔ قبلی/بعدی حاوی نشانهٔ زیر مکان‌نما می‌گردند. .IP \(bu 2 کلید \fB/\fP تاریخچه را در یک پیجر باز می‌کند. با فشردن مجدد به موارد قدیمی‌تر رفته و با \fBctrl\fP\-\fBs\fP به موارد جدیدتر هدایت می‌شوید. .IP \(bu 2 کلید \fBbackspace\fP مکان‌نما را به چپ می‌برد. .IP \(bu 2 کلیدهای \fBg,g\fP / \fBG\fP مکان‌نما را به ترتیب به ابتدا یا انتهای خط فرمان منتقل می‌کنند. .IP \(bu 2 کلید \fB~\fP بزرگی و کوچکی حرف را معکوس کرده و به نویسه بعدی می‌رود. .IP \(bu 2 کلید \fBg,u\fP حروف را تا انتهای کلمه به حروف کوچک تبدیل می‌کند. .IP \(bu 2 کلید \fBg,U\fP حروف را تا انتهای کلمه به حروف بزرگ تبدیل می‌کند. .IP \(bu 2 کلید \fB:,q\fP از fish خارج می‌شود. .UNINDENT .SS "حالت درج (Insert mode)" .INDENT 0.0 .IP \(bu 2 کلید \fBescape\fP وارد حالت فرمان می‌شود\&. .IP \(bu 2 کلید \fBbackspace\fP یک نویسه در سمت چپ را حذف می‌کند. .IP \(bu 2 کلید ترکیبی \fBctrl\fP\-\fBn\fP پیشنهاد خودکار را می‌پذیرد. .UNINDENT .SS "حالت دیداری (Visual mode)" .INDENT 0.0 .IP \(bu 2 کلیدهای \fBleft\fP \fB(\(ga\(ga←\(ga\fP) و \fBright\(ga(\(ga\(ga→\(ga\fP) انتخاب متن را یک نویسه به عقب یا جلو گسترش می‌دهند. .IP \(bu 2 کلید \fBh\fP مکان‌نما را به چپ می‌برد. .IP \(bu 2 کلید \fBl\fP مکان‌نما را به راست می‌برد. .IP \(bu 2 کلید \fBk\fP مکان‌نما را به بالا می‌برد. .IP \(bu 2 کلید \fBj\fP مکان‌نما را به پایین می‌برد. .IP \(bu 2 کلیدهای \fBb\fP و \fBw\fP انتخاب متن را یک کلمه به عقب یا جلو گسترش می‌دهند. .IP \(bu 2 کلیدهای \fBd\fP و \fBx\fP متن انتخاب‌شده را به حلقه حذفیات (Kill Ring) منتقل کرده و وارد حالت فرمان می‌شوند\&. .IP \(bu 2 کلیدهای \fBescape\fP و \fBctrl\fP\-\fBc\fP وارد حالت فرمان می‌شوند\&. .IP \(bu 2 کلیدهای \fBc\fP و \fBs\fP بخش انتخاب‌شده را حذف کرده و به حالت درج می‌روند. .IP \(bu 2 کلید \fBX\fP کل سطر را به حلقه حذفیات منتقل کرده و وارد حالت فرمان می‌شود\&. .IP \(bu 2 کلید \fBy\fP بخش انتخاب‌شده را در حلقه حذفیات کپی کرده و وارد حالت فرمان می‌شود\&. .IP \(bu 2 کلید \fB~\fP وضعیت بزرگی/کوچکی حروف بخش انتخاب‌شده را معکوس کرده و وارد حالت فرمان می‌شود\&. .IP \(bu 2 کلید \fBg,u\fP بخش انتخاب‌شده را به حروف کوچک تبدیل کرده و وارد حالت فرمان می‌شود\&. .IP \(bu 2 کلید \fBg,U\fP بخش انتخاب‌شده را به حروف بزرگ تبدیل کرده و وارد حالت فرمان می‌شود\&. .IP \(bu 2 کلید \fB\(dq,*,y\fP بخش انتخاب‌شده را در کلیپ‌بورد سیستم کپی کرده و وارد حالت فرمان می‌شود\&. .UNINDENT .SS "کلیدهای میانبر سفارشی (Custom bindings)" .sp علاوه بر میانبرهای استانداردی که در اینجا فهرست شده‌اند، می‌توانید میانبرهای سفارشی خود را نیز با bind \%<> تعریف کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX # عبارت \(ga\(ga^C\(ga\(ga و یک اعلان جدید چاپ می‌کند bind ctrl\-c cancel\-commandline .EE .UNINDENT .UNINDENT .sp دستورات \fBbind\fP را درون config.fish \%<#\:configuration> یا تابعی به نام \fBfish_user_key_bindings\fP قرار دهید\&. .sp اگر نظرتان درباره یک کلید میانبر تغییر کرد و خواستید به حالت پیش‌فرض fish برگردید، می‌توانید آن را حذف (پاک) کنید: .INDENT 0.0 .INDENT 3.5 .sp .EX bind \-\-erase ctrl\-c .EE .UNINDENT .UNINDENT .sp پوستهٔ fish میانبرهای از‌پیش‌تعیین‌شدهٔ خود را به خاطر دارد و بنابراین آن میانبر مجدداً اعمال خواهد شد. این کار شما را از به‌خاطر سپردن مقدار قبلی و افزودن مجدد آن بی‌نیاز می‌کند. .sp اگر از میانبرهای vi استفاده می‌کنید، توجه داشته باشید که \fBbind\fP به‌طور پیش‌فرض کلیدها را در حالت فرمان پیوند می‌زند\&. برای اختصاص میانبر در حالت درج: .INDENT 0.0 .INDENT 3.5 .sp .EX bind \-\-mode insert ctrl\-c \(aqcommandline \-r \(dq\(dq\(aq .EE .UNINDENT .UNINDENT .SS "توالی کلیدها (Key sequences)" .sp برای پی بردن به نام یک کلید، می‌توانید از دستور fish_key_reader \%<> استفاده کنید\&. .INDENT 0.0 .INDENT 3.5 .sp .EX > fish_key_reader # فشردن Alt + کلید جهت‌نمای راست Press a key: bind alt\-right \(aqdo something\(aq .EE .UNINDENT .UNINDENT .sp توجه داشته باشید که شیوه سنتی کدگذاری کلیدها توسط ترمینال و ارسال آن‌ها به برنامه (در اینجا fish) باعث می‌شود بسیاری از کلیدهای ترکیبی غیرقابل‌تشخیص یا غیرقابل‌اختصاص باشند. در کدگذاری معمول، کلید \fBctrl\fP\-\fBi\fP \fIدقیقاً معادل\fP کلید تب است، و در صورت فشردن هم‌زمان کلید ctrl، کلید shift قابل تشخیص نیست. .sp طرح‌های کدگذاری پیشرفته‌تری وجود دارند و fish تلاش می‌کند به ترمینال دستور دهد آن‌ها را فعال کند، اما هنوز ترمینال‌های زیادی از آن‌ها پشتیبانی نمی‌کنند. هنگامی که \fBfish_key_reader\fP برای دو کلید متفاوت توالی یکسانی چاپ می‌کند، به این دلیل است که ترمینال شما برای هر دوی آن‌ها توالی یکسانی می‌فرستد و کاری از دست fish در این باره برنمی‌آید. امید است که این طرح‌ها فراگیرتر شده و ورود داده‌ها انعطاف‌پذیرتر گردد. .sp در طرح قدیمی، کلید \fBescape\fP در ترمینال معادل \fBalt\fP است. برای تمایز میان فشردن کلید \fBescape\fP و سپس یک کلید دیگر، در مقابل فشردن کلید ترکیبی \fBalt\fP با آن کلید (یا یک توالی گریز که کلید می‌فرستد)، پوستهٔ fish پس از مشاهده کاراکتر escape مدت زمان معینی منتظر می‌ماند. این زمان از طریق متغیر \fBfish_escape_delay_ms\fP \%<#\:envvar-fish_escape_delay_ms> قابل تنظیم است. .sp اگر می‌خواهید بتوانید ابتدا کلید \fBescape\fP و سپس یک نویسه را فشار دهید و پوسته آن را معادل \fBalt\fP+آن نویسه بشمارد، مقدار آن را افزایش دهید؛ برای نمونه: .INDENT 0.0 .INDENT 3.5 .sp .EX set \-g fish_escape_delay_ms 100 .EE .UNINDENT .UNINDENT .sp مشابهاً، برای ابهام‌زدایی از \fIسایر\fP کلیدهای فشرده‌شده‌ای که در آن‌ها یک زیرتوالی و یک توالی طولانی‌تر را تعریف کرده‌اید، fish دارای متغیر \fBfish_sequence_key_delay_ms\fP است \%<#\:envvar-fish_sequence_key_delay_ms>: .INDENT 0.0 .INDENT 3.5 .sp .EX # این دستور توالی j,k را برای انتقال به حالت عادی در حالت vi اختصاص می‌دهد. # اگر آن را به همین شکل رها کنید، هر بار که \(dqj\(dq را فشار دهید، # پوسته منتظر فشردن \(dqk\(dq یا کلید دیگر برای رفع ابهام می‌ماند bind \-M insert \-m default j,k cancel repaint\-mode # پس از تنظیم این متغیر، پوسته تنها ۲۰۰ میلی‌ثانیه برای \(dqk\(dq منتظر می‌ماند، # یا تصمیم می‌گیرد با \(dqj\(dq به عنوان یک توالی جداگانه رفتار کرده و آن را درج کند. set \-g fish_sequence_key_delay_ms 200 .EE .UNINDENT .UNINDENT .SS "کپی و چسباندن (حلقه حذفیات / Kill Ring)" .sp پوستهٔ fish از یک حلقه حذفیات (kill ring) به سبک ایمکس برای قابلیت کپی و چسباندن بهره می‌برد. برای نمونه، از کلید ترکیبی \fBctrl\fP\-\fBk\fP (\fIkill\-line\fP) برای برش از موقعیت فعلی مکان‌نما تا انتهای خط استفاده کنید. رشته‌ای که برش داده می‌شود به فهرستی از موارد حذف‌شده وارد می‌گردد که حلقه حذفیات (kill ring) نام دارد. برای چسباندن آخرین مقدار از حلقه حذفیات (که ایمکس آن را \(dqyanking\(dq می‌نامد) از کلید ترکیبی \fBctrl\fP\-\fBy\fP (تابع ورودی \fByank\fP) استفاده کنید. پس از چسباندن، با استفاده از \fBalt\fP\-\fBy\fP (\fByank\-pop\fP) می‌توانید میان موارد حذفی قبلی بچرخید. .sp کپی و چسباندن از خارج از محیط پوسته نیز هم از طریق میانبرهای \fBctrl\fP\-\fBx\fP / \fBctrl\fP\-\fBv\fP (توابع \fBfish_clipboard_copy\fP و \fBfish_clipboard_paste\fP [3]) و هم از طریق قابلیت چسباندن ترمینال پشتیبانی می‌شود؛ برای این منظور fish قابلیت \(dqBracketed Paste Mode\(dq را فعال می‌کند تا بتواند متن چسبانده‌شده را از متن واردشده به صورت دستی تمیز دهد. علاوه بر این، هنگام چسباندن متن در میان تک‌کوتیشن‌ها، علامت‌های تک‌کوتیشن و بک‌اسلش‌های درون متن چسبانده‌شده به‌طور خودکار اسکیپ (گریزدهی) می‌شوند تا پس از بستن کوتیشن بتوان از نتیجه به عنوان یک نشانه واحد استفاده کرد. موارد حلقه حذفیات در متغیر \fBfish_killring\fP ذخیره می‌شوند. .sp دستورات \fBbegin\-selection\fP و \fBend\-selection\fP (که به‌طور پیش‌فرض به کلیدی اختصاص داده نشده‌اند؛ در حالت دیداری vi برای انتخاب استفاده می‌شوند) به همراه دستورات حرکت مکان‌نما که انتخاب فعلی را گسترش می‌دهند، انتخاب متن را کنترل می‌کنند. متغیر \fBfish_cursor_selection_mode\fP \%<#\:envvar-fish_cursor_selection_mode> می‌تواند برای پیکربندی این مورد استفاده شود که آیا نویسهٔ زیر مکان‌نما نیز باید شامل انتخاب شود (\fBinclusive\fP) یا خیر (\fBexclusive\fP). پیش‌فرض \fBexclusive\fP است که با هر شکل مکان‌نمایی به خوبی کار می‌کند. برای حالت vi، به‌ویژه در شکل مکان‌نمای \fBblock\fP یا \fBunderscore\fP ممکن است ترجیح دهید از \fBinclusive\fP استفاده کنید\&. .IP [3] 5 این قابلیت‌ها به ابزارهای خارجی متکی هستند. در حال حاضر ابزارهای xsel، xclip، wl\-copy/wl\-paste و pbcopy/pbpaste پشتیبانی می‌شوند. .SS "ویرایش چندخطی (Multiline editing)" .sp ویرایشگر خط فرمان fish می‌تواند برای کار روی دستوراتی که چند خط طول دارند استفاده شود. سه روش برای ایجاد فرمانی که بیش از یک خط گسترش می‌یابد وجود دارد: .INDENT 0.0 .IP \(bu 2 فشردن کلید \fBenter\fP هنگامی که یک بلوک از دستورات هنوز بسته نشده است؛ مانند زمانی که یک یا چند دستور بلوکی مثل \fBfor\fP، \fBbegin\fP یا \fBif\fP هنوز دستور end \%<> متناظر خود را دریافت نکرده‌اند. .IP \(bu 2 فشردن کلید ترکیبی \fBalt\fP\-\fBenter\fP به جای فشردن کلید \fBenter\fP. .IP \(bu 2 درج نویسهٔ بک‌اسلش (\fB\e\fP) پیش از فشردن کلید \fBenter\fP جهت گریزدهی خط جدید. .UNINDENT .sp ویرایشگر خط فرمان fish در هر دو حالت تک‌خطی و چندخطی کاملاً یکسان کار می‌کند. برای جابه‌جایی میان خطوط از کلیدهای جهت‌نمای چپ و راست و سایر کلیدهای میانبر مشابه استفاده کنید. .SS "تاریخچه دستورات با قابلیت جستجو (Searchable command history)" .sp پس از اجرای یک دستور، آن دستور در فهرست تاریخچه ذخیره می‌شود. هرگونه موارد تکراری در تاریخچه به‌طور خودکار حذف می‌شوند. با فشردن کلیدهای جهت‌نمای بالا و پایین، می‌توانید رو به جلو و عقب در تاریخچه جستجو کنید. اگر خط فرمان هنگام شروع جستجو خالی نباشد، فقط دستوراتی نمایش داده می‌شوند که حاوی رشتهٔ واردشده در خط فرمان باشند. .sp با فشردن کلیدهای ترکیبی \fBalt\fP\-\fBup\fP (\fB↑\fP) و \fBalt\fP\-\fBdown\fP (\fB↓\fP)، جستجوی تاریخچه به گونه‌ای متفاوت اجرا می‌شود: به جای جستجو برای یک خط فرمان کامل، هر خط فرمان به عناصر مجزایی همانند قبل از اجرا تفکیک شده و تاریخچه برای عنصری که با عنصر زیر مکان‌نما مطابقت دارد جستجو می‌شود. .sp برای جستجوهای پیچیده‌تر، می‌توانید \fBctrl\fP\-\fBr\fP را فشار دهید تا پیجری باز شود که امکان جستجو در تاریخچه را می‌دهد. این پیجر تعداد محدودی از موارد را در یک صفحه نمایش می‌دهد؛ مجدداً کلید ترکیبی \fBctrl\fP\-\fBr\fP [4] را برای رفتن به صفحه بعد و \fBctrl\fP\-\fBs\fP [5] را برای رفتن به صفحه قبل فشار دهید. می‌توانید متن را برای پالایش جستجوی خود تغییر دهید. .sp جستجوهای تاریخچه به بزرگی و کوچکی حروف حساس نیستند، مگر اینکه عبارت جستجو حاوی حروف بزرگ باشد. با فشردن کلید \fBescape\fP یا \fBpagedown\fP می‌توانید جستجو را برای ویرایش رشته متوقف کنید\&. .sp قرار دادن یک نویسهٔ فاصله در ابتدای خط فرمان از ذخیره کل خط در تاریخچه دیسک جلوگیری می‌کند. این دستور تا زمان اجرای دستور بعدی همچنان برای فراخوانی در دسترس خواهد بود، اما روی دیسک ذخیره نمی‌شود. این قابلیت به شما امکان می‌دهد اشتباهات املایی و موارد این‌چنینی را برطرف کنید. .sp تاریخچه دستورات به‌طور پیش‌فرض در فایل \fB~/.local/share/fish/fish_history\fP (یا \fB$XDG_DATA_HOME/fish/fish_history\fP در صورت تنظیم آن متغیر) ذخیره می‌شود. با این حال، می‌توانید با تنظیم متغیر محیطی \fBfish_history\fP نام نشست تاریخچه را تغییر دهید (که منجر به ایجاد یک فایل \fB_history\fP می‌شود)؛ هم پیش از آغاز پوسته و هم هنگام اجرای آن. .sp برای دستکاری‌های بیشتر، دستور history \%<> را ببینید. .sp مثال‌ها: .sp برای جستجوی دستورات قبلی حاوی کلمهٔ \(aqmake\(aq، عبارت \fBmake\fP را در کنسول تایپ کرده و کلید جهت‌نمای بالا را فشار دهید. .sp اگر خط فرمان حاوی عبارت \fBcd m\fP باشد، مکان‌نما را روی نویسهٔ \fBm\fP قرار داده و کلیدهای ترکیبی \fBalt\fP\-\fBup\fP (\fB↑\fP) را برای جستجوی کلمات تایپ‌شده پیشین که شامل \(aqm\(aq هستند، فشار دهید. .IP [4] 5 یا هر میانبر دیگری که تابع ورودی \fBhistory\-pager\fP را فعال کند. برای مشاهده فهرست به bind \%<> مراجعه نمایید. .IP [5] 5 یا هر میانبر دیگری که تابع ورودی \fBpager\-toggle\-search\fP را فعال کند. .SH "حالت خصوصی (PRIVATE MODE)" .sp پوستهٔ fish دارای یک حالت خصوصی است که در آن تاریخچه دستورات در فایل تاریخچه روی دیسک نوشته نخواهد شد. برای فعال‌سازی آن، یا متغیر \fB$fish_private_mode\fP را روی یک مقدار غیرخالی تنظیم کنید، یا پوسته را با \fBfish \-\-private\fP (یا به اختصار \fBfish \-P\fP) اجرا نمایید. .sp اگر fish را با گزینه \fB\-P\fP اجرا کنید، هم تاریخچهٔ گذشته را مخفی می‌کند و هم مانع از نوشتن تاریخچه روی دیسک می‌شود. این برای جلوگیری از افشای اطلاعات شخصی (برای مثال هنگام ضبط صفحه نمایش) یا هنگام کار با اطلاعات حساس بسیار مفید است. .sp در صورتی که می‌خواهید به تمایل کاربر برای حفظ حریم خصوصی احترام بگذارید و رفتار اسکریپت‌های fish خود را تغییر دهید، می‌توانید متغیر \fBfish_private_mode\fP را بررسی کنید (\fBif test \-n \(dq$fish_private_mode\(dq ...\fP). .SH "پیمایش دایرکتوری‌ها (NAVIGATING DIRECTORIES)" .sp پیمایش دایرکتوری‌ها معمولاً با دستور cd \%<> انجام می‌شود، اما fish قابلیت‌های پیشرفته‌ای نیز ارائه می‌دهد. .sp دایرکتوری کاری فعلی را می‌توان با دستور pwd \%<> یا متغیر ویژهٔ \fB$PWD\fP \%<#\:variables-special> نمایش داد\&. معمولاً اعلان خط فرمان شما از قبل این کار را انجام می‌دهد. .SS "تاریخچه دایرکتوری‌ها (Directory history)" .sp پوستهٔ fish به‌طور خودکار ردپای دایرکتوری‌هایی را که اخیراً با دستور cd \%<> بازدید شده‌اند، با ذخیره این تاریخچه در متغیرهای \fBdirprev\fP و \fBdirnext\fP نگه می‌دارد. .sp چندین دستور برای تعامل با این تاریخچه دایرکتوری‌ها ارائه شده است: .INDENT 0.0 .IP \(bu 2 دستور dirh \%<> تاریخچه را چاپ می‌کند .IP \(bu 2 دستور cdh \%<> اعلانی برای پیمایش سریع در تاریخچه نمایش می‌دهد .IP \(bu 2 دستور prevd \%<> در تاریخچه به عقب حرکت می‌کند. این دستور به \fBalt\fP\-\fBleft\fP (\fB←\fP) متصل است .IP \(bu 2 دستور nextd \%<> در تاریخچه به جلو حرکت می‌کند. این دستور به \fBalt\fP\-\fBright\fP (\fB→\fP) متصل است .UNINDENT .SS "پشته دایرکتوری‌ها (Directory stack)" .sp مجموعه دیگری از دستورات که معمولاً در سایر پوسته‌ها مانند bash نیز در دسترس هستند، به پشتهٔ دایرکتوری‌ها مربوط می‌شوند. مدیریت پشته خودکار نیست و نیازمند فراخوانی مستقیم دستورات زیر است: .INDENT 0.0 .IP \(bu 2 دستور dirs \%<> پشته را چاپ می‌کند .IP \(bu 2 دستور pushd \%<> یک دایرکتوری را بالای پشته اضافه می‌کند و آن را به عنوان دایرکتوری کاری فعلی قرار می‌دهد .IP \(bu 2 دستور popd \%<> دایرکتوری بالای پشته را برداشته و دایرکتوری کاری فعلی را تغییر می‌دهد .UNINDENT .SH "نویسندگان (AUTHORS)" توسعه‌دهندگان fish-shell .SH "حق نشر (COPYRIGHT)" توسعه‌دهندگان fish-shell .\" End of generated man page.