.\" Automatically generated by Pandoc 3.7.0.2 .\" .TH "LF" "1" "2026\-07\-31" "r42" "DOCUMENTATION" .SH "نام (NAME)" lf \- مدیر فایل متنی و ترمینالی .SH "خلاصه دستور (SYNOPSIS)" \f[B]lf\f[R] [\f[B]\-command\f[R] \f[I]command\f[R]] [\f[B]\-config\f[R] \f[I]path\f[R]] [\f[B]\-cpuprofile\f[R] \f[I]path\f[R]] [\f[B]\-doc\f[R]] [\f[B]\-help\f[R]] [\f[B]\-last\-dir\-path\f[R] \f[I]path\f[R]] [\f[B]\-log\f[R] \f[I]path\f[R]] [\f[B]\-memprofile\f[R] \f[I]path\f[R]] [\f[B]\-print\-last\-dir\f[R]] [\f[B]\-print\-selection\f[R]] [\f[B]\-remote\f[R] \f[I]command\f[R]] [\f[B]\-selection\-path\f[R] \f[I]path\f[R]] [\f[B]\-server\f[R]] [\f[B]\-single\f[R]] [\f[B]\-version\f[R]] [\f[I]cd\-or\-select\-path\f[R]] .SH "توضیحات (DESCRIPTION)" lf یک مدیر فایل قدرتمند برای محیط خط فرمان و ترمینال است. .PP کد منبع این برنامه در مخزن گیت به نشانی زیر در دسترس است: \c .UR https://github.com/gokcehan/lf .UE \c .PP این مستندات را می‌توان درون ترمینال با اجرای دستور \f[CR]lf \-doc\f[R] یا به صورت آنلاین در نشانی زیر مطالعه کرد: \c .UR https://github.com/gokcehan/lf/blob/master/doc.md .UE \c \ همچنین می‌توانید از دستور \f[CR]help\f[R] (به‌طور پیش‌فرض \f[CR]\f[R]) درون lf برای مشاهده مستندات در یک صفحه‌بند (pager) استفاده کنید. صفحه راهنمایی (man page) با همین محتوا نیز در مخزن پروژه موجود است: \c .UR https://github.com/gokcehan/lf/blob/master/lf.1 .UE \c .SH "گزینه‌ها (OPTIONS)" .SS "آرگومان‌های موضعی (POSITIONAL ARGUMENTS)" .TP \f[B]cd\-or\-select\-path\f[R] مکان شروع را تعیین می‌کند. اگر \f[I]path\f[R] یک پوشه باشد، برنامه در همان پوشه اجرا می‌شود. اگر یک فایل باشد، برنامه در پوشه والد آن باز شده و فایل مورد نظر به حالت انتخاب درمی‌آید. چنانچه هیچ \f[I]path\f[R] مشخص نشود، lf از پوشه جاری استفاده می‌کند. تنها یک آرگومان پذیرفته می‌شود. .SS "گزینه‌های متا (META OPTIONS)" .TP \f[B]\-doc\f[R] نمایش مستندات کامل lf (مشابه با همین فایل) و خروج. .TP \f[B]\-help\f[R] نمایش راهنمای استفاده در خط فرمان و خروج. .TP \f[B]\-version\f[R] نمایش اطلاعات نسخه و خروج. .SS "راه‌اندازی و پیکربندی (STARTUP & CONFIGURATION)" .TP \f[B]\-command\f[R] \f[I]command\f[R] اجرای \f[I]command\f[R] در هنگام مقداردهی اولیه کلاینت (یعنی پس از خواندن پیکربندی و پیش از \f[CR]on\-init\f[R]). برای اجرای بیش از یک دستور، می‌توانید سوییچ \f[B]\-command\f[R] را چند بار به کار ببرید یا چندین دستور را به کمک «;» زنجیره کنید. .TP \f[B]\-config\f[R] \f[I]path\f[R] استفاده از فایل پیکربندی در مسیر \f[I]path\f[R] به جای مسیرهای پیش‌فرض جستجو. این گزینه فقط مشخص می‌کند که کدام فایل \f[CR]lfrc\f[R] در زمان راه‌اندازی خوانده شود. .SS "یکپارچه‌سازی با شل (SHELL INTEGRATION)" .TP \f[B]\-print\-last\-dir\f[R] چاپ آخرین پوشه بازدیدشده در خروجی استاندارد (stdout) هنگام خروج از lf. این ویژگی برای تغییر پوشه کاری شل توسط lf کاربرد دارد. برای جزئیات بیشتر به بخش \f[CR]CHANGING DIRECTORY\f[R] مراجعه کنید. .TP \f[B]\-last\-dir\-path\f[R] \f[I]path\f[R] مشابه \f[B]\-print\-last\-dir\f[R]، اما مسیر پوشه را به جای خروجی استاندارد در فایل \f[I]path\f[R] ذخیره می‌کند. .TP \f[B]\-print\-selection\f[R] چاپ فایل‌های انتخاب‌شده در خروجی استاندارد هنگام باز کردن یک فایل در lf. این گزینه برای استفاده از lf به عنوان دیالوگ انتخاب فایل (open file) کاربرد دارد. ابتدا فایل‌های مورد نظرتان را برای ارسال به برنامه‌ای دیگر انتخاب کنید. سپس با فشردن کلید باز کردن فایل، انتخاب را تایید نمایید. این کار باعث خروج از lf و چاپ موارد انتخاب‌شده در خروجی می‌شود. خروج زودهنگام از lf انتخاب‌ها را لغو خواهد کرد. .TP \f[B]\-selection\-path\f[R] \f[I]path\f[R] مشابه \f[B]\-print\-selection\f[R]، اما فهرست جداشده با خط جدید را به جای خروجی استاندارد در \f[I]path\f[R] می‌نویسد. .SS "سرور (SERVER)" .TP \f[B]\-remote\f[R] \f[I]command\f[R] ارسال \f[I]command\f[R] به سرور در حال اجرا (مانند \f[CR]send\f[R]، \f[CR]query\f[R]، \f[CR]list\f[R]، \f[CR]quit\f[R] یا \f[CR]quit!\f[R]). برای اطلاعات بیشتر به بخش \f[CR]REMOTE COMMANDS\f[R] مراجعه کنید. .TP \f[B]\-server\f[R] راه‌اندازی صریح فرآیند سرور (بدون رابط کاربری متنی). سرور در پیش‌زمینه اجرا شده و گزارش‌ها را به خطای استاندارد (یا فایل مشخص‌شده با \f[B]\-log\f[R]) ارسال می‌کند. کلاینت‌ها در صورت در دسترس نبودن سرور، به طور خودکار آن را اجرا می‌کنند مگر اینکه از \f[B]\-single\f[R] استفاده شود. .TP \f[B]\-single\f[R] راه‌اندازی یک کلاینت مستقل بدون سرور. کنترل از راه دور (remote control) در این حالت غیرفعال خواهد بود. .SS "عیب‌یابی (DIAGNOSTICS)" .TP \f[B]\-log\f[R] \f[I]path\f[R] افزودن لاگ‌های زمان اجرا به فایل \f[I]path\f[R]. .TP \f[B]\-cpuprofile\f[R] \f[I]path\f[R] نوشتن پروفایل پردازنده (CPU profile) در مسیر \f[I]path\f[R]. این پروفایل از طریق \f[CR]go tool pprof\f[R] قابل تحلیل است. .TP \f[B]\-memprofile\f[R] \f[I]path\f[R] نوشتن پروفایل حافظه (memory profile) در مسیر \f[I]path\f[R]. این پروفایل از طریق \f[CR]go tool pprof\f[R] قابل تحلیل است. .SS "مثال‌ها (EXAMPLES)" استفاده از \f[CR]lf\f[R] برای انتخاب فایل‌ها (همراه با مخفی‌سازی برخی فرمت‌های فایل): .IP .EX lf \-command \(aqset nohidden\(aq \-command \(aqset hiddenfiles \(dq*mp4:*pdf:*txt\(dq\(aq \-print\-selection .EE .PP یک دیالوگ پیشرفته برای «انتخاب فایل» با چیدمان و ظاهر سفارشی: .IP .EX lf \-command \(aqset nopreview; set ratios 1; set drawbox; set promptfmt \(dqSelect files [%w] %S q: cancel, l: confirm\(dq\(aq \-print\-selection .EE .PP باز کردن پوشه Downloads و تنظیم \f[CR]sortby\f[R] و \f[CR]info\f[R] بر اساس تاریخ ایجاد: .IP .EX lf \-command \(aqset sortby btime; set info btime\(aq \(ti/Downloads .EE .PP جلوگیری موقت از ثبت دستورات در تاریخچه توسط \f[CR]lf\f[R]: .IP .EX lf \-command \(aqset nohistory\(aq .EE .PP استفاده از پیکربندی پیش‌فرض و ثبت لاگ نشست جاری: .IP .EX lf \-config /dev/null \-log /tmp/lf.log .EE .PP خروج اجباری از سرور: .IP .EX lf \-remote \(aqquit!\(aq .EE .PP تنظیم پوشه کاری جاری شل مطابق با پوشه خروجی lf: .IP .EX cd \(dq$(lf \-print\-last\-dir)\(dq .EE .SH "مرجع سریع (QUICK REFERENCE)" دستورات زیر توسط lf ارائه شده‌اند: .IP .EX quit (default \(aqq\(aq) up (default \(aqk\(aq and \(aq\(aq) half\-up (default \(aq\(aq) page\-up (default \(aq\(aq and \(aq\(aq) scroll\-up (default \(aq\(aq) down (default \(aqj\(aq and \(aq\(aq) half\-down (default \(aq\(aq) page\-down (default \(aq\(aq and \(aq\(aq) scroll\-down (default \(aq\(aq) updir (default \(aqh\(aq and \(aq\(aq) open (default \(aql\(aq and \(aq\(aq) jump\-next (default \(aq]\(aq) jump\-prev (default \(aq[\(aq) top (default \(aqgg\(aq and \(aq\(aq) bottom (default \(aqG\(aq and \(aq\(aq) high (default \(aqH\(aq) middle (default \(aqM\(aq) low (default \(aqL\(aq) toggle invert (default \(aqv\(aq) unselect (default \(aqu\(aq) glob\-select glob\-unselect copy (default \(aqy\(aq) cut (default \(aqd\(aq) paste (default \(aqp\(aq) clear (default \(aqc\(aq) sync draw redraw (default \(aq\(aq) load reload (default \(aq\(aq) delete (modal) rename (modal) (default \(aqr\(aq) read (modal) (default \(aq:\(aq) shell (modal) (default \(aq$\(aq) shell\-pipe (modal) (default \(aq%\(aq) shell\-wait (modal) (default \(aq!\(aq) shell\-async (modal) (default \(aq&\(aq) find (modal) (default \(aqf\(aq) find\-back (modal) (default \(aqF\(aq) find\-next (default \(aq;\(aq) find\-prev (default \(aq,\(aq) search (modal) (default \(aq/\(aq) search\-back (modal) (default \(aq?\(aq) search\-next (default \(aqn\(aq) search\-prev (default \(aqN\(aq) filter (modal) setfilter mark\-save (modal) (default \(aqm\(aq) mark\-load (modal) (default \(dq\(aq\(dq) mark\-remove (modal) (default \(aq\(dq\(aq) tag tag\-toggle (default \(aqt\(aq) echo echomsg echoerr cd select source push addcustominfo calcdirsize clearmaps tty\-write visual (default \(aqV\(aq) .EE .PP دستورات حالت بصری (Visual mode) زیر توسط lf ارائه شده‌اند: .IP .EX visual\-accept (default \(aqV\(aq) visual\-unselect visual\-discard (default \(aq\(aq) visual\-change (default \(aqo\(aq) .EE .PP دستورات حالت خط فرمان (Command\-line mode) زیر توسط lf ارائه شده‌اند: .IP .EX cmd\-insert cmd\-escape (default \(aq\(aq) cmd\-complete (default \(aq\(aq) cmd\-menu\-complete cmd\-menu\-complete\-back cmd\-menu\-accept cmd\-menu\-discard cmd\-enter (default \(aq\(aq and \(aq\(aq) cmd\-interrupt (default \(aq\(aq) cmd\-history\-next (default \(aq\(aq and \(aq\(aq) cmd\-history\-prev (default \(aq\(aq and \(aq\(aq) cmd\-left (default \(aq\(aq and \(aq\(aq) cmd\-right (default \(aq\(aq and \(aq\(aq) cmd\-home (default \(aq\(aq and \(aq\(aq) cmd\-end (default \(aq\(aq and \(aq\(aq) cmd\-delete (default \(aq\(aq and \(aq\(aq) cmd\-delete\-back (default \(aq\(aq) cmd\-delete\-home (default \(aq\(aq) cmd\-delete\-end (default \(aq\(aq) cmd\-delete\-unix\-word (default \(aq\(aq) cmd\-yank (default \(aq\(aq) cmd\-transpose (default \(aq\(aq) cmd\-transpose\-word (default \(aq\(aq) cmd\-word (default \(aq\(aq) cmd\-word\-back (default \(aq\(aq) cmd\-delete\-word (default \(aq\(aq) cmd\-delete\-word\-back (default \(aq\(aq) cmd\-capitalize\-word (default \(aq\(aq) cmd\-uppercase\-word (default \(aq\(aq) cmd\-lowercase\-word (default \(aq\(aq) .EE .PP گزینه‌های زیر می‌توانند برای سفارشی‌سازی رفتار lf استفاده شوند: .IP .EX anchorfind bool (default true) autoquit bool (default true) borderfmt string (default \(dq\(rs033[0m\(dq) borderstyle string (default \(aqbox\(aq) cleaner string (default \(aq\(aq) copyfmt string (default \(dq\(rs033[7;33m\(dq) cursoractivefmt string (default \(dq\(rs033[7m\(dq) cursorparentfmt string (default \(dq\(rs033[7m\(dq) cursorpreviewfmt string (default \(dq\(rs033[4m\(dq) cutfmt string (default \(dq\(rs033[7;31m\(dq) dircounts bool (default false) dirfirst bool (default true) dironly bool (default false) dirpreviews bool (default false) drawbox bool (default false) dupfilefmt string (default \(aq%f.\(ti%n\(ti\(aq) errorfmt string (default \(dq\(rs033[7;31;47m\(dq) filesep string (default \(dq\(rsn\(dq) filtermethod string (default \(aqtext\(aq) findlen int (default 1) hidden bool (default false) hiddenfiles []string (default \(aq.*\(aq for Unix and \(aq\(aq for Windows) history bool (default true) icons bool (default false) ifs string (default \(aq\(aq) ignorecase bool (default true) ignoredia bool (default true) incfilter bool (default false) incsearch bool (default false) info []string (default \(aq\(aq) infotimefmtnew string (default \(aqJan _2 15:04\(aq) infotimefmtold string (default \(aqJan _2 2006\(aq) menufmt string (default \(dq\(rs033[0m\(dq) menuheaderfmt string (default \(dq\(rs033[1m\(dq) menuselectfmt string (default \(dq\(rs033[7m\(dq) mergeindicators bool (default false) mouse bool (default false) number bool (default false) numbercursorfmt string (default \(aq\(aq) numberfmt string (default \(dq\(rs033[33m\(dq) period int (default 0) preload bool (default false) preserve []string (default \(dqmode\(dq) preview bool (default true) previewer string (default \(aq\(aq) promptfmt string (default \(dq\(rs033[32;1m%u\(at%h\(rs033[0m:\(rs033[34;1m%d\(rs033[0m\(rs033[1m%f\(rs033[0m\(dq) ratios []int (default \(aq1:2:3\(aq) relativenumber bool (default false) reverse bool (default false) rulerfile string (default \(dq\(dq) rulerfmt string (default \(dq\(dq) scrolloff int (default 0) searchmethod string (default \(aqtext\(aq) selectfmt string (default \(dq\(rs033[7;35m\(dq) selmode string (default \(aqall\(aq) shell string (default \(aqsh\(aq for Unix and \(aqcmd\(aq for Windows) shellflag string (default \(aq\-c\(aq for Unix and \(aq/c\(aq for Windows) shellopts []string (default \(aq\(aq) showbinds bool (default true) sizeunits string (default \(aqbinary\(aq) smartcase bool (default true) smartdia bool (default false) sortby string (default \(aqnatural\(aq) sortignorecase bool (default true) sortignoredia bool (default true) statfmt string (default \(dq\(rs033[36m%p\(rs033[0m| %c| %u| %g| %S| %t| \-> %l\(dq) tabstop int (default 8) tagfmt string (default \(dq\(rs033[31m\(dq) tempmarks string (default \(aq\(aq) terminalcursor string (default \(aqdefault\(aq) timefmt string (default \(aqMon Jan _2 15:04:05 2006\(aq) truncatechar string (default \(aq\(ti\(aq) truncatepct int (default 100) visualfmt string (default \(dq\(rs033[7;36m\(dq) waitmsg string (default \(aqPress any key to continue\(aq) watch bool (default false) wrapscan bool (default true) wrapscroll bool (default false) user_{option} string (default none) .EE .PP متغیرهای محیطی زیر برای دستورات شل در دسترس هستند: .IP .EX f fs fv fx id PWD OLDPWD LF_LEVEL OPENER VISUAL EDITOR PAGER SHELL lf lf_{option} lf_user_{option} lf_flag_{flag} lf_width lf_height lf_count lf_mode .EE .PP دستورات شل ویژه زیر در صورت تعریف شدن، برای شخصی‌سازی رفتار lf استفاده می‌شوند: .IP .EX open paste rename delete pre\-cd on\-cd on\-load on\-focus\-gained on\-focus\-lost on\-init on\-select on\-redraw on\-quit .EE .PP دستورات و کلیدهای میانبر زیر به طور پیش‌فرض تعریف شده‌اند: .IP .EX Unix cmd open &$OPENER \(dq$f\(dq map e $$EDITOR \(dq$f\(dq map i $$PAGER \(dq$f\(dq map w $$SHELL cmd help $$lf \-doc | $PAGER map help cmd maps $lf \-remote \(dqquery $id maps\(dq | $PAGER cmd nmaps $lf \-remote \(dqquery $id nmaps\(dq | $PAGER cmd vmaps $lf \-remote \(dqquery $id vmaps\(dq | $PAGER cmd cmaps $lf \-remote \(dqquery $id cmaps\(dq | $PAGER cmd cmds $lf \-remote \(dqquery $id cmds\(dq | $PAGER Windows cmd open &%OPENER% %f% map e $%EDITOR% %f% map i !%PAGER% %f% map w $%SHELL% cmd help !%lf% \-doc | %PAGER% map help cmd maps !%lf% \-remote \(dqquery %id% maps\(dq | %PAGER% cmd nmaps !%lf% \-remote \(dqquery %id% nmaps\(dq | %PAGER% cmd vmaps !%lf% \-remote \(dqquery %id% vmaps\(dq | %PAGER% cmd cmaps !%lf% \-remote \(dqquery %id% cmaps\(dq | %PAGER% cmd cmds !%lf% \-remote \(dqquery %id% cmds\(dq | %PAGER% .EE .PP تنظیمات پیش‌فرض برای ویندوز از نگارش \f[CR]cmd\f[R] استفاده می‌کنند. یک فایل پیکربندی سازگار با \f[CR]PowerShell\f[R] در نشانی زیر در دسترس است: \c .UR https://github.com/gokcehan/lf/blob/master/etc/lfrc.ps1.example .UE \c .PP کلیدهای میانبر تکمیلی زیر نیز به طور پیش‌فرض ارائه شده‌اند: .IP .EX map zh set hidden! map zr set reverse! map zn set info map zs set info size map zt set info time map za set info size:time map sn :set sortby natural; set info map ss :set sortby size; set info size map st :set sortby time; set info time map sa :set sortby atime; set info atime map sb :set sortby btime; set info btime map sc :set sortby ctime; set info ctime map se :set sortby ext; set info map gh cd \(ti nmap :toggle; down .EE .PP در صورتی که گزینه \f[CR]mouse\f[R] فعال باشد، دکمه‌های ماوس کارکردهای پیش‌فرض زیر را خواهند داشت: .IP .EX Left mouse button Click on a file or directory to select it. Right mouse button Enter a directory or open a file. Also works on the preview pane. Scroll wheel Move up or down. If Ctrl is pressed, scroll up or down. .EE .SH "پیکربندی (CONFIGURATION)" فایل‌های پیکربندی باید در مسیرهای زیر قرار گیرند: .IP .EX OS system\-wide user\-specific Unix /etc/lf/lfrc \(ti/.config/lf/lfrc Windows C:\(rsProgramData\(rslf\(rslfrc C:\(rsUsers\(rs\(rsAppData\(rsRoaming\(rslf\(rslfrc .EE .PP فایل رنگ‌ها (colors) باید در مسیرهای زیر قرار گیرد: .IP .EX OS system\-wide user\-specific Unix /etc/lf/colors \(ti/.config/lf/colors Windows C:\(rsProgramData\(rslf\(rscolors C:\(rsUsers\(rs\(rsAppData\(rsRoaming\(rslf\(rscolors .EE .PP فایل آیکون‌ها (icons) باید در مسیرهای زیر قرار گیرد: .IP .EX OS system\-wide user\-specific Unix /etc/lf/icons \(ti/.config/lf/icons Windows C:\(rsProgramData\(rslf\(rsicons C:\(rsUsers\(rs\(rsAppData\(rsRoaming\(rslf\(rsicons .EE .PP فایل موارد انتخاب‌شده (selection) در مسیرهای زیر ذخیره می‌شود: .IP .EX Unix \(ti/.local/share/lf/files Windows C:\(rsUsers\(rs\(rsAppData\(rsLocal\(rslf\(rsfiles .EE .PP فایل نشانک‌ها (marks) در مسیرهای زیر قرار می‌گیرد: .IP .EX Unix \(ti/.local/share/lf/marks Windows C:\(rsUsers\(rs\(rsAppData\(rsLocal\(rslf\(rsmarks .EE .PP فایل تگ‌ها (tags) در مسیرهای زیر قرار می‌گیرد: .IP .EX Unix \(ti/.local/share/lf/tags Windows C:\(rsUsers\(rs\(rsAppData\(rsLocal\(rslf\(rstags .EE .PP فایل تاریخچه (history) در مسیرهای زیر نگهداری می‌شود: .IP .EX Unix \(ti/.local/share/lf/history Windows C:\(rsUsers\(rs\(rsAppData\(rsLocal\(rslf\(rshistory .EE .PP می‌توانید این مسیرها را با استفاده از متغیرهای زیر که بر اساس اولویت و مقادیر پیش‌فرض فهرست شده‌اند تنظیم کنید: .IP .EX Unix $LF_CONFIG_HOME $XDG_CONFIG_HOME \(ti/.config $LF_DATA_HOME $XDG_DATA_HOME \(ti/.local/share Windows %LF_CONFIG_HOME% %XDG_CONFIG_HOME% %APPDATA% %LF_DATA_HOME% %XDG_DATA_HOME% %LOCALAPPDATA% .EE .PP یک نمونه فایل پیکربندی در نشانی زیر در دسترس است: \c .UR https://github.com/gokcehan/lf/blob/master/etc/lfrc.example .UE \c .SH "دستورات (COMMANDS)" این بخش اطلاعات مربوط به دستورات توکار (built\-in) را ارائه می‌دهد. دستورات حالتی (Modal commands) هیچ آرگومانی نمی‌پذیرند، بلکه حالت عملکرد را تغییر می‌دهند تا ورودی را به سادگی دریافت کنند، بنابراین برای انتساب به کلیدهای میانبر طراحی شده‌اند. .SS quit (default \f[CR]q\f[R]) خروج از lf و بازگشت به خط فرمان شل. .SS up (default \f[CR]k\f[R] and \f[CR]\f[R]), half\-up (default \f[CR]\f[R]), page\-up (default \f[CR]\f[R] and \f[CR]\f[R]), scroll\-up (default \f[CR]\f[R]), down (default \f[CR]j\f[R] and \f[CR]\f[R]), half\-down (default \f[CR]\f[R]), page\-down (default \f[CR]\f[R] and \f[CR]\f[R]), scroll\-down (default \f[CR]\f[R]) حرکت یا پیمایش انتخاب فایل جاری به سمت بالا یا پایین به اندازه یک خط، نیم صفحه یا یک صفحه کامل. .SS updir (default \f[CR]h\f[R] and \f[CR]\f[R]) تغییر پوشه کاری جاری به پوشه والد (یک سطح بالاتر). .SS open (default \f[CR]l\f[R] and \f[CR]\f[R]) اگر فایل جاری یک پوشه باشد، پوشه کاری به آن تغییر می‌کند؛ در غیر این صورت، دستور \f[CR]open\f[R] اجرا می‌شود. یک دستور پیش‌فرض \f[CR]open\f[R] برای فراخوانی ناهمگام ابزار بازکننده پیش‌فرض سیستم همراه با فایل جاری تعبیه شده است. می‌توان دستور \f[CR]open\f[R] سفارشی برای تغییر این رفتار پیش‌فرض تعریف کرد. .SS jump\-next (default \f[CR]]\f[R]), jump\-prev (default \f[CR][\f[R]) تغییر پوشه کاری جاری به مورد بعدی یا قبلی در فهرست پرش (jumplist). .SS top (default \f[CR]gg\f[R] and \f[CR]\f[R]), bottom (default \f[CR]G\f[R] and \f[CR]\f[R]) انتقال نشانگر انتخاب فایل به ابتدای یا انتهای پوشه. می‌توان یک شمارنده برای رفتن به سطری مشخص تعیین کرد؛ مثلاً از \f[CR]3G\f[R] برای رفتن به سطر سوم استفاده کنید. .SS high (default \f[CR]H\f[R]), middle (default \f[CR]M\f[R]), low (default \f[CR]L\f[R]) انتقال نشانگر انتخاب فایل به بالای صفحه، وسط صفحه یا پایین صفحه نمایش. .SS toggle تغییر وضعیت انتخاب برای فایل جاری یا فایل‌های مشخص‌شده به عنوان آرگومان. .SS invert (default \f[CR]v\f[R]) معکوس کردن وضعیت انتخاب تمام فایل‌های موجود در پوشه جاری (یعنی اجرای \f[CR]toggle\f[R] روی همه فایل‌ها). فایل‌های انتخاب‌شده در سایر پوشه‌ها با این دستور تغییری نمی‌کنند. می‌توانید با ترکیب \f[CR]invert\f[R] و \f[CR]unselect\f[R] دستور جدیدی برای انتخاب تمامی فایل‌ها بسازید (مانند \f[CR]cmd select\-all :unselect; invert\f[R])، هرچند این کار انتخاب‌های سایر پوشه‌ها را نیز پاک می‌کند. .SS unselect (default \f[CR]u\f[R]) لغو انتخاب تمام فایل‌ها در همه پوشه‌ها. .SS glob\-select, glob\-unselect انتخاب یا لغو انتخاب فایل‌هایی که با الگوی گلوب داده‌شده تطابق دارند. .SS copy (default \f[CR]y\f[R]) ذخیره مسیر فایل‌های انتخاب‌شده در کلیپ‌بورد به عنوان فایل‌های آماده کپی. اگر هیچ فایلی انتخاب نشده باشد، مسیر فایل جاری استفاده می‌شود. .SS cut (default \f[CR]d\f[R]) ذخیره مسیر فایل‌های انتخاب‌شده در کلیپ‌بورد به عنوان فایل‌های آماده انتقال (Move). اگر هیچ فایلی انتخاب نشده باشد، مسیر فایل جاری استفاده می‌شود. .SS paste (default \f[CR]p\f[R]) کپی یا انتقال فایل‌های موجود در کلیپ‌بورد به پوشه کاری جاری. امکان تعریف دستور \f[CR]paste\f[R] سفارشی برای تغییر این رفتار پیش‌فرض وجود دارد. .SS clear (default \f[CR]c\f[R]) پاک کردن مسیرهای فایل ذخیره‌شده در کلیپ‌بورد. .SS sync همگام‌سازی فایل‌های کپی یا بریده‌شده با سرور. این دستور در صورت نیاز به طور خودکار فراخوانی می‌شود. .SS draw رسم مجدد صفحه نمایش. این دستور در صورت نیاز به طور خودکار فراخوانی می‌شود. .SS redraw (default \f[CR]\f[R]) همگام‌سازی ترمینال و بازطراحی کامل صفحه. .SS load بارگذاری فایل‌ها و پوشه‌های تغییر یافته. این دستور هنگام نیاز به صورت خودکار اجرا می‌شود. .SS reload (default \f[CR]\f[R]) تخلیه حافظه موقت (cache) و بارگذاری مجدد کلیه فایل‌ها و پوشه‌ها. .SS delete (modal) حذف فایل جاری یا فایل‌های انتخاب‌شده. می‌توان با تعریف دستور \f[CR]delete\f[R] سفارشی رفتار پیش‌فرض را تغییر داد. .SS rename (modal) (default \f[CR]r\f[R]) تغییر نام فایل جاری با استفاده از روش داخلی برنامه. می‌توان دستور سفارشی \f[CR]rename\f[R] برای لغو این رفتار پیش‌فرض تعریف کرد. .SS read (modal) (default \f[CR]:\f[R]) خواندن یک دستور برای ارزیابی و اجرا. .SS shell (modal) (default \f[CR]$\f[R]) دریافت یک دستور شل برای اجرا. .SS shell\-pipe (modal) (default \f[CR]%\f[R]) دریافت یک دستور شل برای اجرا به گونه‌ای که ورودی/خروجی استاندارد آن به خط وضعیت پایینی متصل شود. .SS shell\-wait (modal) (default \f[CR]!\f[R]) دریافت یک دستور شل برای اجرا و توقف تا زمان فشردن یک کلید پس از پایان. .SS shell\-async (modal) (default \f[CR]&\f[R]) دریافت یک دستور شل برای اجرای ناهمگام و در پس‌زمینه بدون ورودی/خروجی استاندارد. .SS find (modal) (default \f[CR]f\f[R]), find\-back (modal) (default \f[CR]F\f[R]), find\-next (default \f[CR];\f[R]), find\-prev (default \f[CR],\f[R]) دریافت کلید(ها) برای یافتن نام فایل منطبق در جهت جلو یا عقب و پرش به مورد منطبق بعدی یا قبلی. .SS search (default \f[CR]/\f[R]), search\-back (default \f[CR]?\f[R]), search\-next (default \f[CR]n\f[R]), search\-prev (default \f[CR]N\f[R]) دریافت یک الگو برای جستجوی نام فایل در جهت جلو یا عقب و پرش به نتیجه بعدی یا قبلی. .SS filter (modal), setfilter دستور \f[CR]filter\f[R] الگویی را دریافت می‌کند تا فایل‌ها را فیلتر کرده و تنها موارد منطبق را نمایش دهد. دستور \f[CR]setfilter\f[R] عملکرد مشابهی دارد اما الگو را از طریق آرگومان دریافت کرده و بلافاصله اعمال می‌کند. می‌توانید آرگومانی به \f[CR]filter\f[R] ارسال کنید تا به عنوان متن ابتدایی پرامپت قرار گیرد. .SS mark\-save (modal) (default \f[CR]m\f[R]) ذخیره پوشه جاری به عنوان نشانک (bookmark) منتسب به کلید مشخص‌شده. .SS mark\-load (modal) (default \f[CR]\(aq\f[R]) تغییر پوشه جاری به نشانک منتسب به کلید داده‌شده. نشانک ویژه \f[CR]\(aq\f[R] پوشه قبلی را پس از اجرای دستورات \f[CR]mark\-load\f[R]، \f[CR]cd\f[R] یا \f[CR]select\f[R] نگه می‌دارد. .SS mark\-remove (modal) (default \f[CR]\(dq\f[R]) حذف نشانک منتسب به کلید داده‌شده. .SS tag تگ‌گذاری یک فایل با علامت \f[CR]*\f[R] یا یک نویسه تک‌عرضی مشخص‌شده در آرگومان. می‌توانید با ترکیب \f[CR]tag\f[R] با \f[CR]tag\-toggle\f[R] دستور جدیدی برای پاک کردن تگ‌ها تعریف کنید (مانند \f[CR]cmd tag\-clear :tag; tag\-toggle\f[R]). .SS tag\-toggle (default \f[CR]t\f[R]) تگ‌گذاری یک فایل با \f[CR]*\f[R] یا نویسه داده‌شده در صورتی که فایل تگ نداشته باشد؛ در غیر این صورت تگ حذف می‌شود. .SS echo چاپ آرگومان‌های داده‌شده در خط پیام در پایین صفحه. .SS echomsg چاپ آرگومان‌های داده‌شده در خط پیام در پایین صفحه و همچنین ذخیره در فایل لاگ. .SS echoerr چاپ آرگومان‌های داده‌شده در خط پیام در پایین با فرمت \f[CR]errorfmt\f[R] و همچنین ثبت در فایل لاگ. .SS cd تغییر پوشه کاری به مسیر مشخص‌شده در آرگومان. .SS select تغییر انتخاب فایل جاری به مورد داده‌شده در آرگومان. .SS source خواندن و اعمال فایل پیکربندی مشخص‌شده در آرگومان. .SS push شبیه‌سازی فشردن کلیدهای داده‌شده در آرگومان. .SS addcustominfo به‌روزرسانی اطلاعات سفارشی (\f[CR]custom\f[R]) و فیلد \f[CR].Stat.CustomInfo\f[R] برای فایل داده‌شده با رشته مشخص‌شده. این رشته می‌تواند شامل کدهای فرار ANSI برای سفارشی‌سازی ظاهر متن باشد. اگر اطلاعاتی مشخص نشود، اطلاعات سفارشی فایل پاک خواهد شد. .SS calcdirsize محاسبه حجم کل برای تک‌تک پوشه‌های انتخاب‌شده. گزینه \f[CR]info\f[R] باید شامل \f[CR]size\f[R] بوده و گزینه \f[CR]dircounts\f[R] باید غیرفعال باشد تا این اندازه نمایش داده شود. اگر حجم کل یک پوشه محاسبه نشده باشد، با علامت \f[CR]\-\f[R] نشان داده می‌شود. .SS clearmaps حذف تمامی میانبرهای کلیدی منتسب به دستورات \f[CR]map\f[R]، \f[CR]nmap\f[R] و \f[CR]vmap\f[R]. این دستور را می‌توان در فایل پیکربندی برای حذف کلیدهای میانبر پیش‌فرض قرار داد. به دلایل امنیتی، کلید \f[CR]:\f[R] همچنان به دستور \f[CR]read\f[R] متصل می‌ماند و میانبرهای \f[CR]cmap\f[R] حفظ می‌شوند تا خروج از \f[CR]lf\f[R] با \f[CR]:quit\f[R] همواره امکان‌پذیر باشد. .SS tty\-write نوشتن رشته داده‌شده در tty. این دستور برای ارسال دنباله‌های فرار (escape sequences) به ترمینال جهت کنترل رفتار آن مفید است (مانند OSC 0 برای تنظیم عنوان پنجره). استفاده از \f[CR]tty\-write\f[R] به نوشتن مستقیم در \f[CR]/dev/tty\f[R] ارجحیت دارد؛ زیرا دومی همگام‌سازی‌نشده است و می‌تواند در رسم رابط کاربری تداخل ایجاد کند. .SS visual (default \f[CR]V\f[R]) جابجایی به حالت بصری (Visual mode). اگر هم‌اکنون در حالت بصری باشید، انتخاب بصری لغو شده و در همین حالت باقی می‌ماند. .SH "دستورات حالت بصری (VISUAL MODE COMMANDS)" .SS visual\-accept (default \f[CR]V\f[R]) افزودن انتخاب بصری به فهرست انتخاب‌ها، خروج از حالت بصری و بازگشت به حالت عادی. .SS visual\-unselect حذف انتخاب بصری از فهرست انتخاب‌ها، خروج از حالت بصری و بازگشت به حالت عادی. .SS visual\-discard (default \f[CR]\f[R]) لغو انتخاب بصری، خروج از حالت بصری و بازگشت به حالت عادی. .SS visual\-change (default \f[CR]o\f[R]) رفتن به انتهای دیگرِ محدوده انتخاب در حالت بصری جاری. .SH "دستورات حالت خط فرمان (COMMAND\-LINE MODE COMMANDS)" نویسه اعلان (prompt) مشخص می‌کند که در کدام‌یک از چندین حالت خط فرمان قرار دارید. برای مثال، دستور \f[CR]read\f[R] شما را به حالت \f[CR]:\f[R] می‌برد. .PP هنگامی که نشانگر روی نویسه اول در حالت \f[CR]:\f[R] قرار دارد، فشردن یکی از کلیدهای \f[CR]!\f[R]، \f[CR]$\f[R]، \f[CR]%\f[R] یا \f[CR]&\f[R] شما را به حالت مربوطه منتقل می‌کند. می‌توانید با دستور \f[CR]cmd\-delete\-back\f[R] (به طور پیش‌فرض \f[CR]\f[R]) به حالت قبلی بازگردید. .PP دستورات خط فرمان عمدتاً با کلیدهای میانبر readline سازگار هستند. منظور از یک نویسه، یک کدپوینت یونیکد است؛ یک کلمه شامل حروف و ارقام بوده و یک کلمه یونیکسی شامل هرگونه نویسه غیرخالی است. .SS cmd\-insert درج نویسه مشخص‌شده در آرگومان. این دستور در صورت نیاز به طور خودکار فراخوانی می‌شود. .SS cmd\-escape (default \f[CR]\f[R]) خروج از حالت خط فرمان و بازگشت به حالت عادی. .SS cmd\-complete (default \f[CR]\f[R]) تکمیل خودکار کلمه جاری. .SS cmd\-menu\-complete, cmd\-menu\-complete\-back تکمیل خودکار کلمه جاری از طریق منوی انتخاب. لازم است کلیدهایی برای این دستورات تعریف کنید (مانند \f[CR]cmap cmd\-menu\-complete; cmap cmd\-menu\-complete\-back\f[R]). می‌توانید از کلیدهای اختصاص‌یافته برای نمایش منو و سپس پیمایش میان گزینه‌های تکمیل استفاده کنید. .SS cmd\-menu\-accept تایید گزینه انتخاب‌شده فعلی در منوی تکمیل خودکار و بستن منو. .SS cmd\-menu\-discard لغو گزینه انتخاب‌شده فعلی در منوی تکمیل خودکار و بستن منو. .SS cmd\-enter (default \f[CR]\f[R] and \f[CR]\f[R]) اجرای خط جاری. .SS cmd\-interrupt (default \f[CR]\f[R]) قطع دستور شل جاری در حال پایپ و بازگشت به حالت عادی. .SS cmd\-history\-next (default \f[CR]\f[R] and \f[CR]\f[R]), cmd\-history\-prev (default \f[CR]\f[R] and \f[CR]\f[R]) رفتن به مدخل بعدی یا قبلی در تاریخچه دستورات. چنانچه بخشی از دستور تایپ شده باشد، تنها موارد منطبق در نظر گرفته می‌شوند و موارد تکراری متوالی رد خواهند شد. .SS cmd\-left (default \f[CR]\f[R] and \f[CR]\f[R]), cmd\-right (default \f[CR]\f[R] and \f[CR]\f[R]) حرکت نشانگر به سمت چپ یا راست. .SS cmd\-home (default \f[CR]\f[R] and \f[CR]\f[R]), cmd\-end (default \f[CR]\f[R] and \f[CR]\f[R]) انتقال نشانگر به ابتدا یا انتهای خط. .SS cmd\-delete (default \f[CR]\f[R] and \f[CR]\f[R]) حذف نویسه بعدی. .SS cmd\-delete\-back (default \f[CR]\f[R]) حذف نویسه قبلی. در ابتدای اعلان، برنامه به حالت عادی یا حالت \f[CR]:\f[R] بازمی‌گردد. .SS cmd\-delete\-home (default \f[CR]\f[R]), cmd\-delete\-end (default \f[CR]\f[R]) حذف تمام متن تا ابتدا یا انتهای خط. .SS cmd\-delete\-unix\-word (default \f[CR]\f[R]) حذف کلمه یونیکسی قبلی. .SS cmd\-yank (default \f[CR]\f[R]) چسباندن (paste) محتوای بافر حاوی آخرین مورد حذف‌شده. .SS cmd\-transpose (default \f[CR]\f[R]) جابجا کردن نویسه‌های قبل و بعد از نشانگر و حرکت نشانگر به جلو. اگر نویسه‌ای پس از نشانگر نباشد، دو نویسه قبلی جابجا می‌شوند. .SS cmd\-transpose\-word (default \f[CR]\f[R]) جابجا کردن کلمات قبل و بعد از نشانگر و حرکت نشانگر به جلو. اگر کلمه‌ای پس از نشانگر نباشد، دو کلمه قبلی جابجا می‌شوند. .SS cmd\-word (default \f[CR]\f[R]), cmd\-word\-back (default \f[CR]\f[R]) حرکت نشانگر به اندازه یک کلمه به جلو یا عقب. .SS cmd\-delete\-word (default \f[CR]\f[R]) حذف کلمه بعدی در جهت جلو. .SS cmd\-delete\-word\-back (default \f[CR]\f[R]) حذف کلمه قبلی در جهت عقب. .SS cmd\-capitalize\-word (default \f[CR]\f[R]), cmd\-uppercase\-word (default \f[CR]\f[R]), cmd\-lowercase\-word (default \f[CR]\f[R]) تبدیل حرف اول به بزرگ / تبدیل کل کلمه به حروف بزرگ / تبدیل به حروف کوچک برای کلمه جاری و پرش به کلمه بعدی. .SH "تنظیمات (SETTINGS)" این بخش اطلاعات مربوط به گزینه‌های سفارشی‌سازی رفتار برنامه را ارائه می‌دهد. نویسه \f[CR]:\f[R] به عنوان جداکننده در گزینه‌های فهرستی از نوع \f[CR][]int\f[R] و \f[CR][]string\f[R] به کار می‌رود. .SS anchorfind (bool) (default true) هنگامی که این گزینه فعال باشد، دستور find الگوها را از ابتدای نام فایل‌ها تطبیق می‌دهد؛ در غیر این صورت، تطبیق می‌تواند از هر جای نام فایل انجام شود. .SS autoquit (bool) (default true) خروج خودکار از سرور هنگامی که هیچ کلاینتی متصل نمانده باشد. .SS borderfmt (string) (default \f[CR]\(rs033[0m\f[R]) رشته قالب‌بندی نویسه‌های کادر و حاشیه. .SS borderstyle (string) (default \f[CR]box\f[R]) سبک حاشیه‌بندی مورد استفاده توسط \f[CR]drawbox\f[R]. .PP سبک‌های زیر پشتیبانی می‌شوند: .IP .EX box کادر دور تمام پنجره‌ها و جداکننده بین آن‌ها roundbox مشابه box اما با گوشه‌های گرد بیرونی outline کادر دور تمام پنجره‌ها roundoutline مشابه outline با گوشه‌های گرد بیرونی separators تنها خطوط جداکننده بین پنجره‌ها .EE .SS cleaner (string) (default \(ga\(ga) (not called if empty) تنظیم مسیر فایل پاک‌کننده پیش‌نمایش (cleaner). این فایل باید دسترسی اجرایی داشته باشد. در صورتی که پیش‌نمایش فعال باشد، اسکریپت previewer تنظیم شده باشد، و حافظه موقت فایل انتخابی قبلی غیرفعال شده باشد، این فایل اجرا خواهد شد. آرگومان‌های زیر به ترتیب به فایل ارسال می‌شوند: (1) نام فایل جاری، (2) عرض، (3) ارتفاع، (4) موقعیت افقی، (5) موقعیت عمودی پنجره پیش‌نمایش و (6) نام فایل بعدی که باید پیش‌نمایش شود. در صورتی که این گزینه خالی رها شود، پاک‌سازی پیش‌نمایش غیرفعال خواهد بود. .SS copyfmt (string) (default \f[CR]\(rs033[7;33m\f[R]) رشته قالب‌بندی نشانگر فایل‌های آماده برای کپی. .SS cursoractivefmt (string) (default \f[CR]\(rs033[7m\f[R]), cursorparentfmt (string) (default \f[CR]\(rs033[7m\f[R]), cursorpreviewfmt (string) (default \f[CR]\(rs033[4m\f[R]) رشته‌های قالب‌بندی برای برجسته‌سازی نشانگر. \f[CR]cursoractivefmt\f[R] در پنجره پوشه جاری، \f[CR]cursorparentfmt\f[R] در پنجره‌های والد، و \f[CR]cursorpreviewfmt\f[R] در پنجره‌های پیش‌نمایش پوشه‌ها اعمال می‌شود. .PP حالت پیش‌فرض این است که نشانگر فعال و نشانگر پوشه والد به صورت رنگ معکوس (inverted) باشند. نشانگر پیش‌نمایش نیز زیرخط‌دار (underlined) نمایش داده می‌شود. .PP حالت‌های دیگری که می‌توان برای نشانگر والد یا پیش‌نمایش در نظر گرفت: یک رشته خالی برای عدم نمایش نشانگر، \f[CR]\(rs033[7;2m\f[R] برای متن کم‌نور با رنگ معکوس، و \f[CR]\(rs033[7;90m\f[R] برای متن معکوس با پس‌زمینه خاکستری. .PP اگر رشته قالب شامل نویسه‌های \f[CR]%s\f[R] باشد، به عنوان رشته قالب برای \f[CR]fmt.Sprintf\f[R] در نظر گرفته می‌شود. چنین رشته‌ای باید با دنباله بازنشانی ترمینال پایان یابد. برای مثال، \f[CR]\(rs033[4m%s\(rs033[0m\f[R] اثری مشابه با \f[CR]\(rs033[4m\f[R] خواهد داشت. .SS cutfmt (string) (default \f[CR]\(rs033[7;31m\f[R]) رشته قالب‌بندی نشانگر فایل‌های بریده‌شده (cut). .SS dircounts (bool) (default false) هنگامی که این گزینه فعال باشد، اندازه پوشه‌ها تعداد اقلام درون آن‌ها را به جای حجم کل نشان می‌دهد (که باید به ازای هر پوشه با \f[CR]calcdirsize\f[R] محاسبه شود). این اطلاعات از طریق خواندن پوشه و شمارش اقلام درون آن به دست می‌آید؛ بنابراین به دلایل کارایی و عملکرد به طور پیش‌فرض غیرفعال است. این گزینه تنها زمانی اثرگذار است که \f[CR]info\f[R] شامل فیلد \f[CR]size\f[R] باشد و عرض پنجره برای نمایش آن کافی باشد. حداکثر ۹۹۹۹ قلم در هر پوشه شمرده می‌شود و پوشه‌های بزرگتر به صورت \f[CR]9999+\f[R] نمایش می‌یابند. .SS dirfirst (bool) (default true) نمایش پوشه‌ها بالاتر از فایل‌های معمولی. با فعال بودن گزینه \f[CR]dircounts\f[R]، مرتب‌سازی بر اساس \f[CR]size\f[R] همواره بدون توجه به \f[CR]dirfirst\f[R]، پوشه‌ها و فایل‌ها را از هم تفکیک می‌کند. .SS dironly (bool) (default false) نمایش انحصاری پوشه‌ها و مخفی کردن فایل‌ها. .SS dirpreviews (bool) (default false) در صورت فعال بودن، پوشه‌ها نیز به اسکریپت پیش‌نمایش ارسال می‌شوند تا امکان ارائه پیش‌نمایش سفارشی برای پوشه‌ها فراهم شود. .SS drawbox (bool) (default false) رسم حاشیه و خطوط کادر دور پنجره‌ها با استفاده از نویسه‌های کادرسازی. .SS dupfilefmt (string) (default \f[CR]%f.\(ti%n\(ti\f[R]) رشته قالب‌بندی نام فایل هنگام ایجاد فایل‌های تکراری (duplicate). با قالب پیش‌فرض، کپی کردن فایل \f[CR]abc.txt\f[R] در همان پوشه منجر به ایجاد فایلی به نام \f[CR]abc.txt.\(ti1\(ti\f[R] خواهد شد. متغیرهای جانشین عبارتند از: \f[CR]%f\f[R] برای نام فایل، \f[CR]%b\f[R] برای نام پایه فایل (بدون پسوند)، \f[CR]%e\f[R] برای پسوند فایل (همراه با نقطه) و \f[CR]%n\f[R] برای شماره نسخه تکراری. .SS errorfmt (string) (default \f[CR]\(rs033[7;31;47m\f[R]) رشته قالب‌بندی پیام‌های خطا که در سطر پیام در پایین صفحه نشان داده می‌شوند. .PP اگر این رشته شامل نویسه‌های \f[CR]%s\f[R] باشد، به عنوان رشته قالب‌بندی \f[CR]fmt.Sprintf\f[R] تفسیر می‌شود و باید با دنباله ریست ترمینال پایان یابد. برای نمونه، \f[CR]\(rs033[4m%s\(rs033[0m\f[R] تاثیری مشابه با \f[CR]\(rs033[4m\f[R] دارد. .SS filesep (string) (default \f[CR]\(rsn\f[R]) جداکننده فایل‌های مورد استفاده در متغیرهای محیطی \f[CR]fs\f[R]، \f[CR]fv\f[R] و \f[CR]fx\f[R]. .SS filtermethod (string) (default \f[CR]text\f[R]) نحوه ارزیابی و تطبیق الگوهای فیلتر. روش‌های پشتیبانی‌شده فعلی عبارتند از \f[CR]text\f[R] (رشته متنی ساده)، \f[CR]glob\f[R] (الگوهای گلوب شل) و \f[CR]regex\f[R] (عبارات منظم). برای جزئیات بیشتر به بخش \f[CR]SEARCHING FILES\f[R] مراجعه کنید. .SS findlen (int) (default 1) تعداد نویسه‌های درخواستی در اعلان دستور find. چنانچه این مقدار روی صفر تنظیم شود، دستور find تا زمانی که تنها یک مورد منطبق باقی بماند، به دریافت ورودی ادامه می‌دهد. .SS hidden (bool) (default false) نمایش فایل‌های مخفی. در سیستم‌های یونیکس، فایل‌های مخفی بر مبنای مقدار \f[CR]hiddenfiles\f[R] تعیین می‌شوند. در ویندوز، فایل‌های دارای صفت مخفی (hidden) نیز به عنوان فایل مخفی محسوب می‌گردند. .SS hiddenfiles ([]string) (default \f[CR].*\f[R] for Unix and \(ga\(ga for Windows) فهرستی از الگوهای گلوب برای فایل‌های مخفی. الگوها می‌توانند به صورت مسیرهای نسبی یا مطلق تعیین شوند. از نویسه‌های ویژه مرسوم پشتیبانی می‌شود: \f[CR]*\f[R] برای تطبیق با هر دنباله‌ای، \f[CR]?\f[R] برای هر نویسه تک، و \f[CR][...]\f[R] یا \f[CR][\(ha...]\f[R] برای بازه‌ها و مجموعه‌های کاراکتری. به علاوه، اگر الگویی با \f[CR]!\f[R] آغاز شود، موارد منطبق با آن از تعریف فایل مخفی مستثنی خواهند شد. برای افزودن چندین الگو، از \f[CR]:\f[R] به عنوان جداکننده استفاده کنید. مثال: \f[CR].*:lost+found:*.bak\f[R] .SS history (bool) (default true) ذخیره تاریخچه دستورات خط فرمان. .SS icons (bool) (default false) نمایش آیکون پیش از نام هر قلم در فهرست. .SS ifs (string) (default \(ga\(ga) تنظیم متغیر محیطی \f[CR]IFS\f[R] در دستورات شل. این کار با افزودن مقدار به ابتدای رشته دستور به صورت \f[CR]IFS=...; ...\f[R] انجام می‌شود، چرا که متغیر \f[CR]IFS\f[R] به دلایل امنیتی توسط شل به ارث برده نمی‌شود. این روش مستلزم ساختار شل POSIX است و ممکن است در سایر شل‌ها با خطا مواجه شود. در صورت خالی بودن این گزینه یا در سیستم‌عامل ویندوز، تاثیری نخواهد داشت. .SS ignorecase (bool) (default true) نادیده گرفتن بزرگی و کوچکی حروف در الگوهای جستجو. گزینه \f[CR]sortignorecase\f[R] را نیز بررسی کنید. .SS ignoredia (bool) (default true) نادیده گرفتن اعراب و نشانه‌های صوتی (diacritics) در الگوهای جستجو. گزینه \f[CR]sortignoredia\f[R] را نیز ببینید. .SS incfilter (bool) (default false) اعمال الگوی فیلتر هم‌گام با فشردن هر کلید در طول فیلترسازی. .SS incsearch (bool) (default false) پرش به نخستین مورد منطبق هم‌زمان با فشردن هر کلید هنگام جستجو. .SS info ([]string) (default \(ga\(ga) فهرستی از اطلاعات که برای اقلام پوشه در سمت راست پنجره نمایش داده می‌شود. .PP انواع اطلاعات پشتیبانی‌شده عبارتند از: .IP .EX perm مجوزها و دسترسی‌های فایل user نام کاربر مالک group نام گروه مالک size حجم فایل time زمان آخرین ویرایش داده‌ها atime زمان آخرین دسترسی btime زمان ایجاد فایل ctime زمان آخرین تغییر وضعیت (inode) custom ویژگی سفارشی تعریف‌شده با addcustominfo .EE .PP اطلاعات تنها زمانی نمایش داده می‌شوند که عرض پنجره بیش از دو برابر عرض اطلاعات باشد. .SS infotimefmtnew (string) (default \f[CR]Jan _2 15:04\f[R]) رشته قالب‌بندی زمان فایل در ستون اطلاعات در صورتی که مربوط به سال جاری باشد. .SS infotimefmtold (string) (default \f[CR]Jan _2 2006\f[R]) رشته قالب‌بندی زمان فایل در ستون اطلاعات در صورتی که مربوط به سال‌های گذشته باشد. .SS menufmt (string) (default \f[CR]\(rs033[0m\f[R]) رشته قالب‌بندی منو. .SS menuheaderfmt (string) (default \f[CR]\(rs033[1m\f[R]) رشته قالب‌بندی سطر هدر در منو. .SS menuselectfmt (string) (default \f[CR]\(rs033[7m\f[R]) رشته قالب‌بندی قلم انتخاب‌شده فعلی در منو. .SS mergeindicators (bool) (default false) با فعال بودن \f[CR]mergeindicators\f[R]، نشانگرهای تگ و انتخاب در یک ستون واحد رسم می‌شوند تا فضای خالی قبل از نام فایل‌ها کاسته شود. اگر فایلی هم تگ شده و هم انتخاب شده باشد، نشانگر به جای \f[CR]tagfmt\f[R] از فرمت انتخاب (مانند \f[CR]copyfmt\f[R]) استفاده خواهد کرد. .SS mouse (bool) (default false) ارسال رویدادهای ماوس به عنوان ورودی به برنامه. .SS number (bool) (default false) نمایش شماره ردیف برای اقلام پوشه در سمت چپ پنجره. هنگامی که گزینه \f[CR]relativenumber\f[R] فعال باشد، تنها سطر جاری موقعیت مطلق را نشان می‌دهد و برای سایر سطرها موقعیت نسبی نمایش داده می‌شود. .SS numberfmt (string) (default \f[CR]\(rs033[33m\f[R]), numbercursorfmt (string) (default \(ga\(ga) رشته‌های قالب‌بندی برای رنگ‌آمیزی شماره سطرها. \f[CR]numberfmt\f[R] برای تمام خطوط اعمال می‌شود. \f[CR]numbercursorfmt\f[R] برای خط دارای نشانگر اعمال شده و در صورت خالی ماندن به \f[CR]numberfmt\f[R] بازمی‌گردد. .SS period (int) (default 0) تنظیم فاصله زمانی به ثانیه برای بررسی دوره‌ای به‌روزرسانی‌های پوشه. این کار با فراخوانی دوره‌ای دستور \f[CR]load\f[R] صورت می‌پذیرد. توجه داشته باشید که پوشه‌ها در بسیاری از شرایط از قبل به صورت خودکار به‌روزرسانی می‌شوند. این گزینه زمانی سودمند است که فرآیندی خارجی پوشه در حال نمایش را تغییر می‌دهد و شما فعالیتی درون lf ندارید. با تنظیم این مقدار روی صفر، بررسی‌های دوره‌ای غیرفعال می‌گردد. .SS preload (bool) (default false) امکان تولید پیشاپیش پیش‌نمایش‌ها با اسکریپت \f[CR]previewer\f[R] هم‌زمان با پیمایش سیستم‌فایل توسط کاربر. .SS preserve ([]string) (default \f[CR]mode\f[R]) فهرست صفت‌هایی که در هنگام کپی کردن فایل‌ها حفظ می‌شوند. صفت‌های پشتیبانی‌شده فعلی عبارتند از \f[CR]mode\f[R] (حالت دسترسی) و \f[CR]timestamps\f[R] (زمان اصلاح و دسترسی). توجه داشته باشید که حفظ صفت‌های دیگر مانند مالکیت یا زمان ایجاد فایل گرچه مطلوب است، اما به صورت چندسکویی در زبان Go پشتیبانی نمی‌شود. .SS preview (bool) (default true) نمایش پیش‌نمایش فایل‌ها و پوشه‌ها در راست‌ترین پنجره برنامه. اگر فایل سطرهای بیشتری نسبت به پنجره پیش‌نمایش داشته باشد، بقیه سطرها خوانده نمی‌شوند. فایل‌ها در صورتی باینری محسوب شده و با برچسب \f[CR]binary\f[R] نمایش داده می‌شوند که بخش خوانده‌شده شامل نویسه‌های کنترلی (به جز بوق، بک‌اسپیس، تب، خط جدید، تب عمودی، فرم‌فید، کارتریج‌ریترن، اسکیپ یا دلیت) باشد. .SS previewer (string) (default \(ga\(ga) (not filtered if empty) تنظیم مسیر فایل پیش‌نمایش‌گر (previewer) برای فیلتر کردن محتوای فایل‌های معمولی جهت پیش‌نمایش. این فایل باید قابل اجرا باشد. آرگومان‌های زیر به ترتیب به فایل ارسال می‌شوند: (1) نام فایل جاری، (2) عرض، (3) ارتفاع، (4) موقعیت افقی، (5) موقعیت عمودی، و (6) حالت اجرای پیش‌نمایش (\(dqpreview\(dq یا \(dqpreload\(dq). سیگنال SIGPIPE پس از خواندن سطرهای کافی ارسال می‌گردد. اگر اسکریپت پیش‌نمایش‌گر کد خروجی غیرصفر برگرداند، حافظه کش پیش‌نمایش برای آن فایل غیرفعال می‌شود؛ بدین معنا که اگر فایل در آینده دوباره انتخاب شود، اسکریپت یک بار دیگر فراخوانی خواهد شد. در صورت خالی بودن این گزینه، فیلتر پیش‌نمایش غیرفعال شده و فایل‌ها همان‌گونه که هستند نمایش داده می‌شوند. چنانچه گزینه \f[CR]preload\f[R] فعال باشد، این اسکریپت با حالت \f[CR]preload\f[R] برای پیش‌بارگذاری فراخوانی خواهد شد. برای اطلاعات بیشتر در خصوص نحوه پیکربندی پیش‌نمایش‌های سفارشی به بخش \c .UR https://github.com/gokcehan/lf/blob/master/doc.md#previewing-files PREVIEWING FILES .UE \c \ مراجعه کنید. .SS promptfmt (string) (default \f[CR]\(rs033[32;1m%u\(at%h\(rs033[0m:\(rs033[34;1m%d\(rs033[0m\(rs033[1m%f\(rs033[0m\f[R]) رشته قالب‌بندی اعلان (prompt) در سطر بالایی. .PP بسط‌های ویژه زیر پشتیبانی می‌شوند: .IP .EX %f نام فایل %h نام میزبان (hostname) %u نام کاربری %w پوشه کاری جاری %d پوشه کاری جاری (همراه با ممیز پایانی) %F فیلتر جاری %S فاصله‌گذار برای راست‌چین کردن بخش‌های بعدی (تنها یک بار قابل استفاده است) .EE .PP پوشه خانگی در بسط پوشه کاری به صورت \f[CR]\(ti\f[R] نمایش داده می‌شود. هنگامی که اعلان در صفحه جا نشود، نام پوشه‌ها به صورت خودکار از سمت چپ‌ترین والد به یک نویسه خلاصه می‌شوند. .SS ratios ([]int) (default \f[CR]1:2:3\f[R]) فهرست نسبت‌های عرض پنجره‌ها. تعداد آیتم‌های این فهرست، تعداد پنجره‌های نمایش‌داده‌شده در رابط کاربری را تعیین می‌کند. هنگامی که گزینه \f[CR]preview\f[R] فعال باشد، عدد سمت راست برای عرض پنجره پیش‌نمایش به کار می‌رود. .SS relativenumber (bool) (default false) نمایش شماره موقعیت به صورت نسبی نسبت به سطر جاری. هنگامی که گزینه \f[CR]number\f[R] فعال باشد، سطر جاری شماره موقعیت مطلق را نشان داده و برای بقیه موقعیت نسبی نمایش داده می‌شود. .SS reverse (bool) (default false) معکوس کردن جهت مرتب‌سازی. .SS rulerfile (string) (default \(ga\(ga) تعیین مسیر فایل خط‌کش (ruler). در صورت تعیین نشدن، از الگوی پیش‌فرض برای خط‌کش استفاده خواهد شد. برای اطلاعات بیشتر در خصوص نحوه کارکرد این فایل به بخش \c .UR https://github.com/gokcehan/lf/blob/master/doc.md#ruler RULER .UE \c \ مراجعه کنید. .SS rulerfmt (string) (default \(ga\(ga) رشته قالب‌بندی خط‌کش نمایش‌داده‌شده در گوشه پایین سمت راست. در صورت تنظیم، به همراه \f[CR]statfmt\f[R] برای رسم خط‌کش استفاده شده و \f[CR]rulerfile\f[R] نادیده گرفته می‌شود. با این وجود، استفاده از \f[CR]rulerfile\f[R] ارجح است و این گزینه برای سازگاری با نسخه‌های پیشین حفظ شده است. .PP بسط‌های ویژه زیر پشتیبانی می‌شوند: .IP .EX %a کلیدهای فشرده‌شده %p پیشرفت عملیات‌های فایل %m تعداد فایل‌های در حال انتقال (cut) %c تعداد فایل‌های در حال کپی %s تعداد فایل‌های انتخاب‌شده %v تعداد فایل‌های انتخاب‌شده در حالت بصری %t تعداد کل فایل‌های نمایش‌یافته در پوشه جاری %h تعداد فایل‌های مخفی در پوشه جاری %f فیلتر جاری %i موقعیت نشانگر %P درصد پیمایش صفحه %d میزان فضای خالی دیسک .EE .PP بسط‌های بیشتری برای متغیرهای محیطی صادرشده توسط lf به شکل \f[CR]%{lf_}\f[R] (مانند \f[CR]%{lf_selmode}\f[R]) در دسترس است که برای نمایش تنظیمات فعلی کاربرد دارد. همچنین بسط‌هایی برای گزینه‌های سفارشی کاربر به فرم \f[CR]%{lf_user_}\f[R] (مانند \f[CR]%{lf_user_foo}\f[R]) ارائه شده است. نویسه \f[CR]|\f[R] رشته قالب را به بخش‌های مجزا تقسیم می‌کند؛ هر بخشی که بسط ناموفق داشته باشد (نتیجه رشته خالی باشد) حذف شده و نشان داده نمی‌شود. .SS scrolloff (int) (default 0) حداقل تعداد سطرهای حاشیه (offset) که هنگام پیمایش، همواره در بالا و پایین صفحه نگه داشته می‌شوند. در صورتی که این گزینه روی عددی بزرگتر از نصف خطوط تنظیم شود، سطر جاری همیشه در وسط صفحه می‌ماند. .SS searchmethod (string) (default \f[CR]text\f[R]) نحوه ارزیابی الگوهای جستجو. روش‌های پشتیبانی‌شده عبارتند از \f[CR]text\f[R] (متن ساده)، \f[CR]glob\f[R] (الگوهای گلوب شل) و \f[CR]regex\f[R] (عبارات منظم). برای جزئیات بیشتر به بخش \f[CR]SEARCHING FILES\f[R] مراجعه فرمایید. .SS selectfmt (string) (default \f[CR]\(rs033[7;35m\f[R]) رشته قالب‌بندی نشانگر فایل‌های انتخاب‌شده. .SS selmode (string) (default \f[CR]all\f[R]) حالت انتخاب برای دستورات. با تنظیم روی \f[CR]all\f[R]، از فایل‌های انتخاب‌شده در تمامی پوشه‌ها استفاده می‌شود. با تنظیم روی \f[CR]dir\f[R]، فقط فایل‌های انتخاب‌شده در پوشه جاری لحاظ می‌گردند. .SS shell (string) (default \f[CR]sh\f[R] for Unix and \f[CR]cmd\f[R] for Windows) فایل اجرایی شل برای اجرای دستورات شل. دستورات شل به صورت زیر اجرا می‌شوند: \f[CR]shell shellopts shellflag command \-\- arguments\f[R]. .SS shellflag (string) (default \f[CR]\-c\f[R] for Unix and \f[CR]/c\f[R] for Windows) فلگ خط فرمان شل برای ارسال دستورات. .SS shellopts ([]string) (default \(ga\(ga) فهرستی از گزینه‌های شل برای ارسال به فایل اجرایی شل. .SS showbinds (bool) (default true) نمایش کلیدهای متصل‌شده مرتبط با کلیدهای فشرده‌شده. .SS sizeunits (string) (default \f[CR]binary\f[R]) تعیین نمایش اندازه فایل‌ها با واحدهای باینری (\f[CR]1K\f[R] معادل ۱۰۲۴ بایت) یا واحدهای ده‌دهی (\f[CR]1K\f[R] معادل ۱۰۰۰ بایت). .SS smartcase (bool) (default true) نادیده گرفتن گزینه \f[CR]ignorecase\f[R] در جستجو هنگام وجود حداقل یک حرف بزرگ انگلیسی در الگو. این گزینه در صورت غیرفعال بودن \f[CR]ignorecase\f[R] تاثیری ندارد. .SS smartdia (bool) (default false) نادیده گرفتن گزینه \f[CR]ignoredia\f[R] هنگام وجود اعراب یا نشانه صوتی در الگو. در صورت غیرفعال بودن \f[CR]ignoredia\f[R] تاثیری ندارد. .SS sortby (string) (default \f[CR]natural\f[R]) نوع مرتب‌سازی پوشه‌ها. .PP انواع مرتب‌سازی زیر پشتیبانی می‌شوند: .IP .EX natural نام فایل به شیوه طبیعی (مثلاً track_2 قبل از track_10 قرار می‌گیرد) name نام فایل به شیوه الفبایی (track_10 قبل از track_2 قرار می‌گیرد) ext پسوند فایل size اندازه فایل time زمان آخرین ویرایش محتوا atime زمان آخرین دسترسی btime زمان ایجاد فایل ctime زمان آخرین تغییر وضعیت اینود (inode) custom ویژگی سفارشی تعریف‌شده با addcustominfo .EE .SS sortignorecase (bool) (default true) نادیده گرفتن بزرگی و کوچکی حروف در مرتب‌سازی. گزینه \f[CR]ignorecase\f[R] را نیز بررسی کنید. .SS sortignoredia (bool) (default true) نادیده گرفتن اعراب و نشانه‌های صوتی در مرتب‌سازی. گزینه \f[CR]ignoredia\f[R] را نیز بررسی کنید. .SS statfmt (string) (default \f[CR]\(rs033[36m%p\(rs033[0m| %c| %u| %g| %S| %t| \-> %l\f[R]) رشته قالب‌بندی اطلاعات فایل در گوشه پایین سمت چپ. این گزینه تنها زمانی عمل می‌کند که \f[CR]rulerfmt\f[R] نیز تنظیم شده باشد. استفاده از \f[CR]rulerfile\f[R] توصیه می‌شود و این گزینه برای سازگاری عقب‌رو تعبیه شده است. .PP بسط‌های ویژه زیر پشتیبانی می‌شوند: .IP .EX %p مجوزهای فایل %c تعداد پیوندها (link count) %u نام کاربر %g نام گروه %s اندازه فایل %S اندازه فایل (تراز شده از چپ با فاصله تا ۵ نویسه) %t زمان آخرین ویرایش محتوا %l مقصد پیوند نمادین %m حالت فعلی %M حالت فعلی (نمایش NORMAL به جای رشته خالی در حالت عادی) .EE .PP نویسه \f[CR]|\f[R] رشته قالب را به بخش‌های مجزا تقسیم می‌کند؛ هر بخشی که بسط ناموفق داشته باشد نمایش داده نمی‌شود. .SS tabstop (int) (default 8) تعداد نویسه‌های فاصله برای نمایش نویسه تب افقی (U+0009). .SS tagfmt (string) (default \f[CR]\(rs033[31m\f[R]) رشته قالب‌بندی تگ‌ها. .PP اگر این رشته شامل نویسه‌های \f[CR]%s\f[R] باشد، به عنوان رشته قالب \f[CR]fmt.Sprintf\f[R] تفسیر شده و باید با دنباله ریست ترمینال خاتمه یابد. .SS tempmarks (string) (default \(ga\(ga) نشانک‌هایی که موقت در نظر گرفته می‌شوند (مانند \f[CR]abc\f[R] که به نشانک‌های \f[CR]a\f[R]، \f[CR]b\f[R] و \f[CR]c\f[R] اشاره دارد). این نشانک‌ها با سایر کلاینت‌ها همگام‌سازی نشده و در فایل نشانک‌ها ذخیره نمی‌شوند. نشانک ویژه \f[CR]\(aq\f[R] همواره موقت در نظر گرفته می‌شود. .SS terminalcursor (string) (default \f[CR]default\f[R]) تعیین ظاهر نشانگر ترمینال برای اعلان‌ها در سطر پایین. مقادیر پشتیبانی‌شده عبارتند از: \f[CR]default\f[R]، \f[CR]block\f[R]، \f[CR]underline\f[R]، \f[CR]bar\f[R]، \f[CR]blinkblock\f[R]، \f[CR]blinkunderline\f[R] و \f[CR]blinkbar\f[R]. .SS timefmt (string) (default \f[CR]Mon Jan _2 15:04:05 2006\f[R]) رشته قالب‌بندی زمان ویرایش فایل که در سطر پایین نشان داده می‌شود. .SS truncatechar (string) (default \f[CR]\(ti\f[R]) نویسه کوتاه‌سازی که در صورت جا نشدن نام فایل در پنجره، نمایش داده می‌شود. .SS truncatepct (int) (default 100) هنگامی که نام یک فایل برای نمایش کامل بسیار طولانی باشد، فضای در دسترس به دو بخش تقسیم می‌شود. \f[CR]truncatepct\f[R] یک درصد بین ۰ تا ۱۰۰ است که اندازه بخش اول (ابتدای نام فایل) را مشخص می‌کند. بخش دوم بقیه فضا را در انتهای نام فایل اشغال می‌کند. دو بخش با نویسه کوتاه‌سازی (\f[CR]truncatechar\f[R]) جدا می‌شوند. کوتاه‌سازی روی پسوند فایل اعمال نمی‌شود. .PP به عنوان مثال، برای نام فایل \f[CR]very_long_filename.txt\f[R]: .IP \(bu 2 \f[CR]set truncatepct 100\f[R] \-> \f[CR]very_long_filena\(ti.txt\f[R] (پیش‌فرض) .IP \(bu 2 \f[CR]set truncatepct 50\f[R] \-> \f[CR]very_lon\(tifilename.txt\f[R] .IP \(bu 2 \f[CR]set truncatepct 0\f[R] \-> \f[CR]\(tiry_long_filename.txt\f[R] .SS visualfmt (string) (default \f[CR]\(rs033[7;36m\f[R]) رشته قالب‌بندی نشانگر فایل‌هایی که در حالت بصری انتخاب شده‌اند. .SS waitmsg (string) (default \f[CR]Press any key to continue\f[R]) رشته‌ای که پس از اجرای دستورات از نوع shell\-wait نمایش داده می‌شود. .SS watch (bool) (default false) پایش تغییرات سیستم‌فایل با استفاده از \f[CR]fsnotify\f[R] جهت به‌روزرسانی خودکار اطلاعات فایل‌ها. سامانه‌های FUSE در حال حاضر پشتیبانی نمی‌شوند. .SS wrapscan (bool) (default true) امکان گردش مجدد جستجو به ابتدای فهرست فایل‌ها پس از رسیدن به انتها. .SS wrapscroll (bool) (default false) امکان گردش مجدد پیمایش صفحه (scroll) به ابتدای فهرست پس از رسیدن به انتها. .SS user_{option} (string) (default none) هر گزینه‌ای با پیشوند \f[CR]user_\f[R] یک گزینه تعریف‌شده توسط کاربر است و می‌تواند به هر رشته‌ای تنظیم شود. درون یک دستور سفارشی کاربر، مقدار آن در متغیر محیطی \f[CR]lf_user_{option}\f[R] در دسترس خواهد بود. این گزینه‌ها توسط lf پردازش نشده و ماندگار نیستند. .SH "متغیرهای محیطی (ENVIRONMENT VARIABLES)" متغیرهای زیر برای دستورات شل صادر می‌شوند: این متغیرها در شل‌های سازگار با استاندارد POSIX با پیشوند \f[CR]$\f[R] (مانند \f[CR]$f\f[R])، در خط فرمان cmd ویندوز میان نویسه‌های \f[CR]%\f[R] (مانند \f[CR]%f%\f[R])، و در PowerShell ویندوز با پیشوند \f[CR]$env:\f[R] (مانند \f[CR]$env:f\f[R]) فراخوانی می‌شوند. .SS f مسیر کامل فایل جاری انتخاب‌شده. .SS fs فایل(های) انتخاب‌شده که با مقدار گزینه \f[CR]filesep\f[R] از یکدیگر جدا شده‌اند به صورت مسیرهای کامل. .SS fv فایل(های) انتخاب‌شده در حالت بصری که با مقدار گزینه \f[CR]filesep\f[R] جدا شده‌اند به صورت مسیرهای کامل. .SS fx فایل(های) انتخاب‌شده (\f[CR]fs\f[R]، نه \f[CR]fv\f[R]) در صورتی که فایلی انتخاب شده باشد؛ در غیر این صورت فایل جاری (\f[CR]f\f[R]). .SS id شناسه عددی کلاینت در حال اجرا. .SS PWD پوشه کاری جاری. .SS OLDPWD پوشه کاری اولیه. .SS LF_LEVEL هنگامی که lf را از درون شلی اجرا کنید که خود از داخل lf باز شده است، مقدار این متغیر سطح تودرتویی شل را نشان می‌دهد. می‌توانید مقدار این متغیر را به اعلان (prompt) شل خود اضافه کنید تا مشخص باشد شل شما درون lf اجرا شده است. به عنوان نمونه، در شل‌های POSIX می‌توانید دستور زیر را در فایل پیکربندی شل خود (مانند \f[CR]\(ti/.bashrc\f[R]) قرار دهید: \f[CR][ \-n \(dq$LF_LEVEL\(dq ] && PS1=\(dq$PS1\(dq\(dq(lf level: $LF_LEVEL) \(dq\f[R] .SS OPENER اگر این متغیر در محیط سیستم تنظیم شده باشد، از مقدار آن استفاده می‌شود. در غیر این صورت، در ویندوز برابر \f[CR]start\f[R]، در مک‌اواس برابر \f[CR]open\f[R] و در سایر سیستم‌ها برابر \f[CR]xdg\-open\f[R] خواهد بود. .SS EDITOR اگر متغیر VISUAL در محیط تنظیم شده باشد، از آن استفاده می‌شود؛ در غیر این صورت از مقدار متغیر EDITOR استفاده خواهد شد. اگر هیچ‌یک تنظیم نشده باشند، در یونیکس \f[CR]vi\f[R] و در ویندوز \f[CR]notepad\f[R] خواهد بود. .SS PAGER اگر این متغیر در محیط تنظیم شده باشد، همان به کار می‌رود؛ در غیر این صورت در یونیکس برابر \f[CR]less\f[R] و در ویندوز برابر \f[CR]more\f[R] خواهد بود. .SS SHELL اگر در محیط تنظیم شده باشد، همان مقدار به کار می‌رود؛ در غیر این صورت در یونیکس برابر \f[CR]sh\f[R] و در ویندوز برابر \f[CR]cmd\f[R] است. .SS lf مسیر مطلق به باینری lf در حال اجرا در صورتی که پیدا شود؛ در غیر این صورت، رشته متنی \f[CR]lf\f[R]. .SS lf_{option} مقدار گزینه {option}. .SS lf_user_{option} مقدار گزینه سفارشی user_{option}. .SS lf_flag_{flag} مقدار فلگ خط فرمان {flag}. .SS lf_width, lf_height عرض و ارتفاع ترمینال. .SS lf_count مقدار شمارنده منتسب به دستور جاری. .SS lf_mode حالت فعلی که \f[CR]lf\f[R] در آن کار می‌کند. این متغیر برای سفارشی‌سازی میانبرها بر اساس حالت جاری مفید است. مقادیر ممکن عبارتند از: \f[CR]compmenu\f[R]، \f[CR]delete\f[R]، \f[CR]rename\f[R]، \f[CR]filter\f[R]، \f[CR]find\f[R]، \f[CR]mark\f[R]، \f[CR]search\f[R]، \f[CR]command\f[R]، \f[CR]shell\f[R]، \f[CR]pipe\f[R] (هنگام اجرای دستور shell\-pipe)، \f[CR]normal\f[R]، \f[CR]visual\f[R] و \f[CR]unknown\f[R]. .SH "دستورات ویژه (SPECIAL COMMANDS)" این بخش اطلاعات مربوط به دستورات شل ویژه را ارائه می‌دهد. .SS open این دستور شل می‌تواند تعریف شود تا رفتار پیش‌فرض دستور \f[CR]open\f[R] را زمانی که فایل انتخابی یک پوشه نیست تغییر دهد. .SS paste این دستور شل می‌تواند برای بازنویسی رفتار پیش‌فرض دستور \f[CR]paste\f[R] تعریف شود. .SS rename این دستور شل می‌تواند برای تغییر رفتار پیش‌فرض دستور \f[CR]rename\f[R] تعریف شود. .SS delete این دستور شل می‌تواند برای جایگزینی رفتار پیش‌فرض دستور \f[CR]delete\f[R] تعریف گردد. .SS pre\-cd این دستور شل می‌تواند به گونه‌ای تعریف شود که قبل از تغییر دایرکتوری اجرا گردد. .SS on\-cd این دستور شل می‌تواند به نحوی تعریف شود که پس از تغییر دایرکتوری اجرا گردد. .SS on\-load این دستور شل می‌تواند به شکلی تعریف شود که پس از بارگذاری یک پوشه اجرا شود. این دستور فایل‌های درون پوشه را به عنوان آرگومان دریافت می‌کند. .SS on\-focus\-gained این دستور شل می‌تواند برای اجرا در زمان فوکوس گرفتن ترمینال تعریف شود. .SS on\-focus\-lost این دستور شل می‌تواند برای اجرا هنگام از دست رفتن فوکوس ترمینال تعریف شود. .SS on\-init این دستور شل می‌تواند برای اجرا پس از مقداردهی اولیه و اتصال به سرور تعیین شود. .SS on\-select این دستور شل می‌تواند برای اجرا پس از هر بار تغییر فایل انتخابی تعریف شود. .SS on\-redraw این دستور شل می‌تواند برای اجرا پس از بازطراحی صفحه نمایش یا تغییر اندازه ترمینال تعریف گردد. .SS on\-quit این دستور شل می‌تواند برای اجرا درست پیش از خروج از برنامه تعریف شود. .SH "پیشوندها (PREFIXES)" پیشوندهای دستوری زیر توسط lf به کار می‌روند: .IP .EX : read (default) دستور توکار یا سفارشی $ shell دستور شل % shell\-pipe دستور شل در حال اجرا به همراه رابط کاربری ! shell\-wait دستور شل منتظر فشردن یک کلید & shell\-async دستور شل ناهمگام در پس‌زمینه .EE .PP برای خواندن دستورات شل در خط فرمان و در فایل پیکربندی از یک ارزیاب یکسان استفاده می‌شود. تفاوت در این است که پیشوندها در خط فرمان الزامی نیستند؛ به جای آن، حالت‌های متفاوتی برای دریافت دستورات متناظر تعبیه شده است. این حالت‌ها به صورت پیش‌فرض به کلیدهای پیشوند بالا نگاشت شده‌اند. نگاشت‌های حالت بصری نیز دقیقاً مشابه حالت عادی تعریف می‌گردند. .SH "سینتکس (SYNTAX)" نویسه‌ها از علامت \f[CR]#\f[R] تا انتهای سطر کامنت تلقی شده و نادیده گرفته می‌شوند: .IP .EX # کامنت‌ها با # شروع می‌شوند .EE .PP دستورات زیر (\f[CR]set\f[R]، \f[CR]setlocal\f[R]، \f[CR]map\f[R]، \f[CR]nmap\f[R]، \f[CR]vmap\f[R]، \f[CR]cmap\f[R] و \f[CR]cmd\f[R]) برای پیکربندی به کار می‌روند. .PP دستور \f[CR]set\f[R] برای تنظیم یک گزینه که می‌تواند بولی، عدد صحیح یا رشته باشد استفاده می‌شود: .IP .EX set hidden # فعال‌سازی بولی set hidden true # فعال‌سازی بولی set nohidden # غیرفعال‌سازی بولی set hidden false # غیرفعال‌سازی بولی set hidden! # تغییر وضعیت بولی (toggle) set scrolloff 10 # مقدار عددی صحیح set sortby time # مقدار رشته‌ای بدون نقل‌قول set sortby \(aqtime\(aq # مقدار رشته‌ای با نقل‌قول تکی (فاصله‌دار) set sortby \(dqtime\(dq # مقدار رشته‌ای با نقل‌قول دوتایی (کاراکترهای اسکیپ) .EE .PP دستور \f[CR]setlocal\f[R] برای تنظیم یک گزینه محلی برای یک پوشه خاص استفاده می‌شود که می‌تواند بولی یا رشته باشد. گزینه‌های محلی پشتیبانی‌شده فعلی عبارتند از: \f[CR]dircounts\f[R]، \f[CR]dirfirst\f[R]، \f[CR]dironly\f[R]، \f[CR]hidden\f[R]، \f[CR]info\f[R]، \f[CR]reverse\f[R]، \f[CR]sortby\f[R]، \f[CR]sortignorecase\f[R] و \f[CR]sortignoredia\f[R]. .IP .EX setlocal /foo/bar hidden # فعال‌سازی بولی setlocal /foo/bar hidden true # فعال‌سازی بولی setlocal /foo/bar nohidden # غیرفعال‌سازی بولی setlocal /foo/bar hidden false # غیرفعال‌سازی بولی setlocal /foo/bar hidden! # تغییر وضعیت بولی setlocal /foo/bar sortby time # مقدار رشته‌ای setlocal /foo/bar sortby \(aqtime\(aq # مقدار رشته‌ای setlocal /foo/bar sortby \(dqtime\(dq # مقدار رشته‌ای .EE .PP دستور \f[CR]map\f[R] برای متصل کردن یک کلید در حالت‌های عادی و بصری به یک دستور توکار، سفارشی یا شل استفاده می‌شود: .IP .EX map gh cd \(ti # دستور توکار map D trash # دستور سفارشی map i $less $f # دستور شل map U !du \-csh * # دستور شل منتظر کلید .EE .PP دستور \f[CR]nmap\f[R] عملکرد مشابهی دارد اما فقط برای حالت عادی (Normal mode). .PP دستور \f[CR]vmap\f[R] عملکرد مشابهی دارد اما فقط برای حالت بصری (Visual mode). .PP نمای کلی از کارکرد دستورات map در حالت‌های مختلف: .IP .EX map عادی و بصری (Normal, Visual) nmap تنها عادی (Normal) vmap تنها بصری (Visual) cmap خط فرمان (Command\-line) .EE .PP دستور \f[CR]cmap\f[R] برای متصل کردن یک کلید در خط فرمان به دستورات خط فرمان یا هر دستور دیگری به کار می‌رود: .IP .EX cmap cmd\-escape cmap set incsearch! .EE .PP می‌توانید با خالی گذاشتن عبارت، اتصال یک کلید را حذف کنید: .IP .EX map gh # حذف میانبر gh در حالت عادی و بصری nmap v # حذف میانبر v در حالت عادی vmap o # حذف میانبر o در حالت بصری cmap # حذف میانبر .EE .PP دستور \f[CR]cmd\f[R] برای تعریف یک دستور سفارشی جدید استفاده می‌شود: .IP .EX cmd usage $du \-h \-d1 | less .EE .PP می‌توانید یک دستور تعریف‌شده را با خالی گذاشتن مقدار آن حذف کنید: .IP .EX cmd trash # حذف دستور trash .EE .PP اگر هیچ پیشوندی مشخص نشود، پیشوند \f[CR]:\f[R] فرض می‌شود: .IP .EX map zt set info time .EE .PP درج پیشوند صریح \f[CR]:\f[R] برای گروه‌بندی دستورات تا انتهای سطر امکان‌پذیر است که به ویژه برای دستورات \f[CR]map\f[R] و \f[CR]cmd\f[R] بسیار کاربردی است: .IP .EX map st :set sortby time; set info time .EE .PP اگر به نگارش چندسطری نیاز دارید، می‌توانید دستورات را پس از پیشوند درون \f[CR]{{\f[R] و \f[CR]}}\f[R] محصور کنید: .IP .EX map st :{{ set sortby time set info time }} .EE .SH "نگاشت کلیدها (KEY MAPPINGS)" کلیدهای معمولی با نگارش مرسوم به یک دستور اختصاص می‌یابند: .IP .EX map a down .EE .PP کلیدهای ترکیبی با کلید Shift صرفاً با استفاده از حرف بزرگ مشخص می‌شوند: .IP .EX map A down .EE .PP کلیدهای ویژه میان نویسه‌های \f[CR]<\f[R] و \f[CR]>\f[R] نوشته شده و همواره از حروف کوچک استفاده می‌کنند: .IP .EX map down .EE .PP علامت‌های کوچکتر/بزرگتر را می‌توان با نام‌های ویژه آن‌ها انتساب داد: .IP .EX map down map down .EE .PP کلیدهای تابع (Function keys) با پیشوند نویسه \f[CR]f\f[R] مشخص می‌شوند: .IP .EX map down .EE .PP کلیدهای ترکیبی با کلید Ctrl با پیشوند نویسه \f[CR]c\f[R] نوشته می‌شوند: .IP .EX map down .EE .PP کلیدهای ترکیبی با کلید Alt بسته به رفتار ترمینال شما به دو روش مختلف اختصاص می‌یابند. ترمینال‌های قدیمی‌تر (مانند xterm) ممکن است با فشردن کلید Alt، بیت هشتم یک نویسه را فعال کنند. در این ترمینال‌ها می‌توانید از بایت متناظر برای نگاشت استفاده کنید: .IP .EX map á down .EE .PP ترمینال‌های جدیدتر (مانند gnome\-terminal) ممکن است هنگام فشردن کلید Alt، یک نویسه فرار (escape) به ابتدای کلید اضافه نمایند. برنامه lf برای تشخیص کلیدهای Alt در این ترمینال‌ها از سازوکار تاخیر نویسه فرار بهره می‌برد (تاخیر ۱۰۰ میلی‌ثانیه است). در این ترمینال‌ها، کلیدهای ترکیبی با Alt با پیشوند نویسه \f[CR]a\f[R] مشخص می‌شوند: .IP .EX map down .EE .PP امکان ترکیب کلیدهای ویژه با کلیدهای تغییردهنده وجود دارد: .IP .EX map down .EE .PP ترکیب چندین کلید تغییردهنده (مانند \f[CR]Ctrl+Shift+Space\f[R]) پشتیبانی نمی‌شود. .PP توجه داشته باشید که نگارش نگاشت کلیدهای lf شبیه به Vim است، اما کاملاً یکسان نیست. برخی کلیدهای ویژه و تغییردهنده‌ها از نام‌ها و جداکننده‌های متفاوتی استفاده می‌کنند و نام کلیدها به صورت کاملاً عینی و دقیق تطبیق داده می‌شوند (بدون تبدیل حروف کوچک/بزرگ یا نام مستعار)، از این رو برخی شکل‌های آشنا کار نخواهند کرد: .IP .EX map down # نه ، یا map down # نه map down # نه یا (Meta) map down # نه map down # نه .EE .PP هشدار: برخی ترکیب‌های کلیدی به احتمال زیاد توسط سیستم‌عامل، مدیر پنجره یا ترمینال شما رهگیری و مهار می‌شوند. همچنین برخی ترکیب‌های دیگر بسته به نحوه گزارش ترمینال ممکن است برای lf قابل تفکیک نباشند (مثلاً \f[CR]Ctrl+h\f[R] ممکن است به صورت \f[CR]backspace\f[R] گزارش شود). ساده‌ترین راه برای اطلاع از نام یک ترکیب کلیدی و امکان کارکرد آن در سیستم شما، این است که آن کلید را حین اجرای lf بفشارید و نام آن را از پیام خطای \f[CR]unknown mapping\f[R] بخوانید. .PP دکمه‌های ماوس با پیشوند نویسه \f[CR]m\f[R] مشخص می‌شوند: .IP .EX map down # کلیک چپ اصلی map down # کلیک راست ثانویه map down # کلیک وسط map down # دکمه شست بعدی map down # دکمه شست قبلی map down map down map down .EE .PP رویدادهای چرخ ماوس نیز با پیشوند نویسه \f[CR]m\f[R] مشخص می‌گردند: .IP .EX map down map down map down map down .EE .SH "نگاشت‌های فشردن کلید (PUSH MAPPINGS)" روش متداول برای نگاشت یک توالی کلیدی، انتساب آن به یک دستور نام‌دار یا بی‌نام است. گرچه این رویکرد روشی تمیز برای بازنگاشت کلیدهای توکار و سایر دستورات به دست می‌دهد، اما گاهی اوقات محدودکننده است. به همین دلیل دستور \f[CR]push\f[R] در lf گنجانده شده است. این دستور برای شبیه‌سازی فشردن کلیدهای داده‌شده در آرگومان استفاده می‌شود. می‌توانید کلیدی را به یک دستور \f[CR]push\f[R] همراه با آرگومان \f[CR]map\f[R] کنید تا میانبرهای کلیدی گوناگونی بسازید. .PP این قابلیت اساساً برای دو هدف کاربرد دارد: نخست، می‌توان از آن برای نگاشت دستوری همراه با یک شمارنده دستور بهره برد: .IP .EX map push 10j .EE .PP دوم، می‌توان برای اجتناب از تایپ نام دستور در مواردی که دستور آرگومان می‌گیرد استفاده نمود: .IP .EX map r push :rename .EE .PP نکته‌ای که باید مراقب آن بود این است که چون دستور \f[CR]push\f[R] به جای دستورات با کلیدها کار می‌کند، امکان ایجاد تصادفی میانبرهای بازگشتی وجود دارد: .IP .EX map j push 2j .EE .PP این نوع میانبرها در هنگام اجرا بن‌بست (deadlock) ایجاد می‌کنند. .SH "دستورات شل (SHELL COMMANDS)" دستورات شل معمولی پایه‌ای‌ترین نوع دستور هستند که برای مقاصد گوناگونی کاربرد دارند. برای نمونه، می‌توانیم یک دستور شل بنویسیم تا فایل(های) انتخابی را به سطل بازیافت منتقل کند. نخستین تلاش برای نوشتن چنین دستوری ممکن است به این شکل باشد: .IP .EX cmd trash ${{ mkdir \-p \(ti/.trash if [ \-z \(dq$fs\(dq ]; then mv \(dq$f\(dq \(ti/.trash else IFS=\(dq$(printf \(aq\(rsn\(rst\(aq)\(dq; mv $fs \(ti/.trash fi }} .EE .PP ما متغیر \f[CR]$fs\f[R] را بررسی می‌کنیم تا ببینیم فایلی انتخاب شده است یا خیر؛ در غیر این صورت، تنها فایل جاری را جابجا می‌کنیم. چون این یک الگوی بسیار رایج است، یک متغیر مجزا به نام \f[CR]$fx\f[R] فراهم شده است. با استفاده از این متغیر می‌توان از عبارت شرطی صرف‌نظر کرد: .IP .EX cmd trash ${{ mkdir \-p \(ti/.trash IFS=\(dq$(printf \(aq\(rsn\(rst\(aq)\(dq; mv $fx \(ti/.trash }} .EE .PP پوشه سطل زباله در هر بار اجرای دستور بررسی می‌شود. می‌توانیم آن را به خارج از دستور ببریم تا فقط یک بار در زمان راه‌اندازی اجرا گردد: .IP .EX ${{ mkdir \-p \(ti/.trash }} cmd trash ${{ IFS=\(dq$(printf \(aq\(rsn\(rst\(aq)\(dq; mv $fx \(ti/.trash }} .EE .PP چون این موارد دستورات یک‌خطی هستند، می‌توان از \f[CR]{{\f[R] و \f[CR]}}\f[R] صرف‌نظر نمود: .IP .EX $mkdir \-p \(ti/.trash cmd trash $IFS=\(dq$(printf \(aq\(rsn\(rst\(aq)\(dq; mv $fx \(ti/.trash .EE .PP در پایان توجه داشته باشید که متغیر \f[CR]IFS\f[R] را در این دستورات به طور دستی تنظیم کردیم. به جای آن می‌توانستیم از گزینه \f[CR]ifs\f[R] برای تنظیم آن برای تمام دستورات شل استفاده کنیم (مانند \f[CR]set ifs \(dq\(rsn\(dq\f[R]). این امر به ویژه برای استفاده تعاملی بسیار سودمند است (مثلاً \f[CR]$rm $f\f[R] یا \f[CR]$rm $fs\f[R] به سادگی کار خواهند کرد). این گزینه به صورت پیش‌فرض تنظیم نشده زیرا ممکن است برای کاربران تازه‌کار رفتاری غیرمنتظره داشته باشد؛ با این حال، استفاده از این گزینه به شدت توصیه می‌شود و در ادامه مستندات فرض بر تنظیم بودن آن است. .SH "دستورات شل لوله‌کشی‌شده (PIPING SHELL COMMANDS)" دستورات شل معمولی در پاره‌ای از شرایط با محدودیت‌هایی روبرو هستند. هنگامی که خروجی یا پیام خطایی داده شود و دستور بلافاصله خاتمه یابد، رابط کاربری بدون درنگ بازگردانده می‌شود و راهی برای دیدن پیام بدون خروج مجدد به شل وجود ندارد. همچنین حتی زمانی که هیچ خروجی یا خطایی نباشد، رابط کاربری حین اجرای دستور موقتاً متوقف می‌گردد. این موضوع می‌تواند موجب پرش صفحه برای دستورات کوتاه و حواس‌پرتی مشابه برای دستورات طولانی‌تر شود. .PP دستورات شل لوله‌کشی‌شده به جای متوقف کردن رابط کاربری، ورودی استاندارد (stdin)، خروجی استاندارد (stdout) و خطای استاندارد (stderr) دستور را به خط وضعیت در پایین صفحه متصل می‌کنند. این کارکرد برای برنامه‌هایی که پیرو فلسفه یونیکس هستند تا در صورت موفقیت هیچ خروجی ندهند و در سایر موارد پیام‌های کوتاه یا اعلان صادر کنند، بسیار ایده‌آل است. .PP به عنوان مثال، دستور تغییر نام زیر در صورت وجود فایلی با نام مشخص‌شده، در خط وضعیت برای رونویسی تاییدیه می‌خواهد: .IP .EX cmd rename %mv \-i $f $1 .EE .PP همچنین می‌توانید پیام‌های خطا را در دستور چاپ کنید تا در خط وضعیت ظاهر شوند. برای نمونه، یک دستور تغییر نام جایگزین می‌تواند این‌گونه باشد: .IP .EX cmd rename %[ \-e $1 ] && printf \(dqfile exists\(dq || mv $f $1 .EE .PP توجه داشته باشید که ورودی به صورت سطری بافر می‌شود و خروجی و خطا به صورت بایتی بافر می‌گردند. .SH "دستورات شل منتظر (WAITING SHELL COMMANDS)" دستورات شل منتظر مشابه دستورات شل معمولی هستند، با این تفاوت که پس از پایان کار دستور، منتظر فشردن یک کلید از سوی کاربر می‌مانند. این نوع دستورات برای دیدن خروجی یک برنامه قبل از بازگشت رابط کاربری مفید هستند. زمانی که دستور خروجی پرگویی دارد و نمایش چندسطری خروجی بهتر است، دستورات شل منتظر نسبت به دستورات لوله‌کشی‌شده مناسب‌تر خواهند بود. .SH "دستورات شل ناهمگام (ASYNCHRONOUS SHELL COMMANDS)" دستورات شل ناهمگام برای آغاز اجرای یک دستور در پس‌زمینه و سپس ادامه بی‌درنگ عملیات بدون معطل ماندن برای اتمام دستور به کار می‌روند. ورودی استاندارد، خروجی استاندارد و خطای استاندارد دستور به هیچ‌یک از ترمینال یا رابط کاربری متصل نمی‌شوند. .SH "دستورات از راه دور (REMOTE COMMANDS)" یکی از قابلیت‌های پیشرفته‌تر در lf، دستورات از راه دور (remote commands) است. تمام کلاینت‌ها در هنگام راه‌اندازی به یک سرور متصل می‌شوند. ارسال دستورات به تمامی کلاینت‌های متصل یا هر یک از آن‌ها از طریق سرور مشترک امکان‌پذیر است. این قابلیت در داخل برنامه برای اطلاع‌رسانی تغییرات فایل‌های انتخابی به سایر کلاینت‌ها استفاده می‌شود. .PP برای بهره‌گیری از این ویژگی، به برنامه‌ای نیاز است که از ارتباط با سوکت یونیکس (Unix domain socket) پشتیبانی کند. پیاده‌سازی netcat (nc) در سیستم‌عامل OpenBSD نمونه‌ای از آن است. می‌توان از آن برای ارسال دستور به فایل سوکت استفاده نمود: .IP .EX echo \(aqsend echo hello world\(aq | nc \-U ${XDG_RUNTIME_DIR:\-/tmp/lf\-$(id \-u)}/lf.sock .EE .PP از آنجا که ممکن است چنین ابزاری در تمام سیستم‌ها موجود نباشد، lf به همراه یک فلگ خط فرمان برای این کاربرد عرضه شده است. هنگام استفاده از lf، نیازی به مشخص کردن نشانی فایل سوکت ندارید. این روش پیشنهادی برای اجرای دستورات از راه دور است، زیرا کوتاه‌تر بوده و در برابر تغییرات نشانی فایل سوکت پایدار می‌ماند: .IP .EX lf \-remote \(aqsend echo hello world\(aq .EE .PP در این دستور از \f[CR]send\f[R] برای ارسال بقیه رشته به عنوان دستور به همه کلاینت‌های متصل استفاده می‌شود. می‌توانید به صورت اختیاری یک شناسه عددی (ID) تعیین کنید تا دستور فقط به یک کلاینت خاص ارسال شود: .IP .EX lf \-remote \(aqsend 1234 echo hello world\(aq .EE .PP تمام کلاینت‌ها دارای شناسه یکتا هستند، اما ممکن است در هنگام نوشتن دستور از شناسه آن مطلع نباشید. به همین منظور، متغیر \f[CR]$id\f[R] در محیط برای دستورات شل صادر می‌شود. مقدار این متغیر برابر با شناسه فرآیند کلاینت است. می‌توانید از آن برای ارسال دستور از یک کلاینت به سرور استفاده کنید تا سرور مجدداً دستور را به خود کلاینت بازگرداند. بنابراین می‌توانید با فراخوانی دستور زیر درون یک دستور شل، پیامی در کلاینت جاری نمایش دهید: .IP .EX lf \-remote \(dqsend $id echo hello world\(dq .EE .PP از آنجا که نحو درونی lf فاقد دستورات کنترل جریان (مانند شرط‌ها) است، دستورات از راه دور برای این‌گونه نیازها به کار می‌روند. به عنوان مثال، می‌توانید تعداد ستون‌های رابط کاربری را متناسب با عرض ترمینال به شکل زیر تنظیم کنید: .IP .EX cmd recol %{{ if [ $lf_width \-le 80 ]; then lf \-remote \(dqsend $id set ratios 1:2\(dq elif [ $lf_width \-le 160 ]; then lf \-remote \(dqsend $id set ratios 1:2:3\(dq else lf \-remote \(dqsend $id set ratios 1:2:3:5\(dq fi }} .EE .PP علاوه بر این، دستور \f[CR]query\f[R] می‌تواند برای کسب اطلاعات در مورد یک نمونه خاص از lf با ارائه شناسه آن به کار رود: .IP .EX lf \-remote \(dqquery $id maps\(dq .EE .PP انواع اطلاعات زیر پشتیبانی می‌شوند: .IP .EX maps فهرست نگاشت‌های ایجادشده توسط دستورات map، nmap و vmap nmaps فهرست نگاشت‌های ایجادشده توسط دستورات nmap و map vmaps فهرست نگاشت‌های ایجادشده توسط دستورات vmap و map cmaps فهرست نگاشت‌های ایجادشده توسط دستور cmap cmds فهرست دستورات ایجادشده با دستور cmd jumps محتوای فهرست پرش‌ها شامل مکان‌های بازدیدشده پیشین history فهرست دستورات اجراشده قبلی در خط فرمان files فهرست فایل‌های موجود در پوشه جاری مطابق نمایش lf .EE .PP هنگام فهرست‌بندی نگاشت‌ها، نویسه‌های ستون اول عبارتند از: .IP .EX n حالت عادی (Normal) v حالت بصری (Visual) c حالت خط فرمان (Command\-line) .EE .PP این قابلیت برای اسکریپت‌نویسی اقدامات بر مبنای وضعیت داخلی lf بسیار سودمند است. برای نمونه، جهت انتخاب یک دستور پیشین با استفاده از fzf و اجرای آن: .IP .EX map ${{ clear cmd=$( lf \-remote \(dqquery $id history\(dq | awk \-F\(aq\(rst\(aq \(aqNR > 1 { print $NF}\(aq | sort \-u | fzf \-\-reverse \-\-prompt=\(aqExecute command: \(aq ) lf \-remote \(dqsend $id $cmd\(dq }} .EE .PP دستور \f[CR]list\f[R] شناسه تمام کلاینت‌های متصل فعلی را چاپ می‌کند: .IP .EX lf \-remote \(aqlist\(aq .EE .PP همچنین دستور \f[CR]quit\f[R] برای بستن سرور در زمانی که هیچ کلاینتی متصل نمانده باشد، و دستور \f[CR]quit!\f[R] برای بستن اجباری سرور با بستن ارتباط تمامی کلاینت‌ها وجود دارد: .IP .EX lf \-remote \(aqquit\(aq lf \-remote \(aqquit!\(aq .EE .PP در نهایت، دستورات \f[CR]conn\f[R] و \f[CR]drop\f[R] یک شناسه را به سرور متصل یا از آن قطع می‌کنند: .IP .EX lf \-remote \(aqconn $id\(aq lf \-remote \(aqdrop $id\(aq .EE .PP این موارد درونی هستند و عموماً توسط کاربران استفاده نمی‌شوند. .SH "عملیات فایل (FILE OPERATIONS)" برنامه lf به صورت پیش‌فرض از عملیات کپی و جابجایی داخلی خود استفاده می‌کند. این عملیات به شکل ناهمگام پیاده‌سازی شده‌اند و پیشرفت کار در خط‌کش پایینی نمایش می‌یابد. این دستورات فایل‌ها یا پوشه‌های هم‌نام موجود را رونویسی نمی‌کنند؛ بلکه پسوندی سازگار با گزینه \f[CR]\-\-backup=numbered\f[R] در ابزار GNU cp به فایل‌ها یا پوشه‌های جدید اضافه می‌شود. تنها حالت‌های دسترسی و (برخی) نشان‌های زمانی حفظ می‌شوند (گزینه \f[CR]preserve\f[R] را ببینید)، و تمام صفت‌های دیگر از جمله مالکیت، context و صفت‌های توسعه‌یافته نادیده گرفته می‌شوند. فایل‌های ویژه مانند دستگاه‌های کاراکتری و بلوکی، لوله‌های نام‌دار (pipes) و سوکت‌ها رد شده و پیوندها دنبال نمی‌شوند. انتقال فایل‌ها با استفاده از عملیات تغییر نام سیستم‌عامل زیربنایی صورت می‌گیرد. برای انتقال بین دستگاه‌های دیسک مختلف، lf ابتدا اقدام به کپی کرده و سپس در صورت نبود خطا فایل اصلی را حذف می‌کند. خطاهای عملیاتی در خط پیام و در فایل لاگ ثبت می‌شوند و فرآیند را پیش از موعد متوقف نمی‌کنند. .PP عملیات فایل می‌توانند روی فایل انتخابی جاری یا چندین فایل (با انتخاب قبلی آن‌ها) انجام گیرند. هنگامی که یک فایل را \f[CR]copy\f[R] می‌کنید، lf در عمل فایل را روی دیسک کپی نمی‌کند، بلکه نام آن را در فایلی ثبت می‌نماید. کپی واقعی در زمان اجرای دستور \f[CR]paste\f[R] انجام می‌شود. به همین ترتیب، اجرای \f[CR]paste\f[R] پس از \f[CR]cut\f[R] فایل را انتقال می‌دهد. .PP می‌توانید عملیات‌های کپی و انتقال را با تعریف یک دستور \f[CR]paste\f[R] سفارشی‌سازی کنید. این دستور ویژه‌ای است که در صورت تعریف شدن به جای پیاده‌سازی داخلی فراخوانی می‌شود. می‌توانید از مثال زیر به عنوان نقطه آغاز استفاده فرمایید: .IP .EX cmd paste %{{ load=$(cat \(ti/.local/share/lf/files) mode=$(echo \(dq$load\(dq | sed \-n \(aq1p\(aq) list=$(echo \(dq$load\(dq | sed \(aq1d\(aq) if [ $mode = \(aqcopy\(aq ]; then cp \-R $list . elif [ $mode = \(aqmove\(aq ]; then mv $list . rm \(ti/.local/share/lf/files lf \-remote \(aqsend clear\(aq fi }} .EE .PP از نکات سودمندی که می‌توان در نظر گرفت، استفاده از گزینه‌های پشتیبان‌گیری (\f[CR]\-\-backup\f[R]) یا حفظ صفت‌ها (\f[CR]\-a\f[R]) در دستورات \f[CR]cp\f[R] و \f[CR]mv\f[R] در صورت پشتیبانی سیستم، تغییر نوع دستور به ناهمگام، یا استفاده از دستور \f[CR]rsync\f[R] با گزینه نوار پیشرفت برای کپی و ارسال دوره‌ای درصد پیشرفت به کلاینت از طریق فراخوانی‌های \f[CR]echo\f[R] راه دور است. .PP برنامه lf به صورت پیش‌فرض برای حفاظت از کاربران تازه‌کار، دستور \f[CR]delete\f[R] را به هیچ کلیدی اختصاص نداده است. می‌توانید حذف فایل را با تعریف یک دستور \f[CR]delete\f[R] شخصی‌سازی کنید. همچنین در صورت تمایل می‌توانید کلیدی به این دستور منتسب نمایید. دستوری نمونه برای انتقال فایل‌های انتخاب‌شده به پوشه سطل زباله و حذف کامل فایل‌ها پس از درخواست تایید، در فایل پیکربندی نمونه ارائه شده است. .SH "جستجوی فایل‌ها (SEARCHING FILES)" دو سازوکار در lf برای جستجوی فایل در پوشه جاری تعبیه شده است: جستجو (Searching) روش سنتی برای انتقال انتخاب به فایلی منطبق با یک الگوی مشخص است. یافتن (Finding) روشی جایگزین برای جستجوی الگو احتمالاً با تعداد فشردن کلید کمتر است. .PP سازوکار جستجو با دستورات \f[CR]search\f[R] (به طور پیش‌فرض \f[CR]/\f[R])، \f[CR]search\-back\f[R] (پیش‌فرض \f[CR]?\f[R])، \f[CR]search\-next\f[R] (پیش‌فرض \f[CR]n\f[R]) و \f[CR]search\-prev\f[R] (پیش‌فرض \f[CR]N\f[R]) پیاده‌سازی شده است. می‌توانید \f[CR]searchmethod\f[R] را روی \f[CR]glob\f[R] تنظیم کنید تا تطبیق با الگوی گلوب انجام شود. الگوهای گلوب از \f[CR]*\f[R] برای تطبیق با هر دنباله‌ای، \f[CR]?\f[R] برای هر نویسه تک، و \f[CR][...]\f[R] یا \f[CR][\(ha...]\f[R] برای مجموعه‌ها یا بازه‌های نویسه‌ای پشتیبانی می‌کنند. می‌توانید \f[CR]searchmethod\f[R] را روی \f[CR]regex\f[R] برای تطبیق با عبارات منظم تنظیم نمایید. برای راهنمای کامل سینتکس موتور RE2 در زبان Go به نشانی زیر مراجعه کنید: \c .UR https://pkg.go.dev/regexp/syntax .UE \c \&. .PP می‌توانید گزینه \f[CR]incsearch\f[R] را فعال کنید تا هم‌گام با تایپ، با فشردن هر کلید به مورد منطبق پرش شود. در این حالت می‌توانید از \f[CR]cmd\-enter\f[R] برای تایید جستجو یا از \f[CR]cmd\-escape\f[R] برای لغو آن استفاده کنید. همچنین می‌توانید دستورات دیگری را با \f[CR]cmap\f[R] تعریف کنید تا جستجو بلافاصله تایید شده و دستور مورد نظر اجرا شود. برای مثال، می‌توانید با نگاشت زیر با فشردن کلید جهت‌نمای راست جستجو را به پایان رسانده و فایل انتخابی را باز کنید: .IP .EX cmap :cmd\-enter; open .EE .PP سازوکار یافتن با دستورات \f[CR]find\f[R] (پیش‌فرض \f[CR]f\f[R])، \f[CR]find\-back\f[R] (پیش‌فرض \f[CR]F\f[R])، \f[CR]find\-next\f[R] (پیش‌فرض \f[CR];\f[R]) و \f[CR]find\-prev\f[R] (پیش‌فرض \f[CR],\f[R]) پیاده‌سازی شده است. می‌توانید گزینه \f[CR]anchorfind\f[R] را غیرفعال کنید تا الگو در هر موقعیتی از نام فایل (نه لزوماً از ابتدا) تطبیق یابد. با گزینه \f[CR]findlen\f[R] می‌توان تعداد کلیدهای لازم برای تطبیق را تنظیم کرد؛ اگر روی صفر تنظیم شود، کلیدها تا زمانی دریافت می‌شوند که تنها یک مورد منطبق باقی بماند. مقادیر پیش‌فرض این دو گزینه برای پرش به اولین فایل با حرف ابتدایی داده‌شده تنظیم شده است. .PP برخی گزینه‌ها روی هر دو روش جستجو و یافتن تاثیر می‌گذارند: می‌توانید گزینه \f[CR]wrapscan\f[R] را غیرفعال کنید تا از گردش مجدد جستجو در انتهای فهرست فایل‌ها جلوگیری شود. می‌توانید گزینه \f[CR]ignorecase\f[R] را غیرفعال کنید تا تمایز حروف کوچک و بزرگ در الگو و نام فایل رعایت شود (این گزینه با داشتن حروف بزرگ در الگو خودکار نادیده گرفته می‌شود که با خاموش کردن \f[CR]smartcase\f[R] این رفتار متوقف می‌گردد). دو گزینه مشابه \f[CR]ignoredia\f[R] و \f[CR]smartdia\f[R] برای کنترل تطبیق اعراب و نشانه‌های صوتی در حروف لاتین تعبیه شده‌اند. .SH "باز کردن فایل‌ها (OPENING FILES)" می‌توانید دستور \f[CR]open\f[R] (به طور پیش‌فرض \f[CR]l\f[R] و \f[CR]\f[R]) را برای سفارشی‌سازی نحوه باز کردن فایل‌ها تعریف کنید. این دستور تنها زمانی اجرا می‌شود که فایل انتخابی یک پوشه نباشد؛ در غیر این صورت برنامه وارد پوشه خواهد شد. می‌توانید آن را دقیقاً مشابه هر دستور دیگری تعریف نمایید: .IP .EX cmd open $vi $fx .EE .PP امکان بهره‌گیری از انواع مختلف دستورات وجود دارد: .IP .EX cmd open &xdg\-open $f .EE .PP شاید بخواهید بر اساس پسوند فایل‌ها یا نوع MIME حاصل از دستور \f[CR]file\f[R] تصمیم‌گیری کنید: .IP .EX cmd open ${{ case $(file \-\-mime\-type \-Lb $f) in text/*) vi $fx;; *) for f in $fx; do xdg\-open $f > /dev/null 2> /dev/null & done;; esac }} .EE .PP می‌توانید از \f[CR]setsid\f[R] پیش از دستور بازکننده خود استفاده کنید تا فرآیندها پس از خروج از lf نیز به کار خود ادامه دهند. .PP دستورات شل معمولی (\f[CR]$\f[R]) به محیط ترمینال می‌روند که برای دستوراتی که فوراً به پایان می‌رسند (مانند \f[CR]xdg\-open\f[R] در مثال بالا) باعث پرش صفحه نمایش می‌شود. اگر می‌خواهید از دستورات شل ناهمگام (\f[CR]&\f[R]) استفاده کنید و در عین حال در صورت لزوم به ترمینال نیز دسترسی داشته باشید (مانند \f[CR]vi\f[R] در مثال بالا)، می‌توانید از یک دستور راه دور استفاده فرمایید: .IP .EX cmd open &{{ case $(file \-\-mime\-type \-Lb $f) in text/*) lf \-remote \(dqsend $id \(rs$vi \(rs$fx\(dq;; *) for f in $fx; do xdg\-open $f > /dev/null 2> /dev/null & done;; esac }} .EE .PP توجه داشته باشید که دستورات شل ناهمگام به صورت پیش‌فرض در گروه فرآیندی مستقل خود اجرا می‌شوند و نیازی به استفاده دستی از \f[CR]setsid\f[R] ندارند. .PP دستور زیر به صورت پیش‌فرض تنظیم شده است: .IP .EX cmd open &$OPENER $f .EE .PP همچنین می‌توانید به دلخواه از سایر ابزارهای بازکننده فایل استفاده کنید. گزینه‌های احتمالی عبارتند از: \f[CR]libfile\-mimeinfo\-perl\f[R] (نام فایل اجرایی \f[CR]mimeopen\f[R])، \f[CR]rifle\f[R] (بازکننده پیش‌فرض برنامه ranger) یا \f[CR]mimeo\f[R]. .SH "پیش‌نمایش فایل‌ها (PREVIEWING FILES)" برنامه lf فایل‌ها را در پنجره پیش‌نمایش با چاپ محتوای فایل تا انتها یا تا زمان پر شدن صفحه نمایش می‌دهد. این خروجی را می‌توان با ارائه یک اسکریپت پیش‌نمایش سفارشی برای فیلترسازی ارتقا داد. از این قابلیت می‌توان برای برجسته‌سازی کدهای منبع، نمایش محتوای فایل‌های فشرده یا مشاهده فایل‌های PDF یا تصاویر بهره برد. برنامه lf برای رنگ‌آمیزی، کدهای فرار ANSI را تشخیص می‌دهد. .PP جهت استفاده از این قابلیت، لازم است مقدار گزینه \f[CR]previewer\f[R] را برابر مسیر یک فایل اجرایی قرار دهید. آرگومان‌های زیر به فایل ارسال می‌شوند: (1) نام فایل جاری، (2) عرض، (3) ارتفاع، (4) موقعیت افقی، (5) موقعیت عمودی پنجره پیش‌نمایش، و (6) حالت اجرا (\(dqpreview\(dq یا \(dqpreload\(dq). خروجی حاصل از اجرای اسکریپت در پنجره پیش‌نمایش چاپ می‌شود. .PP انواع مختلف فایل‌ها با تطبیق پسوند فایل (یا نوع MIME حاصل از دستور \f[CR]file\f[R]) قابل تفکیک هستند: .IP .EX #!/bin/sh case \(dq$1\(dq in *.tar*) tar tf \(dq$1\(dq;; *.zip) unzip \-l \(dq$1\(dq;; *.rar) unrar l \(dq$1\(dq;; *.7z) 7z l \(dq$1\(dq;; *.pdf) pdftotext \(dq$1\(dq \-;; *) highlight \-O ansi \(dq$1\(dq;; esac .EE .PP از آنجا که فایل‌ها ممکن است حجیم باشند، lf پس از خواندن سطرهای کافی به طور خودکار پایپ خروجی اسکریپت را با ارسال سیگنال SIGPIPE می‌بندد. توجه داشته باشید که برخی برنامه‌ها ممکن است به سیگنال SIGPIPE واکنش مناسبی نشان نداده و با کد خروجی غیرصفر خارج شوند که این امر مانع از کش شدن خروجی می‌گردد. می‌توانید یک دستور پایانی \f[CR]|| true\f[R] اضافه کنید تا از چنین خطاهایی جلوگیری شود: .IP .EX highlight \-O ansi \(dq$1\(dq || true .EE .PP همچنین می‌توانید از همان اسکریپت در میانبر صفحه‌بند (pager) خود نیز استفاده نمایید: .IP .EX set previewer \(ti/.config/lf/pv.sh map i $\(ti/.config/lf/pv.sh $f | less \-R .EE .PP برای صفحه‌بند \f[CR]less\f[R]، می‌توانید به جای آن از سازوکار \f[CR]LESSOPEN\f[R] بهره ببرید تا اطلاعات سودمند درباره فایل از جمله مسیر کامل آن در خط وضعیت پایینی قابل نمایش باشد: .IP .EX set previewer \(ti/.config/lf/pv.sh map i $LESSOPEN=\(aq| \(ti/.config/lf/pv.sh %s\(aq less \-R $f .EE .PP از آنجا که اسکریپت پیش‌نمایش برای هر تغییر انتخاب فایل فراخوانی می‌شود، در صورتی که کاربر به سرعت در میان فایل‌ها حرکت کند، ممکن است تولید پیش‌نمایش‌ها با تاخیر مواجه شود. برای رفع این مسئله، می‌توان گزینه \f[CR]preload\f[R] را فعال کرد تا پیش‌نمایش‌ها از قبل آماده شوند. در این حالت، هم‌زمان با پیمایش کاربر، اسکریپت پیشاپیش روی فایل‌ها اجرا می‌شود؛ اگر کد خروجی اسکریپت صفر باشد، خروجی در حافظه کش شده و توسط lf نشان داده می‌شود (مفید برای متون و پیش‌نمایش‌های sixel)؛ در غیر این صورت، برنامه در زمان انتخاب واقعی فایل مجدداً اسکریپت را فراخوانی می‌کند (مفید برای پیش‌نمایش‌های مدیریت‌شده توسط برنامه‌های خارجی). .SH "تغییر پوشه (CHANGING DIRECTORY)" برنامه lf پوشه کاری فرآیند خود را به پوشه جاری تغییر می‌دهد تا دستورات شل همواره در پوشه نمایش‌یافته عمل کنند. پس از خروج، برنامه مانند سایر ابزارهای شل به همان پوشه‌ای که از آن اجرا شده بود بازمی‌گردد. اگر می‌خواهید پس از خروج در همان پوشه جاری بمانید، می‌توانید از اسکریپت‌های پوسته نمونه lfcd موجود در مخزن پروژه در نشانی زیر استفاده کنید: \c .UR https://github.com/gokcehan/lf/tree/master/etc .UE \c .PP دستور ویژه‌ای به نام \f[CR]on\-cd\f[R] وجود دارد که در صورت تعریف شدن، هنگام تغییر پوشه یک دستور شل را اجرا می‌کند. می‌توانید آن را دقیقاً مشابه هر دستور دیگری تعریف فرمایید: .IP .EX cmd on\-cd &{{ bash \-c \(aq # نمایش وضعیت مخزن گیت در اعلان source /usr/share/git/completion/git\-prompt.sh GIT_PS1_SHOWDIRTYSTATE=auto GIT_PS1_SHOWSTASHSTATE=auto GIT_PS1_SHOWUNTRACKEDFILES=auto GIT_PS1_SHOWUPSTREAM=auto git=$(__git_ps1 \(dq (%s)\(dq) fmt=\(dq\(rs033[32;1m%u\(at%h\(rs033[0m:\(rs033[34;1m%d\(rs033[0m\(rs033[1m%f$git\(rs033[0m\(dq lf \-remote \(dqsend $id set promptfmt \(rs\(dq$fmt\(rs\(dq\(dq \(aq }} .EE .PP اگر می‌خواهید دنباله‌های فرار (escape sequences) به ترمینال بفرستید، می‌توانید از دستور \f[CR]tty\-write\f[R] استفاده کنید. دنباله فرار مخصوص xterm زیر، عنوان ترمینال را برابر با پوشه کاری قرار می‌دهد: .IP .EX cmd on\-cd &{{ lf \-remote \(dqsend $id tty\-write \(rs\(dq\(rs033]0;$PWD\(rs007\(rs\(dq\(dq }} .EE .PP این دستور هنگام تغییر پوشه اجرا می‌شود اما در زمان راه‌اندازی اجرا نمی‌گردد. می‌توانید فراخوانی مستقلی اضافه کنید تا در هنگام راه‌اندازی اولیه نیز اجرا شود: .IP .EX cmd on\-cd &{{ ... }} on\-cd .EE .PP توجه داشته باشید که از انواع مختلف دستورات شل می‌توان استفاده نمود، اما \f[CR]%\f[R] و \f[CR]&\f[R] معمولاً مناسب‌تر هستند، زیرا \f[CR]$\f[R] و \f[CR]!\f[R] به ترتیب باعث پرش صفحه و توقف برنامه می‌شوند. .PP همچنین دستور \f[CR]pre\-cd\f[R] وجود دارد که مانند \f[CR]on\-cd\f[R] عمل می‌کند، با این تفاوت که پیش از تغییر واقعی پوشه اجرا می‌شود. دستور مرتبط دیگر \f[CR]on\-load\f[R] است که پس از بارگذاری یک پوشه اجرا می‌گردد. .SH "بارگذاری پوشه (LOADING DIRECTORY)" مشابه با \f[CR]on\-cd\f[R]، دستور \f[CR]on\-load\f[R] نیز وجود دارد که در صورت تعریف شدن، پس از بارگذاری یک پوشه یک دستور شل را اجرا می‌کند. این دستور در ترکیب با \f[CR]addcustominfo\f[R] بسیار کارآمد است. .PP از مثال زیر می‌توان برای نمایش نشانگرهای گیت در ستون اطلاعات (info) استفاده کرد: .IP .EX cmd on\-load &{{ cd \(dq$(dirname \(dq$1\(dq)\(dq || exit 1 [ \(dq$(git rev\-parse \-\-is\-inside\-git\-dir 2>/dev/null)\(dq = false ] || exit 0 cmds=\(dq\(dq for file in \(dq$\(at\(dq; do case \(dq$file\(dq in */.git|*/.git/*) continue;; esac status=$(git status \-\-porcelain \-\-ignored \-\- \(dq$file\(dq | cut \-c1\-2 | head \-n1) if [ \-n \(dq$status\(dq ]; then cmds=\(dq${cmds}addcustominfo \(rs\(dq${file}\(rs\(dq \(rs\(dq$status\(rs\(dq; \(dq else cmds=\(dq${cmds}addcustominfo \(rs\(dq${file}\(rs\(dq \(aq\(aq; \(dq fi done if [ \-n \(dq$cmds\(dq ]; then lf \-remote \(dqsend $id :$cmds\(dq fi }} .EE .PP کاربرد دیگر می‌تواند نمایش ابعاد فایل‌های تصویری و ویدیویی باشد: .IP .EX cmd on\-load &{{ cmds=\(dq\(dq for file in \(dq$\(at\(dq; do mime=$(file \-\-mime\-type \-Lb \-\- \(dq$file\(dq) case \(dq$mime\(dq in # تصاویر برداری مشکل‌ساز هستند image/svg+xml) ;; image/*|video/*) dimensions=$(exiftool \-s3 \-imagesize \-\- \(dq$file\(dq) cmds=\(dq${cmds}addcustominfo \(rs\(dq${file}\(rs\(dq \(rs\(dq$dimensions\(rs\(dq; \(dq ;; esac done if [ \-n \(dq$cmds\(dq ]; then lf \-remote \(dqsend $id :$cmds\(dq fi }} .EE .SH "رنگ‌ها (COLORS)" برنامه lf تلاش می‌کند رنگ‌های خود را به صورت خودکار با محیط تطبیق دهد. کار با یک طرح رنگی پیش‌فرض آغاز شده و سپس رنگ‌ها بر اساس مقادیر متغیرهای محیطی موجود به‌روزرسانی می‌شوند. رنگ‌ها به ترتیب زیر اعمال می‌گردند: .IP "1." 3 پیش‌فرض (default) .IP "2." 3 متغیر LSCOLORS (در دستور ls در macOS/BSD) .IP "3." 3 متغیر LS_COLORS (در دستور GNU ls) .IP "4." 3 متغیر LF_COLORS (ویژه برنامه lf) .IP "5." 3 فایل colors (ویژه برنامه lf) .PP لطفاً برای اطلاعات بیشتر درباره \f[CR]LSCOLORS\f[R] و \f[CR]LS_COLORS\f[R] به صفحات راهنمای مربوطه مراجعه فرمایید. متغیر \f[CR]LF_COLORS\f[R] با همان ساختار \f[CR]LS_COLORS\f[R] تعبیه شده تا در صورتی که بخواهید رنگ‌ها را فقط برای lf و نه ls تنظیم کنید، از آن استفاده نمایید. فایل colors (به بخش \c .UR https://github.com/gokcehan/lf/blob/master/doc.md#configuration CONFIGURATION .UE \c \ مراجعه کنید) برای پیکربندی آسان‌تر بدون متغیرهای محیطی در نظر گرفته شده است. این فایل شامل جفت‌های جداشده با فاصله است و نویسه \f[CR]#\f[R] برای کامنت‌ها به کار می‌رود. .PP می‌توانید رنگ‌های lf را به دو شیوه پیکربندی کنید: نخست، تنها ۸ رنگ اصلی مورد استفاده در ترمینال خود را تنظیم کنید و lf به صورت خودکار آن رنگ‌ها را شناسایی خواهد کرد. بسته به ترمینال خود، می‌توانید رنگ‌ها را از یک پالت ۲۴ بیتی برگزینید. این رویکرد پیشنهادی است زیرا رنگ‌های به کار رفته در سایر برنامه‌ها نیز با یکدیگر هماهنگ خواهند بود. .PP دوم، می‌توانید مقادیر متغیرهای محیطی یا فایل colors را برای سفارشی‌سازی دقیق و جزء‌به‌جزء تنظیم نمایید. توجه داشته باشید که \f[CR]LS_COLORS/LF_COLORS\f[R] از \f[CR]LSCOLORS\f[R] قدرتمندتر هستند و حتی در صورت عدم نصب ابزارهای گنو نیز کار می‌کنند. ترکیب این روش با روش نخست بهترین نتیجه را حاصل می‌کند. .PP در پایان، ممکن است بخواهید رنگ‌های خط اعلان را نیز متناسب با سایر رنگ‌ها تنظیم کنید. رنگ‌های خط اعلان از طریق گزینه \f[CR]promptfmt\f[R] قابل تنظیم است که می‌تواند شامل کدهای فرار ANSI باشد. .PP شایان ذکر است که lf از تعداد رنگ‌هایی که توسط مدخل ترمینال در پایگاه داده‌های terminfo یا infocmp گزارش می‌شود پشتیبانی می‌کند. اگر ترمینال شما از رنگ‌های ۲۴ بیتی پشتیبانی می‌کند، می‌توانید با تنظیم متغیر \f[CR]$COLORTERM\f[R] به \f[CR]truecolor\f[R] یا اطمینان از پایان یافتن \f[CR]$TERM\f[R] با \f[CR]\-truecolor\f[R] پشتیبانی آن را فعال نمایید. .PP رنگ‌های پیش‌فرض lf عمدتاً از پیش‌فرض‌های dircolors گنو گرفته شده‌اند. این پیش‌فرض‌ها از ۸ رنگ اصلی و صفت برجسته (bold) استفاده می‌کنند. مقادیر پیش‌فرض به همراه ترتیب انطباق در lf به شرح زیر است: .IP .EX ln 01;36 or 31;01 tw 01;34 ow 01;34 st 01;34 di 01;34 pi 33 so 01;35 bd 33;01 cd 33;01 su 01;32 sg 01;32 ex 01;32 fi 00 .EE .PP توجه داشته باشید که lf ابتدا نام فایل‌ها را تطبیق می‌دهد و سپس به سراغ نوع فایل می‌رود. ترتیب کامل تطبیق از خاص‌ترین تا عمومی‌ترین عبارت است از: .IP "1." 3 مسیر کامل فایل (مانند \f[CR]\(ti/.config/lf/lfrc\f[R]) .IP "2." 3 نام پوشه (مانند \f[CR].git/\f[R]) (تنها با پوشه‌های دارای ممیز پایانی تطبیق می‌یابد) .IP "3." 3 نوع فایل (مانند \f[CR]ln\f[R]) (به جز \f[CR]fi\f[R]) .IP "4." 3 نام فایل (مانند \f[CR]README*\f[R]) .IP "5." 3 نام فایل (مانند \f[CR]*README\f[R]) .IP "6." 3 نام پایه فایل (مانند \f[CR]README.*\f[R]) .IP "7." 3 پسوند فایل (مانند \f[CR]*.txt\f[R]) .IP "8." 3 پیش‌فرض (مانند \f[CR]fi\f[R]) .PP برای نمونه، برای یک فایل متنی معمولی \f[CR]/path/to/README.txt\f[R]، مدخل‌های زیر به ترتیب در پیکربندی بررسی شده و نخستین مورد منطبق به کار می‌رود: .IP "1." 3 \f[CR]/path/to/README.txt\f[R] .IP "2." 3 (رد می‌شود زیرا فایل پوشه نیست) .IP "3." 3 (رد می‌شود زیرا فایل از نوع \f[CR]fi\f[R] است) .IP "4." 3 \f[CR]README.txt*\f[R] .IP "5." 3 \f[CR]*README.txt\f[R] .IP "6." 3 \f[CR]README.*\f[R] .IP "7." 3 \f[CR]*.txt\f[R] .IP "8." 3 \f[CR]fi\f[R] .PP برای یک پوشه معمولی \f[CR]/path/to/example.d\f[R] نیز مدخل‌های زیر بررسی می‌شوند: .IP "1." 3 \f[CR]/path/to/example.d\f[R] .IP "2." 3 \f[CR]example.d/\f[R] .IP "3." 3 \f[CR]di\f[R] .IP "4." 3 \f[CR]example.d*\f[R] .IP "5." 3 \f[CR]*example.d\f[R] .IP "6." 3 \f[CR]example.*\f[R] .IP "7." 3 \f[CR]*.d\f[R] .IP "8." 3 \f[CR]fi\f[R] .PP به دلایل کارایی، الگوهای شبیه گلوب تطبیق گلوب واقعی انجام نمی‌دهند. .PP برای نمونه، می‌توانید یک متغیر را به این شکل تنظیم کنید: .IP .EX export LF_COLORS=\(dq\(ti/Documents=01;31:\(ti/Downloads=01;31:\(ti/.local/share=01;31:\(ti/.config/lf/lfrc=31:.git/=01;32:.git*=32:*.gitignore=32:*Makefile=32:README.*=33:*.txt=34:*.md=34:ln=01;36:di=01;34:ex=01;32:\(dq .EE .PP قرار دادن همه موارد در یک خط ممکن است خوانایی را دشوار سازد؛ می‌توانید با اسکیپ کردن خطوط جدید به کمک بک‌اسلش آن را در چند سطر بنویسید: .IP .EX export LF_COLORS=\(dq\(rs \(ti/Documents=01;31:\(rs \(ti/Downloads=01;31:\(rs \(ti/.local/share=01;31:\(rs \(ti/.config/lf/lfrc=31:\(rs \&.git/=01;32:\(rs \&.git*=32:\(rs *.gitignore=32:\(rs *Makefile=32:\(rs README.*=33:\(rs *.txt=34:\(rs *.md=34:\(rs ln=01;36:\(rs di=01;34:\(rs ex=01;32:\(rs \(dq .EE .PP مدخل \f[CR]ln\f[R] از مقدار ویژه \f[CR]target\f[R] پشتیبانی می‌کند که از سبک مقصد پیوند برای استایل استفاده خواهد کرد. تعریف متغیری تا این حد طولانی در فایل پیکربندی شل شاید مطلوب نباشد؛ به جای آن می‌توانید از فایل colors (بخش \c .UR https://github.com/gokcehan/lf/blob/master/doc.md#configuration CONFIGURATION .UE \c ) استفاده نمایید. یک نمونه فایل colors در نشانی زیر موجود است: \c .UR https://github.com/gokcehan/lf/blob/master/etc/colors.example .UE \c \ همچنین می‌توانید به صفحه ویکی کدهای فرار ANSI در نشانی زیر مراجعه کنید: \c .UR https://en.wikipedia.org/wiki/ANSI_escape_code .UE \c .SH "آیکون‌ها (ICONS)" آیکون‌ها با استفاده از متغیر محیطی \f[CR]LF_ICONS\f[R] یا فایل icons (بخش \c .UR https://github.com/gokcehan/lf/blob/master/doc.md#configuration CONFIGURATION .UE \c ) پیکربندی می‌شوند. این متغیر از همان ساختار \f[CR]LS_COLORS/LF_COLORS\f[R] بهره می‌برد، اما به جای کدهای رنگ، از نویسه‌ها یا نمادهای تکی به عنوان مقدار استفاده می‌کند. مدخل \f[CR]ln\f[R] از مقدار ویژه \f[CR]target\f[R] برای انتخاب آیکون مقصد پیوند پشتیبانی می‌نماید. فایل icons شامل آرایه‌های جداشده با فاصله است و نویسه \f[CR]#\f[R] برای کامنت‌ها به کار می‌رود. هر سطر باید شامل ۱ تا ۳ ستون باشد: نوع فایل یا الگوی نام فایل، آیکون، و رنگ اختیاری آیکون. استفاده از تنها یک ستون، تمام قوانین مربوط به آن نوع یا نام را غیرفعال می‌کند. فراموش نکنید که برای نمایش آیکون‌ها عبارت \f[CR]set icons true\f[R] را به فایل \f[CR]lfrc\f[R] خود اضافه نمایید. مقادیر پیش‌فرض به ترتیبی که lf آن‌ها را تطبیق می‌دهد در زیر آمده است: .IP .EX ln l or l tw t ow d st t di d pi p so s bd b cd c su u sg g ex x fi \- .EE .PP یک نمونه فایل icons در نشانی زیر موجود است: \c .UR https://github.com/gokcehan/lf/blob/master/etc/icons.example .UE \c .PP یک نمونه فایل آیکون‌های رنگی نیز در نشانی زیر در دسترس است: \c .UR https://github.com/gokcehan/lf/blob/master/etc/icons_colored.example .UE \c .SH "خط‌کش (RULER)" خط‌کش می‌تواند با استفاده از گزینه \f[CR]rulerfile\f[R] پیکربندی شود (به بخش \c .UR https://github.com/gokcehan/lf/blob/master/doc.md#configuration CONFIGURATION .UE \c \ مراجعه کنید). محتوای فایل خط‌کش باید یک قالب زبان Go (Go template) باشد که سپس برای ایجاد خروجی واقعی رندر می‌شود (برای جزئیات بیشتر درباره نحو به \c .UR https://pkg.go.dev/text/template .UE \c \ مراجعه فرمایید). .PP فیلدهای داده زیر صادر می‌شوند: .IP .EX \&.Message string شامل پیام‌های داخلی، خطاها و پیام‌های دستورات echo/echomsg/echoerr \&.Keys string کلیدهای فشرده‌شده توسط کاربر \&.Progress []string نشانگرهای پیشرفت فایل‌های کپی‌شده، جابجاشده و حذف‌شده \&.Copy []string فهرست فایل‌های آماده کپی در کلیپ‌بورد \&.Cut []string فهرست فایل‌های آماده انتقال در کلیپ‌بورد \&.Select []string فهرست فایل‌های انتخاب‌شده \&.Visual []string محدوده انتخاب بصری \&.Index int موقعیت نشانگر (اندیس) \&.Total int تعداد فایل‌های مرئی در پوشه کاری جاری \&.Hidden int تعداد فایل‌های مخفی در پوشه کاری جاری \&.All int تعداد کل فایل‌ها در پوشه کاری جاری \&.LinePercentage string درصد سطر جاری (مشابه %p در گزینه statusline ویم) \&.ScrollPercentage string درصد پیمایش (مشابه %P در گزینه statusline ویم) \&.Filter []string فیلتر در حال اعمال \&.Mode string حالت جاری (NORMAL برای حالت عادی و VISUAL برای حالت بصری) \&.Options map[string]string مقدار گزینه‌ها (مثلاً {{.Options.hidden}}) \&.UserOptions map[string]string مقدار گزینه‌های تعریف‌شده توسط کاربر (مثلاً {{.UserOptions.foo}}) \&.Stat.Path string مسیر فایل جاری \&.Stat.Name string نام فایل جاری \&.Stat.Extension string پسوند فایل جاری \&.Stat.Size int64 اندازه فایل جاری \&.Stat.DirSize int64 اندازه کل پوشه جاری در صورت محاسبه با calcdirsize \&.Stat.DirCount int تعداد اقلام پوشه جاری در صورت فعال بودن گزینه dircounts \&.Stat.Permissions string مجوزها و دسترسی‌های فایل جاری \&.Stat.ModTime string زمان آخرین ویرایش فایل جاری (با فرمت گزینه timefmt) \&.Stat.AccessTime string زمان آخرین دسترسی به فایل جاری (با فرمت گزینه timefmt) \&.Stat.BirthTime string زمان ایجاد فایل جاری (با فرمت گزینه timefmt) \&.Stat.ChangeTime string زمان آخرین تغییر وضعیت اینود فایل جاری (با فرمت گزینه timefmt) \&.Stat.LinkCount string تعداد پیوندهای سخت فایل جاری \&.Stat.User string کاربر مالک فایل جاری \&.Stat.Group string گروه مالک فایل جاری \&.Stat.Target string مقصد پیوند نمادین در صورت پیوند بودن، وگرنه رشته خالی \&.Stat.CustomInfo string ویژگی سفارشی تعریف‌شده با addcustominfo، وگرنه رشته خالی .EE .PP توابع زیر در قالب در دسترس هستند: .IP .EX df func() string دریافت نشانگر میزان فضای خالی در دسترس روی دیسک env func(string) string دریافت مقدار یک متغیر محیطی humanize func(int64) string نمایش حجم فایل در قالبی خوانا برای انسان join func([]string, string) string اتصال عناصر یک آرایه رشته‌ای با یک جداکننده lower func(string) string تبدیل یک رشته به حروف کوچک substr func(string, int, int) string دریافت زیررشته بر اساس اندیس شروع و طول upper func(string) string تبدیل یک رشته به حروف بزرگ .EE .PP شناسه ویژه \f[CR]{{.SPACER}}\f[R] می‌تواند برای تقسیم خط‌کش به بخش‌هایی با فاصله مساوی از یکدیگر به کار رود. .PP فایل خط‌کش پیش‌فرض در نشانی زیر موجود است: \c .UR https://github.com/gokcehan/lf/blob/master/etc/ruler.default .UE \c