LF(1) DOCUMENTATION LF(1)

lf - مدیر فایل متنی و ترمینالی

lf [-command command] [-config path] [-cpuprofile path] [-doc] [-help] [-last-dir-path path] [-log path] [-memprofile path] [-print-last-dir] [-print-selection] [-remote command] [-selection-path path] [-server] [-single] [-version] [cd-or-select-path]

lf یک مدیر فایل قدرتمند برای محیط خط فرمان و ترمینال است.

کد منبع این برنامه در مخزن گیت به نشانی زیر در دسترس است: https://github.com/gokcehan/lf

این مستندات را می‌توان درون ترمینال با اجرای دستور lf -doc یا به صورت آنلاین در نشانی زیر مطالعه کرد: https://github.com/gokcehan/lf/blob/master/doc.md همچنین می‌توانید از دستور help (به‌طور پیش‌فرض <f-1>) درون lf برای مشاهده مستندات در یک صفحه‌بند (pager) استفاده کنید. صفحه راهنمایی (man page) با همین محتوا نیز در مخزن پروژه موجود است: https://github.com/gokcehan/lf/blob/master/lf.1

cd-or-select-path
مکان شروع را تعیین می‌کند. اگر path یک پوشه باشد، برنامه در همان پوشه اجرا می‌شود. اگر یک فایل باشد، برنامه در پوشه والد آن باز شده و فایل مورد نظر به حالت انتخاب درمی‌آید. چنانچه هیچ path مشخص نشود، lf از پوشه جاری استفاده می‌کند. تنها یک آرگومان پذیرفته می‌شود.

نمایش مستندات کامل lf (مشابه با همین فایل) و خروج.
نمایش راهنمای استفاده در خط فرمان و خروج.
نمایش اطلاعات نسخه و خروج.

اجرای command در هنگام مقداردهی اولیه کلاینت (یعنی پس از خواندن پیکربندی و پیش از on-init). برای اجرای بیش از یک دستور، می‌توانید سوییچ -command را چند بار به کار ببرید یا چندین دستور را به کمک «;» زنجیره کنید.
استفاده از فایل پیکربندی در مسیر path به جای مسیرهای پیش‌فرض جستجو. این گزینه فقط مشخص می‌کند که کدام فایل lfrc در زمان راه‌اندازی خوانده شود.

چاپ آخرین پوشه بازدیدشده در خروجی استاندارد (stdout) هنگام خروج از lf. این ویژگی برای تغییر پوشه کاری شل توسط lf کاربرد دارد. برای جزئیات بیشتر به بخش CHANGING DIRECTORY مراجعه کنید.
مشابه -print-last-dir، اما مسیر پوشه را به جای خروجی استاندارد در فایل path ذخیره می‌کند.
چاپ فایل‌های انتخاب‌شده در خروجی استاندارد هنگام باز کردن یک فایل در lf. این گزینه برای استفاده از lf به عنوان دیالوگ انتخاب فایل (open file) کاربرد دارد. ابتدا فایل‌های مورد نظرتان را برای ارسال به برنامه‌ای دیگر انتخاب کنید. سپس با فشردن کلید باز کردن فایل، انتخاب را تایید نمایید. این کار باعث خروج از lf و چاپ موارد انتخاب‌شده در خروجی می‌شود. خروج زودهنگام از lf انتخاب‌ها را لغو خواهد کرد.
مشابه -print-selection، اما فهرست جداشده با خط جدید را به جای خروجی استاندارد در path می‌نویسد.

ارسال command به سرور در حال اجرا (مانند send، query، list، quit یا quit!). برای اطلاعات بیشتر به بخش REMOTE COMMANDS مراجعه کنید.
راه‌اندازی صریح فرآیند سرور (بدون رابط کاربری متنی). سرور در پیش‌زمینه اجرا شده و گزارش‌ها را به خطای استاندارد (یا فایل مشخص‌شده با -log) ارسال می‌کند. کلاینت‌ها در صورت در دسترس نبودن سرور، به طور خودکار آن را اجرا می‌کنند مگر اینکه از -single استفاده شود.
راه‌اندازی یک کلاینت مستقل بدون سرور. کنترل از راه دور (remote control) در این حالت غیرفعال خواهد بود.

افزودن لاگ‌های زمان اجرا به فایل path.
نوشتن پروفایل پردازنده (CPU profile) در مسیر path. این پروفایل از طریق go tool pprof قابل تحلیل است.
نوشتن پروفایل حافظه (memory profile) در مسیر path. این پروفایل از طریق go tool pprof قابل تحلیل است.

استفاده از lf برای انتخاب فایل‌ها (همراه با مخفی‌سازی برخی فرمت‌های فایل):

lf -command 'set nohidden' -command 'set hiddenfiles "*mp4:*pdf:*txt"' -print-selection

یک دیالوگ پیشرفته برای «انتخاب فایل» با چیدمان و ظاهر سفارشی:

lf -command 'set nopreview; set ratios 1; set drawbox; set promptfmt "Select files [%w] %S q: cancel, l: confirm"' -print-selection

باز کردن پوشه Downloads و تنظیم sortby و info بر اساس تاریخ ایجاد:

lf -command 'set sortby btime; set info btime' ~/Downloads

جلوگیری موقت از ثبت دستورات در تاریخچه توسط lf:

lf -command 'set nohistory'

استفاده از پیکربندی پیش‌فرض و ثبت لاگ نشست جاری:

lf -config /dev/null -log /tmp/lf.log

خروج اجباری از سرور:

lf -remote 'quit!'

تنظیم پوشه کاری جاری شل مطابق با پوشه خروجی lf:

cd "$(lf -print-last-dir)"

دستورات زیر توسط lf ارائه شده‌اند:

quit                     (default 'q')
up                       (default 'k' and '<up>')
half-up                  (default '<c-u>')
page-up                  (default '<c-b>' and '<pgup>')
scroll-up                (default '<c-y>')
down                     (default 'j' and '<down>')
half-down                (default '<c-d>')
page-down                (default '<c-f>' and '<pgdn>')
scroll-down              (default '<c-e>')
updir                    (default 'h' and '<left>')
open                     (default 'l' and '<right>')
jump-next                (default ']')
jump-prev                (default '[')
top                      (default 'gg' and '<home>')
bottom                   (default 'G' and '<end>')
high                     (default 'H')
middle                   (default 'M')
low                      (default 'L')
toggle
invert                   (default 'v')
unselect                 (default 'u')
glob-select
glob-unselect
copy                     (default 'y')
cut                      (default 'd')
paste                    (default 'p')
clear                    (default 'c')
sync
draw
redraw                   (default '<c-l>')
load
reload                   (default '<c-r>')
delete         (modal)
rename         (modal)   (default 'r')
read           (modal)   (default ':')
shell          (modal)   (default '$')
shell-pipe     (modal)   (default '%')
shell-wait     (modal)   (default '!')
shell-async    (modal)   (default '&')
find           (modal)   (default 'f')
find-back      (modal)   (default 'F')
find-next                (default ';')
find-prev                (default ',')
search         (modal)   (default '/')
search-back    (modal)   (default '?')
search-next              (default 'n')
search-prev              (default 'N')
filter         (modal)
setfilter
mark-save      (modal)   (default 'm')
mark-load      (modal)   (default "'")
mark-remove    (modal)   (default '"')
tag
tag-toggle               (default 't')
echo
echomsg
echoerr
cd
select
source
push
addcustominfo
calcdirsize
clearmaps
tty-write
visual                   (default 'V')

دستورات حالت بصری (Visual mode) زیر توسط lf ارائه شده‌اند:

visual-accept            (default 'V')
visual-unselect
visual-discard           (default '<esc>')
visual-change            (default 'o')

دستورات حالت خط فرمان (Command-line mode) زیر توسط lf ارائه شده‌اند:

cmd-insert
cmd-escape               (default '<esc>')
cmd-complete             (default '<tab>')
cmd-menu-complete
cmd-menu-complete-back
cmd-menu-accept
cmd-menu-discard
cmd-enter                (default '<c-j>' and '<enter>')
cmd-interrupt            (default '<c-c>')
cmd-history-next         (default '<c-n>' and '<down>')
cmd-history-prev         (default '<c-p>' and '<up>')
cmd-left                 (default '<c-b>' and '<left>')
cmd-right                (default '<c-f>' and '<right>')
cmd-home                 (default '<c-a>' and '<home>')
cmd-end                  (default '<c-e>' and '<end>')
cmd-delete               (default '<c-d>' and '<delete>')
cmd-delete-back          (default '<backspace>')
cmd-delete-home          (default '<c-u>')
cmd-delete-end           (default '<c-k>')
cmd-delete-unix-word     (default '<c-w>')
cmd-yank                 (default '<c-y>')
cmd-transpose            (default '<c-t>')
cmd-transpose-word       (default '<a-t>')
cmd-word                 (default '<a-f>')
cmd-word-back            (default '<a-b>')
cmd-delete-word          (default '<a-d>')
cmd-delete-word-back     (default '<a-backspace>')
cmd-capitalize-word      (default '<a-c>')
cmd-uppercase-word       (default '<a-u>')
cmd-lowercase-word       (default '<a-l>')

گزینه‌های زیر می‌توانند برای سفارشی‌سازی رفتار lf استفاده شوند:

anchorfind        bool      (default true)
autoquit          bool      (default true)
borderfmt         string    (default "\033[0m")
borderstyle       string    (default 'box')
cleaner           string    (default '')
copyfmt           string    (default "\033[7;33m")
cursoractivefmt   string    (default "\033[7m")
cursorparentfmt   string    (default "\033[7m")
cursorpreviewfmt  string    (default "\033[4m")
cutfmt            string    (default "\033[7;31m")
dircounts         bool      (default false)
dirfirst          bool      (default true)
dironly           bool      (default false)
dirpreviews       bool      (default false)
drawbox           bool      (default false)
dupfilefmt        string    (default '%f.~%n~')
errorfmt          string    (default "\033[7;31;47m")
filesep           string    (default "\n")
filtermethod      string    (default 'text')
findlen           int       (default 1)
hidden            bool      (default false)
hiddenfiles       []string  (default '.*' for Unix and '' for Windows)
history           bool      (default true)
icons             bool      (default false)
ifs               string    (default '')
ignorecase        bool      (default true)
ignoredia         bool      (default true)
incfilter         bool      (default false)
incsearch         bool      (default false)
info              []string  (default '')
infotimefmtnew    string    (default 'Jan _2 15:04')
infotimefmtold    string    (default 'Jan _2  2006')
menufmt           string    (default "\033[0m")
menuheaderfmt     string    (default "\033[1m")
menuselectfmt     string    (default "\033[7m")
mergeindicators   bool      (default false)
mouse             bool      (default false)
number            bool      (default false)
numbercursorfmt   string    (default '')
numberfmt         string    (default "\033[33m")
period            int       (default 0)
preload           bool      (default false)
preserve          []string  (default "mode")
preview           bool      (default true)
previewer         string    (default '')
promptfmt         string    (default "\033[32;1m%u@%h\033[0m:\033[34;1m%d\033[0m\033[1m%f\033[0m")
ratios            []int     (default '1:2:3')
relativenumber    bool      (default false)
reverse           bool      (default false)
rulerfile         string    (default "")
rulerfmt          string    (default "")
scrolloff         int       (default 0)
searchmethod      string    (default 'text')
selectfmt         string    (default "\033[7;35m")
selmode           string    (default 'all')
shell             string    (default 'sh' for Unix and 'cmd' for Windows)
shellflag         string    (default '-c' for Unix and '/c' for Windows)
shellopts         []string  (default '')
showbinds         bool      (default true)
sizeunits         string    (default 'binary')
smartcase         bool      (default true)
smartdia          bool      (default false)
sortby            string    (default 'natural')
sortignorecase    bool      (default true)
sortignoredia     bool      (default true)
statfmt           string    (default "\033[36m%p\033[0m| %c| %u| %g| %S| %t| -> %l")
tabstop           int       (default 8)
tagfmt            string    (default "\033[31m")
tempmarks         string    (default '')
terminalcursor    string    (default 'default')
timefmt           string    (default 'Mon Jan _2 15:04:05 2006')
truncatechar      string    (default '~')
truncatepct       int       (default 100)
visualfmt         string    (default "\033[7;36m")
waitmsg           string    (default 'Press any key to continue')
watch             bool      (default false)
wrapscan          bool      (default true)
wrapscroll        bool      (default false)
user_{option}     string    (default none)

متغیرهای محیطی زیر برای دستورات شل در دسترس هستند:

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

دستورات شل ویژه زیر در صورت تعریف شدن، برای شخصی‌سازی رفتار lf استفاده می‌شوند:

open
paste
rename
delete
pre-cd
on-cd
on-load
on-focus-gained
on-focus-lost
on-init
on-select
on-redraw
on-quit

دستورات و کلیدهای میانبر زیر به طور پیش‌فرض تعریف شده‌اند:

Unix
cmd open &$OPENER "$f"
map e $$EDITOR "$f"
map i $$PAGER "$f"
map w $$SHELL
cmd help $$lf -doc | $PAGER
map <f-1> help
cmd maps $lf -remote "query $id maps" | $PAGER
cmd nmaps $lf -remote "query $id nmaps" | $PAGER
cmd vmaps $lf -remote "query $id vmaps" | $PAGER
cmd cmaps $lf -remote "query $id cmaps" | $PAGER
cmd cmds $lf -remote "query $id cmds" | $PAGER
Windows
cmd open &%OPENER% %f%
map e $%EDITOR% %f%
map i !%PAGER% %f%
map w $%SHELL%
cmd help !%lf% -doc | %PAGER%
map <f-1> help
cmd maps !%lf% -remote "query %id% maps" | %PAGER%
cmd nmaps !%lf% -remote "query %id% nmaps" | %PAGER%
cmd vmaps !%lf% -remote "query %id% vmaps" | %PAGER%
cmd cmaps !%lf% -remote "query %id% cmaps" | %PAGER%
cmd cmds !%lf% -remote "query %id% cmds" | %PAGER%

تنظیمات پیش‌فرض برای ویندوز از نگارش cmd استفاده می‌کنند. یک فایل پیکربندی سازگار با PowerShell در نشانی زیر در دسترس است: https://github.com/gokcehan/lf/blob/master/etc/lfrc.ps1.example

کلیدهای میانبر تکمیلی زیر نیز به طور پیش‌فرض ارائه شده‌اند:

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 ~
nmap <space> :toggle; down

در صورتی که گزینه mouse فعال باشد، دکمه‌های ماوس کارکردهای پیش‌فرض زیر را خواهند داشت:

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.

فایل‌های پیکربندی باید در مسیرهای زیر قرار گیرند:

OS       system-wide               user-specific
Unix     /etc/lf/lfrc              ~/.config/lf/lfrc
Windows  C:\ProgramData\lf\lfrc    C:\Users\<user>\AppData\Roaming\lf\lfrc

فایل رنگ‌ها (colors) باید در مسیرهای زیر قرار گیرد:

OS       system-wide               user-specific
Unix     /etc/lf/colors            ~/.config/lf/colors
Windows  C:\ProgramData\lf\colors  C:\Users\<user>\AppData\Roaming\lf\colors

فایل آیکون‌ها (icons) باید در مسیرهای زیر قرار گیرد:

OS       system-wide               user-specific
Unix     /etc/lf/icons             ~/.config/lf/icons
Windows  C:\ProgramData\lf\icons   C:\Users\<user>\AppData\Roaming\lf\icons

فایل موارد انتخاب‌شده (selection) در مسیرهای زیر ذخیره می‌شود:

Unix     ~/.local/share/lf/files
Windows  C:\Users\<user>\AppData\Local\lf\files

فایل نشانک‌ها (marks) در مسیرهای زیر قرار می‌گیرد:

Unix     ~/.local/share/lf/marks
Windows  C:\Users\<user>\AppData\Local\lf\marks

فایل تگ‌ها (tags) در مسیرهای زیر قرار می‌گیرد:

Unix     ~/.local/share/lf/tags
Windows  C:\Users\<user>\AppData\Local\lf\tags

فایل تاریخچه (history) در مسیرهای زیر نگهداری می‌شود:

Unix     ~/.local/share/lf/history
Windows  C:\Users\<user>\AppData\Local\lf\history

می‌توانید این مسیرها را با استفاده از متغیرهای زیر که بر اساس اولویت و مقادیر پیش‌فرض فهرست شده‌اند تنظیم کنید:

Unix
    $LF_CONFIG_HOME
    $XDG_CONFIG_HOME
    ~/.config
    $LF_DATA_HOME
    $XDG_DATA_HOME
    ~/.local/share
Windows
    %LF_CONFIG_HOME%
    %XDG_CONFIG_HOME%
    %APPDATA%
    %LF_DATA_HOME%
    %XDG_DATA_HOME%
    %LOCALAPPDATA%

یک نمونه فایل پیکربندی در نشانی زیر در دسترس است: https://github.com/gokcehan/lf/blob/master/etc/lfrc.example

این بخش اطلاعات مربوط به دستورات توکار (built-in) را ارائه می‌دهد. دستورات حالتی (Modal commands) هیچ آرگومانی نمی‌پذیرند، بلکه حالت عملکرد را تغییر می‌دهند تا ورودی را به سادگی دریافت کنند، بنابراین برای انتساب به کلیدهای میانبر طراحی شده‌اند.

خروج از lf و بازگشت به خط فرمان شل.

حرکت یا پیمایش انتخاب فایل جاری به سمت بالا یا پایین به اندازه یک خط، نیم صفحه یا یک صفحه کامل.

تغییر پوشه کاری جاری به پوشه والد (یک سطح بالاتر).

اگر فایل جاری یک پوشه باشد، پوشه کاری به آن تغییر می‌کند؛ در غیر این صورت، دستور open اجرا می‌شود. یک دستور پیش‌فرض open برای فراخوانی ناهمگام ابزار بازکننده پیش‌فرض سیستم همراه با فایل جاری تعبیه شده است. می‌توان دستور open سفارشی برای تغییر این رفتار پیش‌فرض تعریف کرد.

تغییر پوشه کاری جاری به مورد بعدی یا قبلی در فهرست پرش (jumplist).

انتقال نشانگر انتخاب فایل به ابتدای یا انتهای پوشه. می‌توان یک شمارنده برای رفتن به سطری مشخص تعیین کرد؛ مثلاً از 3G برای رفتن به سطر سوم استفاده کنید.

انتقال نشانگر انتخاب فایل به بالای صفحه، وسط صفحه یا پایین صفحه نمایش.

تغییر وضعیت انتخاب برای فایل جاری یا فایل‌های مشخص‌شده به عنوان آرگومان.

معکوس کردن وضعیت انتخاب تمام فایل‌های موجود در پوشه جاری (یعنی اجرای toggle روی همه فایل‌ها). فایل‌های انتخاب‌شده در سایر پوشه‌ها با این دستور تغییری نمی‌کنند. می‌توانید با ترکیب invert و unselect دستور جدیدی برای انتخاب تمامی فایل‌ها بسازید (مانند cmd select-all :unselect; invert)، هرچند این کار انتخاب‌های سایر پوشه‌ها را نیز پاک می‌کند.

لغو انتخاب تمام فایل‌ها در همه پوشه‌ها.

انتخاب یا لغو انتخاب فایل‌هایی که با الگوی گلوب داده‌شده تطابق دارند.

ذخیره مسیر فایل‌های انتخاب‌شده در کلیپ‌بورد به عنوان فایل‌های آماده کپی. اگر هیچ فایلی انتخاب نشده باشد، مسیر فایل جاری استفاده می‌شود.

ذخیره مسیر فایل‌های انتخاب‌شده در کلیپ‌بورد به عنوان فایل‌های آماده انتقال (Move). اگر هیچ فایلی انتخاب نشده باشد، مسیر فایل جاری استفاده می‌شود.

کپی یا انتقال فایل‌های موجود در کلیپ‌بورد به پوشه کاری جاری. امکان تعریف دستور paste سفارشی برای تغییر این رفتار پیش‌فرض وجود دارد.

پاک کردن مسیرهای فایل ذخیره‌شده در کلیپ‌بورد.

همگام‌سازی فایل‌های کپی یا بریده‌شده با سرور. این دستور در صورت نیاز به طور خودکار فراخوانی می‌شود.

رسم مجدد صفحه نمایش. این دستور در صورت نیاز به طور خودکار فراخوانی می‌شود.

همگام‌سازی ترمینال و بازطراحی کامل صفحه.

بارگذاری فایل‌ها و پوشه‌های تغییر یافته. این دستور هنگام نیاز به صورت خودکار اجرا می‌شود.

تخلیه حافظه موقت (cache) و بارگذاری مجدد کلیه فایل‌ها و پوشه‌ها.

حذف فایل جاری یا فایل‌های انتخاب‌شده. می‌توان با تعریف دستور delete سفارشی رفتار پیش‌فرض را تغییر داد.

تغییر نام فایل جاری با استفاده از روش داخلی برنامه. می‌توان دستور سفارشی rename برای لغو این رفتار پیش‌فرض تعریف کرد.

خواندن یک دستور برای ارزیابی و اجرا.

دریافت یک دستور شل برای اجرا.

دریافت یک دستور شل برای اجرا به گونه‌ای که ورودی/خروجی استاندارد آن به خط وضعیت پایینی متصل شود.

دریافت یک دستور شل برای اجرا و توقف تا زمان فشردن یک کلید پس از پایان.

دریافت یک دستور شل برای اجرای ناهمگام و در پس‌زمینه بدون ورودی/خروجی استاندارد.

دریافت کلید(ها) برای یافتن نام فایل منطبق در جهت جلو یا عقب و پرش به مورد منطبق بعدی یا قبلی.

دریافت یک الگو برای جستجوی نام فایل در جهت جلو یا عقب و پرش به نتیجه بعدی یا قبلی.

دستور filter الگویی را دریافت می‌کند تا فایل‌ها را فیلتر کرده و تنها موارد منطبق را نمایش دهد. دستور setfilter عملکرد مشابهی دارد اما الگو را از طریق آرگومان دریافت کرده و بلافاصله اعمال می‌کند. می‌توانید آرگومانی به filter ارسال کنید تا به عنوان متن ابتدایی پرامپت قرار گیرد.

ذخیره پوشه جاری به عنوان نشانک (bookmark) منتسب به کلید مشخص‌شده.

تغییر پوشه جاری به نشانک منتسب به کلید داده‌شده. نشانک ویژه ' پوشه قبلی را پس از اجرای دستورات mark-load، cd یا select نگه می‌دارد.

حذف نشانک منتسب به کلید داده‌شده.

تگ‌گذاری یک فایل با علامت * یا یک نویسه تک‌عرضی مشخص‌شده در آرگومان. می‌توانید با ترکیب tag با tag-toggle دستور جدیدی برای پاک کردن تگ‌ها تعریف کنید (مانند cmd tag-clear :tag; tag-toggle).

تگ‌گذاری یک فایل با * یا نویسه داده‌شده در صورتی که فایل تگ نداشته باشد؛ در غیر این صورت تگ حذف می‌شود.

چاپ آرگومان‌های داده‌شده در خط پیام در پایین صفحه.

چاپ آرگومان‌های داده‌شده در خط پیام در پایین صفحه و همچنین ذخیره در فایل لاگ.

چاپ آرگومان‌های داده‌شده در خط پیام در پایین با فرمت errorfmt و همچنین ثبت در فایل لاگ.

تغییر پوشه کاری به مسیر مشخص‌شده در آرگومان.

تغییر انتخاب فایل جاری به مورد داده‌شده در آرگومان.

خواندن و اعمال فایل پیکربندی مشخص‌شده در آرگومان.

شبیه‌سازی فشردن کلیدهای داده‌شده در آرگومان.

به‌روزرسانی اطلاعات سفارشی (custom) و فیلد .Stat.CustomInfo برای فایل داده‌شده با رشته مشخص‌شده. این رشته می‌تواند شامل کدهای فرار ANSI برای سفارشی‌سازی ظاهر متن باشد. اگر اطلاعاتی مشخص نشود، اطلاعات سفارشی فایل پاک خواهد شد.

محاسبه حجم کل برای تک‌تک پوشه‌های انتخاب‌شده. گزینه info باید شامل size بوده و گزینه dircounts باید غیرفعال باشد تا این اندازه نمایش داده شود. اگر حجم کل یک پوشه محاسبه نشده باشد، با علامت - نشان داده می‌شود.

حذف تمامی میانبرهای کلیدی منتسب به دستورات map، nmap و vmap. این دستور را می‌توان در فایل پیکربندی برای حذف کلیدهای میانبر پیش‌فرض قرار داد. به دلایل امنیتی، کلید : همچنان به دستور read متصل می‌ماند و میانبرهای cmap حفظ می‌شوند تا خروج از lf با :quit همواره امکان‌پذیر باشد.

نوشتن رشته داده‌شده در tty. این دستور برای ارسال دنباله‌های فرار (escape sequences) به ترمینال جهت کنترل رفتار آن مفید است (مانند OSC 0 برای تنظیم عنوان پنجره). استفاده از tty-write به نوشتن مستقیم در /dev/tty ارجحیت دارد؛ زیرا دومی همگام‌سازی‌نشده است و می‌تواند در رسم رابط کاربری تداخل ایجاد کند.

جابجایی به حالت بصری (Visual mode). اگر هم‌اکنون در حالت بصری باشید، انتخاب بصری لغو شده و در همین حالت باقی می‌ماند.

افزودن انتخاب بصری به فهرست انتخاب‌ها، خروج از حالت بصری و بازگشت به حالت عادی.

حذف انتخاب بصری از فهرست انتخاب‌ها، خروج از حالت بصری و بازگشت به حالت عادی.

لغو انتخاب بصری، خروج از حالت بصری و بازگشت به حالت عادی.

رفتن به انتهای دیگرِ محدوده انتخاب در حالت بصری جاری.

نویسه اعلان (prompt) مشخص می‌کند که در کدام‌یک از چندین حالت خط فرمان قرار دارید. برای مثال، دستور read شما را به حالت : می‌برد.

هنگامی که نشانگر روی نویسه اول در حالت : قرار دارد، فشردن یکی از کلیدهای !، $، % یا & شما را به حالت مربوطه منتقل می‌کند. می‌توانید با دستور cmd-delete-back (به طور پیش‌فرض <backspace>) به حالت قبلی بازگردید.

دستورات خط فرمان عمدتاً با کلیدهای میانبر readline سازگار هستند. منظور از یک نویسه، یک کدپوینت یونیکد است؛ یک کلمه شامل حروف و ارقام بوده و یک کلمه یونیکسی شامل هرگونه نویسه غیرخالی است.

درج نویسه مشخص‌شده در آرگومان. این دستور در صورت نیاز به طور خودکار فراخوانی می‌شود.

خروج از حالت خط فرمان و بازگشت به حالت عادی.

تکمیل خودکار کلمه جاری.

تکمیل خودکار کلمه جاری از طریق منوی انتخاب. لازم است کلیدهایی برای این دستورات تعریف کنید (مانند cmap <tab> cmd-menu-complete; cmap <backtab> cmd-menu-complete-back). می‌توانید از کلیدهای اختصاص‌یافته برای نمایش منو و سپس پیمایش میان گزینه‌های تکمیل استفاده کنید.

تایید گزینه انتخاب‌شده فعلی در منوی تکمیل خودکار و بستن منو.

لغو گزینه انتخاب‌شده فعلی در منوی تکمیل خودکار و بستن منو.

اجرای خط جاری.

قطع دستور شل جاری در حال پایپ و بازگشت به حالت عادی.

رفتن به مدخل بعدی یا قبلی در تاریخچه دستورات. چنانچه بخشی از دستور تایپ شده باشد، تنها موارد منطبق در نظر گرفته می‌شوند و موارد تکراری متوالی رد خواهند شد.

حرکت نشانگر به سمت چپ یا راست.

انتقال نشانگر به ابتدا یا انتهای خط.

حذف نویسه بعدی.

حذف نویسه قبلی. در ابتدای اعلان، برنامه به حالت عادی یا حالت : بازمی‌گردد.

حذف تمام متن تا ابتدا یا انتهای خط.

حذف کلمه یونیکسی قبلی.

چسباندن (paste) محتوای بافر حاوی آخرین مورد حذف‌شده.

جابجا کردن نویسه‌های قبل و بعد از نشانگر و حرکت نشانگر به جلو. اگر نویسه‌ای پس از نشانگر نباشد، دو نویسه قبلی جابجا می‌شوند.

جابجا کردن کلمات قبل و بعد از نشانگر و حرکت نشانگر به جلو. اگر کلمه‌ای پس از نشانگر نباشد، دو کلمه قبلی جابجا می‌شوند.

حرکت نشانگر به اندازه یک کلمه به جلو یا عقب.

حذف کلمه بعدی در جهت جلو.

حذف کلمه قبلی در جهت عقب.

تبدیل حرف اول به بزرگ / تبدیل کل کلمه به حروف بزرگ / تبدیل به حروف کوچک برای کلمه جاری و پرش به کلمه بعدی.

این بخش اطلاعات مربوط به گزینه‌های سفارشی‌سازی رفتار برنامه را ارائه می‌دهد. نویسه : به عنوان جداکننده در گزینه‌های فهرستی از نوع []int و []string به کار می‌رود.

هنگامی که این گزینه فعال باشد، دستور find الگوها را از ابتدای نام فایل‌ها تطبیق می‌دهد؛ در غیر این صورت، تطبیق می‌تواند از هر جای نام فایل انجام شود.

خروج خودکار از سرور هنگامی که هیچ کلاینتی متصل نمانده باشد.

رشته قالب‌بندی نویسه‌های کادر و حاشیه.

سبک حاشیه‌بندی مورد استفاده توسط drawbox.

سبک‌های زیر پشتیبانی می‌شوند:

box           کادر دور تمام پنجره‌ها و جداکننده بین آن‌ها
roundbox      مشابه box اما با گوشه‌های گرد بیرونی
outline       کادر دور تمام پنجره‌ها
roundoutline  مشابه outline با گوشه‌های گرد بیرونی
separators    تنها خطوط جداکننده بین پنجره‌ها

تنظیم مسیر فایل پاک‌کننده پیش‌نمایش (cleaner). این فایل باید دسترسی اجرایی داشته باشد. در صورتی که پیش‌نمایش فعال باشد، اسکریپت previewer تنظیم شده باشد، و حافظه موقت فایل انتخابی قبلی غیرفعال شده باشد، این فایل اجرا خواهد شد. آرگومان‌های زیر به ترتیب به فایل ارسال می‌شوند: (1) نام فایل جاری، (2) عرض، (3) ارتفاع، (4) موقعیت افقی، (5) موقعیت عمودی پنجره پیش‌نمایش و (6) نام فایل بعدی که باید پیش‌نمایش شود. در صورتی که این گزینه خالی رها شود، پاک‌سازی پیش‌نمایش غیرفعال خواهد بود.

رشته قالب‌بندی نشانگر فایل‌های آماده برای کپی.

رشته‌های قالب‌بندی برای برجسته‌سازی نشانگر. cursoractivefmt در پنجره پوشه جاری، cursorparentfmt در پنجره‌های والد، و cursorpreviewfmt در پنجره‌های پیش‌نمایش پوشه‌ها اعمال می‌شود.

حالت پیش‌فرض این است که نشانگر فعال و نشانگر پوشه والد به صورت رنگ معکوس (inverted) باشند. نشانگر پیش‌نمایش نیز زیرخط‌دار (underlined) نمایش داده می‌شود.

حالت‌های دیگری که می‌توان برای نشانگر والد یا پیش‌نمایش در نظر گرفت: یک رشته خالی برای عدم نمایش نشانگر، \033[7;2m برای متن کم‌نور با رنگ معکوس، و \033[7;90m برای متن معکوس با پس‌زمینه خاکستری.

اگر رشته قالب شامل نویسه‌های %s باشد، به عنوان رشته قالب برای fmt.Sprintf در نظر گرفته می‌شود. چنین رشته‌ای باید با دنباله بازنشانی ترمینال پایان یابد. برای مثال، \033[4m%s\033[0m اثری مشابه با \033[4m خواهد داشت.

رشته قالب‌بندی نشانگر فایل‌های بریده‌شده (cut).

هنگامی که این گزینه فعال باشد، اندازه پوشه‌ها تعداد اقلام درون آن‌ها را به جای حجم کل نشان می‌دهد (که باید به ازای هر پوشه با calcdirsize محاسبه شود). این اطلاعات از طریق خواندن پوشه و شمارش اقلام درون آن به دست می‌آید؛ بنابراین به دلایل کارایی و عملکرد به طور پیش‌فرض غیرفعال است. این گزینه تنها زمانی اثرگذار است که info شامل فیلد size باشد و عرض پنجره برای نمایش آن کافی باشد. حداکثر ۹۹۹۹ قلم در هر پوشه شمرده می‌شود و پوشه‌های بزرگتر به صورت 9999+ نمایش می‌یابند.

نمایش پوشه‌ها بالاتر از فایل‌های معمولی. با فعال بودن گزینه dircounts، مرتب‌سازی بر اساس size همواره بدون توجه به dirfirst، پوشه‌ها و فایل‌ها را از هم تفکیک می‌کند.

نمایش انحصاری پوشه‌ها و مخفی کردن فایل‌ها.

در صورت فعال بودن، پوشه‌ها نیز به اسکریپت پیش‌نمایش ارسال می‌شوند تا امکان ارائه پیش‌نمایش سفارشی برای پوشه‌ها فراهم شود.

رسم حاشیه و خطوط کادر دور پنجره‌ها با استفاده از نویسه‌های کادرسازی.

رشته قالب‌بندی نام فایل هنگام ایجاد فایل‌های تکراری (duplicate). با قالب پیش‌فرض، کپی کردن فایل abc.txt در همان پوشه منجر به ایجاد فایلی به نام abc.txt.~1~ خواهد شد. متغیرهای جانشین عبارتند از: %f برای نام فایل، %b برای نام پایه فایل (بدون پسوند)، %e برای پسوند فایل (همراه با نقطه) و %n برای شماره نسخه تکراری.

رشته قالب‌بندی پیام‌های خطا که در سطر پیام در پایین صفحه نشان داده می‌شوند.

اگر این رشته شامل نویسه‌های %s باشد، به عنوان رشته قالب‌بندی fmt.Sprintf تفسیر می‌شود و باید با دنباله ریست ترمینال پایان یابد. برای نمونه، \033[4m%s\033[0m تاثیری مشابه با \033[4m دارد.

جداکننده فایل‌های مورد استفاده در متغیرهای محیطی fs، fv و fx.

نحوه ارزیابی و تطبیق الگوهای فیلتر. روش‌های پشتیبانی‌شده فعلی عبارتند از text (رشته متنی ساده)، glob (الگوهای گلوب شل) و regex (عبارات منظم). برای جزئیات بیشتر به بخش SEARCHING FILES مراجعه کنید.

تعداد نویسه‌های درخواستی در اعلان دستور find. چنانچه این مقدار روی صفر تنظیم شود، دستور find تا زمانی که تنها یک مورد منطبق باقی بماند، به دریافت ورودی ادامه می‌دهد.

نمایش فایل‌های مخفی. در سیستم‌های یونیکس، فایل‌های مخفی بر مبنای مقدار hiddenfiles تعیین می‌شوند. در ویندوز، فایل‌های دارای صفت مخفی (hidden) نیز به عنوان فایل مخفی محسوب می‌گردند.

فهرستی از الگوهای گلوب برای فایل‌های مخفی. الگوها می‌توانند به صورت مسیرهای نسبی یا مطلق تعیین شوند. از نویسه‌های ویژه مرسوم پشتیبانی می‌شود: * برای تطبیق با هر دنباله‌ای، ? برای هر نویسه تک، و [...] یا [^...] برای بازه‌ها و مجموعه‌های کاراکتری. به علاوه، اگر الگویی با ! آغاز شود، موارد منطبق با آن از تعریف فایل مخفی مستثنی خواهند شد. برای افزودن چندین الگو، از : به عنوان جداکننده استفاده کنید. مثال: .*:lost+found:*.bak

ذخیره تاریخچه دستورات خط فرمان.

نمایش آیکون پیش از نام هر قلم در فهرست.

تنظیم متغیر محیطی IFS در دستورات شل. این کار با افزودن مقدار به ابتدای رشته دستور به صورت IFS=...; ... انجام می‌شود، چرا که متغیر IFS به دلایل امنیتی توسط شل به ارث برده نمی‌شود. این روش مستلزم ساختار شل POSIX است و ممکن است در سایر شل‌ها با خطا مواجه شود. در صورت خالی بودن این گزینه یا در سیستم‌عامل ویندوز، تاثیری نخواهد داشت.

نادیده گرفتن بزرگی و کوچکی حروف در الگوهای جستجو. گزینه sortignorecase را نیز بررسی کنید.

نادیده گرفتن اعراب و نشانه‌های صوتی (diacritics) در الگوهای جستجو. گزینه sortignoredia را نیز ببینید.

اعمال الگوی فیلتر هم‌گام با فشردن هر کلید در طول فیلترسازی.

پرش به نخستین مورد منطبق هم‌زمان با فشردن هر کلید هنگام جستجو.

فهرستی از اطلاعات که برای اقلام پوشه در سمت راست پنجره نمایش داده می‌شود.

انواع اطلاعات پشتیبانی‌شده عبارتند از:

perm      مجوزها و دسترسی‌های فایل
user      نام کاربر مالک
group     نام گروه مالک
size      حجم فایل
time      زمان آخرین ویرایش داده‌ها
atime     زمان آخرین دسترسی
btime     زمان ایجاد فایل
ctime     زمان آخرین تغییر وضعیت (inode)
custom    ویژگی سفارشی تعریف‌شده با addcustominfo

اطلاعات تنها زمانی نمایش داده می‌شوند که عرض پنجره بیش از دو برابر عرض اطلاعات باشد.

رشته قالب‌بندی زمان فایل در ستون اطلاعات در صورتی که مربوط به سال جاری باشد.

رشته قالب‌بندی زمان فایل در ستون اطلاعات در صورتی که مربوط به سال‌های گذشته باشد.

رشته قالب‌بندی منو.

رشته قالب‌بندی سطر هدر در منو.

رشته قالب‌بندی قلم انتخاب‌شده فعلی در منو.

با فعال بودن mergeindicators، نشانگرهای تگ و انتخاب در یک ستون واحد رسم می‌شوند تا فضای خالی قبل از نام فایل‌ها کاسته شود. اگر فایلی هم تگ شده و هم انتخاب شده باشد، نشانگر به جای tagfmt از فرمت انتخاب (مانند copyfmt) استفاده خواهد کرد.

ارسال رویدادهای ماوس به عنوان ورودی به برنامه.

نمایش شماره ردیف برای اقلام پوشه در سمت چپ پنجره. هنگامی که گزینه relativenumber فعال باشد، تنها سطر جاری موقعیت مطلق را نشان می‌دهد و برای سایر سطرها موقعیت نسبی نمایش داده می‌شود.

رشته‌های قالب‌بندی برای رنگ‌آمیزی شماره سطرها. numberfmt برای تمام خطوط اعمال می‌شود. numbercursorfmt برای خط دارای نشانگر اعمال شده و در صورت خالی ماندن به numberfmt بازمی‌گردد.

تنظیم فاصله زمانی به ثانیه برای بررسی دوره‌ای به‌روزرسانی‌های پوشه. این کار با فراخوانی دوره‌ای دستور load صورت می‌پذیرد. توجه داشته باشید که پوشه‌ها در بسیاری از شرایط از قبل به صورت خودکار به‌روزرسانی می‌شوند. این گزینه زمانی سودمند است که فرآیندی خارجی پوشه در حال نمایش را تغییر می‌دهد و شما فعالیتی درون lf ندارید. با تنظیم این مقدار روی صفر، بررسی‌های دوره‌ای غیرفعال می‌گردد.

امکان تولید پیشاپیش پیش‌نمایش‌ها با اسکریپت previewer هم‌زمان با پیمایش سیستم‌فایل توسط کاربر.

فهرست صفت‌هایی که در هنگام کپی کردن فایل‌ها حفظ می‌شوند. صفت‌های پشتیبانی‌شده فعلی عبارتند از mode (حالت دسترسی) و timestamps (زمان اصلاح و دسترسی). توجه داشته باشید که حفظ صفت‌های دیگر مانند مالکیت یا زمان ایجاد فایل گرچه مطلوب است، اما به صورت چندسکویی در زبان Go پشتیبانی نمی‌شود.

نمایش پیش‌نمایش فایل‌ها و پوشه‌ها در راست‌ترین پنجره برنامه. اگر فایل سطرهای بیشتری نسبت به پنجره پیش‌نمایش داشته باشد، بقیه سطرها خوانده نمی‌شوند. فایل‌ها در صورتی باینری محسوب شده و با برچسب binary نمایش داده می‌شوند که بخش خوانده‌شده شامل نویسه‌های کنترلی (به جز بوق، بک‌اسپیس، تب، خط جدید، تب عمودی، فرم‌فید، کارتریج‌ریترن، اسکیپ یا دلیت) باشد.

تنظیم مسیر فایل پیش‌نمایش‌گر (previewer) برای فیلتر کردن محتوای فایل‌های معمولی جهت پیش‌نمایش. این فایل باید قابل اجرا باشد. آرگومان‌های زیر به ترتیب به فایل ارسال می‌شوند: (1) نام فایل جاری، (2) عرض، (3) ارتفاع، (4) موقعیت افقی، (5) موقعیت عمودی، و (6) حالت اجرای پیش‌نمایش ("preview" یا "preload"). سیگنال SIGPIPE پس از خواندن سطرهای کافی ارسال می‌گردد. اگر اسکریپت پیش‌نمایش‌گر کد خروجی غیرصفر برگرداند، حافظه کش پیش‌نمایش برای آن فایل غیرفعال می‌شود؛ بدین معنا که اگر فایل در آینده دوباره انتخاب شود، اسکریپت یک بار دیگر فراخوانی خواهد شد. در صورت خالی بودن این گزینه، فیلتر پیش‌نمایش غیرفعال شده و فایل‌ها همان‌گونه که هستند نمایش داده می‌شوند. چنانچه گزینه preload فعال باشد، این اسکریپت با حالت preload برای پیش‌بارگذاری فراخوانی خواهد شد. برای اطلاعات بیشتر در خصوص نحوه پیکربندی پیش‌نمایش‌های سفارشی به بخش PREVIEWING FILES مراجعه کنید.

رشته قالب‌بندی اعلان (prompt) در سطر بالایی.

بسط‌های ویژه زیر پشتیبانی می‌شوند:

%f        نام فایل
%h        نام میزبان (hostname)
%u        نام کاربری
%w        پوشه کاری جاری
%d        پوشه کاری جاری (همراه با ممیز پایانی)
%F        فیلتر جاری
%S        فاصله‌گذار برای راست‌چین کردن بخش‌های بعدی (تنها یک بار قابل استفاده است)

پوشه خانگی در بسط پوشه کاری به صورت ~ نمایش داده می‌شود. هنگامی که اعلان در صفحه جا نشود، نام پوشه‌ها به صورت خودکار از سمت چپ‌ترین والد به یک نویسه خلاصه می‌شوند.

فهرست نسبت‌های عرض پنجره‌ها. تعداد آیتم‌های این فهرست، تعداد پنجره‌های نمایش‌داده‌شده در رابط کاربری را تعیین می‌کند. هنگامی که گزینه preview فعال باشد، عدد سمت راست برای عرض پنجره پیش‌نمایش به کار می‌رود.

نمایش شماره موقعیت به صورت نسبی نسبت به سطر جاری. هنگامی که گزینه number فعال باشد، سطر جاری شماره موقعیت مطلق را نشان داده و برای بقیه موقعیت نسبی نمایش داده می‌شود.

معکوس کردن جهت مرتب‌سازی.

تعیین مسیر فایل خط‌کش (ruler). در صورت تعیین نشدن، از الگوی پیش‌فرض برای خط‌کش استفاده خواهد شد. برای اطلاعات بیشتر در خصوص نحوه کارکرد این فایل به بخش RULER مراجعه کنید.

رشته قالب‌بندی خط‌کش نمایش‌داده‌شده در گوشه پایین سمت راست. در صورت تنظیم، به همراه statfmt برای رسم خط‌کش استفاده شده و rulerfile نادیده گرفته می‌شود. با این وجود، استفاده از rulerfile ارجح است و این گزینه برای سازگاری با نسخه‌های پیشین حفظ شده است.

بسط‌های ویژه زیر پشتیبانی می‌شوند:

%a        کلیدهای فشرده‌شده
%p        پیشرفت عملیات‌های فایل
%m        تعداد فایل‌های در حال انتقال (cut)
%c        تعداد فایل‌های در حال کپی
%s        تعداد فایل‌های انتخاب‌شده
%v        تعداد فایل‌های انتخاب‌شده در حالت بصری
%t        تعداد کل فایل‌های نمایش‌یافته در پوشه جاری
%h        تعداد فایل‌های مخفی در پوشه جاری
%f        فیلتر جاری
%i        موقعیت نشانگر
%P        درصد پیمایش صفحه
%d        میزان فضای خالی دیسک

بسط‌های بیشتری برای متغیرهای محیطی صادرشده توسط lf به شکل %{lf_<name>} (مانند %{lf_selmode}) در دسترس است که برای نمایش تنظیمات فعلی کاربرد دارد. همچنین بسط‌هایی برای گزینه‌های سفارشی کاربر به فرم %{lf_user_<name>} (مانند %{lf_user_foo}) ارائه شده است. نویسه | رشته قالب را به بخش‌های مجزا تقسیم می‌کند؛ هر بخشی که بسط ناموفق داشته باشد (نتیجه رشته خالی باشد) حذف شده و نشان داده نمی‌شود.

حداقل تعداد سطرهای حاشیه (offset) که هنگام پیمایش، همواره در بالا و پایین صفحه نگه داشته می‌شوند. در صورتی که این گزینه روی عددی بزرگتر از نصف خطوط تنظیم شود، سطر جاری همیشه در وسط صفحه می‌ماند.

نحوه ارزیابی الگوهای جستجو. روش‌های پشتیبانی‌شده عبارتند از text (متن ساده)، glob (الگوهای گلوب شل) و regex (عبارات منظم). برای جزئیات بیشتر به بخش SEARCHING FILES مراجعه فرمایید.

رشته قالب‌بندی نشانگر فایل‌های انتخاب‌شده.

حالت انتخاب برای دستورات. با تنظیم روی all، از فایل‌های انتخاب‌شده در تمامی پوشه‌ها استفاده می‌شود. با تنظیم روی dir، فقط فایل‌های انتخاب‌شده در پوشه جاری لحاظ می‌گردند.

فایل اجرایی شل برای اجرای دستورات شل. دستورات شل به صورت زیر اجرا می‌شوند: shell shellopts shellflag command -- arguments.

فلگ خط فرمان شل برای ارسال دستورات.

فهرستی از گزینه‌های شل برای ارسال به فایل اجرایی شل.

نمایش کلیدهای متصل‌شده مرتبط با کلیدهای فشرده‌شده.

تعیین نمایش اندازه فایل‌ها با واحدهای باینری (1K معادل ۱۰۲۴ بایت) یا واحدهای ده‌دهی (1K معادل ۱۰۰۰ بایت).

نادیده گرفتن گزینه ignorecase در جستجو هنگام وجود حداقل یک حرف بزرگ انگلیسی در الگو. این گزینه در صورت غیرفعال بودن ignorecase تاثیری ندارد.

نادیده گرفتن گزینه ignoredia هنگام وجود اعراب یا نشانه صوتی در الگو. در صورت غیرفعال بودن ignoredia تاثیری ندارد.

نوع مرتب‌سازی پوشه‌ها.

انواع مرتب‌سازی زیر پشتیبانی می‌شوند:

natural   نام فایل به شیوه طبیعی (مثلاً track_2 قبل از track_10 قرار می‌گیرد)
name      نام فایل به شیوه الفبایی (track_10 قبل از track_2 قرار می‌گیرد)
ext       پسوند فایل
size      اندازه فایل
time      زمان آخرین ویرایش محتوا
atime     زمان آخرین دسترسی
btime     زمان ایجاد فایل
ctime     زمان آخرین تغییر وضعیت اینود (inode)
custom    ویژگی سفارشی تعریف‌شده با addcustominfo

نادیده گرفتن بزرگی و کوچکی حروف در مرتب‌سازی. گزینه ignorecase را نیز بررسی کنید.

نادیده گرفتن اعراب و نشانه‌های صوتی در مرتب‌سازی. گزینه ignoredia را نیز بررسی کنید.

رشته قالب‌بندی اطلاعات فایل در گوشه پایین سمت چپ. این گزینه تنها زمانی عمل می‌کند که rulerfmt نیز تنظیم شده باشد. استفاده از rulerfile توصیه می‌شود و این گزینه برای سازگاری عقب‌رو تعبیه شده است.

بسط‌های ویژه زیر پشتیبانی می‌شوند:

%p        مجوزهای فایل
%c        تعداد پیوندها (link count)
%u        نام کاربر
%g        نام گروه
%s        اندازه فایل
%S        اندازه فایل (تراز شده از چپ با فاصله تا ۵ نویسه)
%t        زمان آخرین ویرایش محتوا
%l        مقصد پیوند نمادین
%m        حالت فعلی
%M        حالت فعلی (نمایش NORMAL به جای رشته خالی در حالت عادی)

نویسه | رشته قالب را به بخش‌های مجزا تقسیم می‌کند؛ هر بخشی که بسط ناموفق داشته باشد نمایش داده نمی‌شود.

تعداد نویسه‌های فاصله برای نمایش نویسه تب افقی (U+0009).

رشته قالب‌بندی تگ‌ها.

اگر این رشته شامل نویسه‌های %s باشد، به عنوان رشته قالب fmt.Sprintf تفسیر شده و باید با دنباله ریست ترمینال خاتمه یابد.

نشانک‌هایی که موقت در نظر گرفته می‌شوند (مانند abc که به نشانک‌های a، b و c اشاره دارد). این نشانک‌ها با سایر کلاینت‌ها همگام‌سازی نشده و در فایل نشانک‌ها ذخیره نمی‌شوند. نشانک ویژه ' همواره موقت در نظر گرفته می‌شود.

تعیین ظاهر نشانگر ترمینال برای اعلان‌ها در سطر پایین. مقادیر پشتیبانی‌شده عبارتند از: default، block، underline، bar، blinkblock، blinkunderline و blinkbar.

رشته قالب‌بندی زمان ویرایش فایل که در سطر پایین نشان داده می‌شود.

نویسه کوتاه‌سازی که در صورت جا نشدن نام فایل در پنجره، نمایش داده می‌شود.

هنگامی که نام یک فایل برای نمایش کامل بسیار طولانی باشد، فضای در دسترس به دو بخش تقسیم می‌شود. truncatepct یک درصد بین ۰ تا ۱۰۰ است که اندازه بخش اول (ابتدای نام فایل) را مشخص می‌کند. بخش دوم بقیه فضا را در انتهای نام فایل اشغال می‌کند. دو بخش با نویسه کوتاه‌سازی (truncatechar) جدا می‌شوند. کوتاه‌سازی روی پسوند فایل اعمال نمی‌شود.

به عنوان مثال، برای نام فایل very_long_filename.txt:

  • set truncatepct 100 -> very_long_filena~.txt (پیش‌فرض)
  • set truncatepct 50 -> very_lon~filename.txt
  • set truncatepct 0 -> ~ry_long_filename.txt

رشته قالب‌بندی نشانگر فایل‌هایی که در حالت بصری انتخاب شده‌اند.

رشته‌ای که پس از اجرای دستورات از نوع shell-wait نمایش داده می‌شود.

پایش تغییرات سیستم‌فایل با استفاده از fsnotify جهت به‌روزرسانی خودکار اطلاعات فایل‌ها. سامانه‌های FUSE در حال حاضر پشتیبانی نمی‌شوند.

امکان گردش مجدد جستجو به ابتدای فهرست فایل‌ها پس از رسیدن به انتها.

امکان گردش مجدد پیمایش صفحه (scroll) به ابتدای فهرست پس از رسیدن به انتها.

هر گزینه‌ای با پیشوند user_ یک گزینه تعریف‌شده توسط کاربر است و می‌تواند به هر رشته‌ای تنظیم شود. درون یک دستور سفارشی کاربر، مقدار آن در متغیر محیطی lf_user_{option} در دسترس خواهد بود. این گزینه‌ها توسط lf پردازش نشده و ماندگار نیستند.

متغیرهای زیر برای دستورات شل صادر می‌شوند: این متغیرها در شل‌های سازگار با استاندارد POSIX با پیشوند $ (مانند $f)، در خط فرمان cmd ویندوز میان نویسه‌های % (مانند %f%)، و در PowerShell ویندوز با پیشوند $env: (مانند $env:f) فراخوانی می‌شوند.

مسیر کامل فایل جاری انتخاب‌شده.

فایل(های) انتخاب‌شده که با مقدار گزینه filesep از یکدیگر جدا شده‌اند به صورت مسیرهای کامل.

فایل(های) انتخاب‌شده در حالت بصری که با مقدار گزینه filesep جدا شده‌اند به صورت مسیرهای کامل.

فایل(های) انتخاب‌شده (fs، نه fv) در صورتی که فایلی انتخاب شده باشد؛ در غیر این صورت فایل جاری (f).

شناسه عددی کلاینت در حال اجرا.

پوشه کاری جاری.

پوشه کاری اولیه.

هنگامی که lf را از درون شلی اجرا کنید که خود از داخل lf باز شده است، مقدار این متغیر سطح تودرتویی شل را نشان می‌دهد. می‌توانید مقدار این متغیر را به اعلان (prompt) شل خود اضافه کنید تا مشخص باشد شل شما درون lf اجرا شده است. به عنوان نمونه، در شل‌های POSIX می‌توانید دستور زیر را در فایل پیکربندی شل خود (مانند ~/.bashrc) قرار دهید: [ -n "$LF_LEVEL" ] && PS1="$PS1""(lf level: $LF_LEVEL) "

اگر این متغیر در محیط سیستم تنظیم شده باشد، از مقدار آن استفاده می‌شود. در غیر این صورت، در ویندوز برابر start، در مک‌اواس برابر open و در سایر سیستم‌ها برابر xdg-open خواهد بود.

اگر متغیر VISUAL در محیط تنظیم شده باشد، از آن استفاده می‌شود؛ در غیر این صورت از مقدار متغیر EDITOR استفاده خواهد شد. اگر هیچ‌یک تنظیم نشده باشند، در یونیکس vi و در ویندوز notepad خواهد بود.

اگر این متغیر در محیط تنظیم شده باشد، همان به کار می‌رود؛ در غیر این صورت در یونیکس برابر less و در ویندوز برابر more خواهد بود.

اگر در محیط تنظیم شده باشد، همان مقدار به کار می‌رود؛ در غیر این صورت در یونیکس برابر sh و در ویندوز برابر cmd است.

مسیر مطلق به باینری lf در حال اجرا در صورتی که پیدا شود؛ در غیر این صورت، رشته متنی lf.

مقدار گزینه {option}.

مقدار گزینه سفارشی user_{option}.

مقدار فلگ خط فرمان {flag}.

عرض و ارتفاع ترمینال.

مقدار شمارنده منتسب به دستور جاری.

حالت فعلی که lf در آن کار می‌کند. این متغیر برای سفارشی‌سازی میانبرها بر اساس حالت جاری مفید است. مقادیر ممکن عبارتند از: compmenu، delete، rename، filter، find، mark، search، command، shell، pipe (هنگام اجرای دستور shell-pipe)، normal، visual و unknown.

این بخش اطلاعات مربوط به دستورات شل ویژه را ارائه می‌دهد.

این دستور شل می‌تواند تعریف شود تا رفتار پیش‌فرض دستور open را زمانی که فایل انتخابی یک پوشه نیست تغییر دهد.

این دستور شل می‌تواند برای بازنویسی رفتار پیش‌فرض دستور paste تعریف شود.

این دستور شل می‌تواند برای تغییر رفتار پیش‌فرض دستور rename تعریف شود.

این دستور شل می‌تواند برای جایگزینی رفتار پیش‌فرض دستور delete تعریف گردد.

این دستور شل می‌تواند به گونه‌ای تعریف شود که قبل از تغییر دایرکتوری اجرا گردد.

این دستور شل می‌تواند به نحوی تعریف شود که پس از تغییر دایرکتوری اجرا گردد.

این دستور شل می‌تواند به شکلی تعریف شود که پس از بارگذاری یک پوشه اجرا شود. این دستور فایل‌های درون پوشه را به عنوان آرگومان دریافت می‌کند.

این دستور شل می‌تواند برای اجرا در زمان فوکوس گرفتن ترمینال تعریف شود.

این دستور شل می‌تواند برای اجرا هنگام از دست رفتن فوکوس ترمینال تعریف شود.

این دستور شل می‌تواند برای اجرا پس از مقداردهی اولیه و اتصال به سرور تعیین شود.

این دستور شل می‌تواند برای اجرا پس از هر بار تغییر فایل انتخابی تعریف شود.

این دستور شل می‌تواند برای اجرا پس از بازطراحی صفحه نمایش یا تغییر اندازه ترمینال تعریف گردد.

این دستور شل می‌تواند برای اجرا درست پیش از خروج از برنامه تعریف شود.

پیشوندهای دستوری زیر توسط lf به کار می‌روند:

:  read (default)  دستور توکار یا سفارشی
$  shell           دستور شل
%  shell-pipe      دستور شل در حال اجرا به همراه رابط کاربری
!  shell-wait      دستور شل منتظر فشردن یک کلید
&  shell-async     دستور شل ناهمگام در پس‌زمینه

برای خواندن دستورات شل در خط فرمان و در فایل پیکربندی از یک ارزیاب یکسان استفاده می‌شود. تفاوت در این است که پیشوندها در خط فرمان الزامی نیستند؛ به جای آن، حالت‌های متفاوتی برای دریافت دستورات متناظر تعبیه شده است. این حالت‌ها به صورت پیش‌فرض به کلیدهای پیشوند بالا نگاشت شده‌اند. نگاشت‌های حالت بصری نیز دقیقاً مشابه حالت عادی تعریف می‌گردند.

نویسه‌ها از علامت # تا انتهای سطر کامنت تلقی شده و نادیده گرفته می‌شوند:

# کامنت‌ها با # شروع می‌شوند

دستورات زیر (set، setlocal، map، nmap، vmap، cmap و cmd) برای پیکربندی به کار می‌روند.

دستور set برای تنظیم یک گزینه که می‌تواند بولی، عدد صحیح یا رشته باشد استفاده می‌شود:

set hidden         # فعال‌سازی بولی
set hidden true    # فعال‌سازی بولی
set nohidden       # غیرفعال‌سازی بولی
set hidden false   # غیرفعال‌سازی بولی
set hidden!        # تغییر وضعیت بولی (toggle)
set scrolloff 10   # مقدار عددی صحیح
set sortby time    # مقدار رشته‌ای بدون نقل‌قول
set sortby 'time'  # مقدار رشته‌ای با نقل‌قول تکی (فاصله‌دار)
set sortby "time"  # مقدار رشته‌ای با نقل‌قول دوتایی (کاراکترهای اسکیپ)

دستور setlocal برای تنظیم یک گزینه محلی برای یک پوشه خاص استفاده می‌شود که می‌تواند بولی یا رشته باشد. گزینه‌های محلی پشتیبانی‌شده فعلی عبارتند از: dircounts، dirfirst، dironly، hidden، info، reverse، sortby، sortignorecase و sortignoredia.

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 'time'  # مقدار رشته‌ای
setlocal /foo/bar sortby "time"  # مقدار رشته‌ای

دستور map برای متصل کردن یک کلید در حالت‌های عادی و بصری به یک دستور توکار، سفارشی یا شل استفاده می‌شود:

map gh cd ~        # دستور توکار
map D trash        # دستور سفارشی
map i $less $f     # دستور شل
map U !du -csh *   # دستور شل منتظر کلید

دستور nmap عملکرد مشابهی دارد اما فقط برای حالت عادی (Normal mode).

دستور vmap عملکرد مشابهی دارد اما فقط برای حالت بصری (Visual mode).

نمای کلی از کارکرد دستورات map در حالت‌های مختلف:

map                عادی و بصری (Normal, Visual)
nmap               تنها عادی (Normal)
vmap               تنها بصری (Visual)
cmap               خط فرمان (Command-line)

دستور cmap برای متصل کردن یک کلید در خط فرمان به دستورات خط فرمان یا هر دستور دیگری به کار می‌رود:

cmap <c-g> cmd-escape
cmap <a-i> set incsearch!

می‌توانید با خالی گذاشتن عبارت، اتصال یک کلید را حذف کنید:

map gh             # حذف میانبر gh در حالت عادی و بصری
nmap v             # حذف میانبر v در حالت عادی
vmap o             # حذف میانبر o در حالت بصری
cmap <c-g>         # حذف میانبر <c-g>

دستور cmd برای تعریف یک دستور سفارشی جدید استفاده می‌شود:

cmd usage $du -h -d1 | less

می‌توانید یک دستور تعریف‌شده را با خالی گذاشتن مقدار آن حذف کنید:

cmd trash          # حذف دستور trash

اگر هیچ پیشوندی مشخص نشود، پیشوند : فرض می‌شود:

map zt set info time

درج پیشوند صریح : برای گروه‌بندی دستورات تا انتهای سطر امکان‌پذیر است که به ویژه برای دستورات map و cmd بسیار کاربردی است:

map st :set sortby time; set info time

اگر به نگارش چندسطری نیاز دارید، می‌توانید دستورات را پس از پیشوند درون {{ و }} محصور کنید:

map st :{{
    set sortby time
    set info time
}}

کلیدهای معمولی با نگارش مرسوم به یک دستور اختصاص می‌یابند:

map a down

کلیدهای ترکیبی با کلید Shift صرفاً با استفاده از حرف بزرگ مشخص می‌شوند:

map A down

کلیدهای ویژه میان نویسه‌های < و > نوشته شده و همواره از حروف کوچک استفاده می‌کنند:

map <enter> down

علامت‌های کوچکتر/بزرگتر را می‌توان با نام‌های ویژه آن‌ها انتساب داد:

map <lt> down
map <gt> down

کلیدهای تابع (Function keys) با پیشوند نویسه f مشخص می‌شوند:

map <f-1> down

کلیدهای ترکیبی با کلید Ctrl با پیشوند نویسه c نوشته می‌شوند:

map <c-a> down

کلیدهای ترکیبی با کلید Alt بسته به رفتار ترمینال شما به دو روش مختلف اختصاص می‌یابند. ترمینال‌های قدیمی‌تر (مانند xterm) ممکن است با فشردن کلید Alt، بیت هشتم یک نویسه را فعال کنند. در این ترمینال‌ها می‌توانید از بایت متناظر برای نگاشت استفاده کنید:

map á down

ترمینال‌های جدیدتر (مانند gnome-terminal) ممکن است هنگام فشردن کلید Alt، یک نویسه فرار (escape) به ابتدای کلید اضافه نمایند. برنامه lf برای تشخیص کلیدهای Alt در این ترمینال‌ها از سازوکار تاخیر نویسه فرار بهره می‌برد (تاخیر ۱۰۰ میلی‌ثانیه است). در این ترمینال‌ها، کلیدهای ترکیبی با Alt با پیشوند نویسه a مشخص می‌شوند:

map <a-a> down

امکان ترکیب کلیدهای ویژه با کلیدهای تغییردهنده وجود دارد:

map <a-enter> down

ترکیب چندین کلید تغییردهنده (مانند Ctrl+Shift+Space) پشتیبانی نمی‌شود.

توجه داشته باشید که نگارش نگاشت کلیدهای lf شبیه به Vim است، اما کاملاً یکسان نیست. برخی کلیدهای ویژه و تغییردهنده‌ها از نام‌ها و جداکننده‌های متفاوتی استفاده می‌کنند و نام کلیدها به صورت کاملاً عینی و دقیق تطبیق داده می‌شوند (بدون تبدیل حروف کوچک/بزرگ یا نام مستعار)، از این رو برخی شکل‌های آشنا کار نخواهند کرد:

map <enter> down  # نه <Enter>، <Return> یا <CR>
map <f-1> down    # نه <F1>
map <a-j> down    # نه <A-j> یا <M-j> (Meta)
map <m-2> down    # نه <RightMouse>
map <m-up> down   # نه <ScrollWheelUp>

هشدار: برخی ترکیب‌های کلیدی به احتمال زیاد توسط سیستم‌عامل، مدیر پنجره یا ترمینال شما رهگیری و مهار می‌شوند. همچنین برخی ترکیب‌های دیگر بسته به نحوه گزارش ترمینال ممکن است برای lf قابل تفکیک نباشند (مثلاً Ctrl+h ممکن است به صورت backspace گزارش شود). ساده‌ترین راه برای اطلاع از نام یک ترکیب کلیدی و امکان کارکرد آن در سیستم شما، این است که آن کلید را حین اجرای lf بفشارید و نام آن را از پیام خطای unknown mapping بخوانید.

دکمه‌های ماوس با پیشوند نویسه m مشخص می‌شوند:

map <m-1> down  # کلیک چپ اصلی
map <m-2> down  # کلیک راست ثانویه
map <m-3> down  # کلیک وسط
map <m-4> down  # دکمه شست بعدی
map <m-5> down  # دکمه شست قبلی
map <m-6> down
map <m-7> down
map <m-8> down

رویدادهای چرخ ماوس نیز با پیشوند نویسه m مشخص می‌گردند:

map <m-up>    down
map <m-down>  down
map <m-left>  down
map <m-right> down

روش متداول برای نگاشت یک توالی کلیدی، انتساب آن به یک دستور نام‌دار یا بی‌نام است. گرچه این رویکرد روشی تمیز برای بازنگاشت کلیدهای توکار و سایر دستورات به دست می‌دهد، اما گاهی اوقات محدودکننده است. به همین دلیل دستور push در lf گنجانده شده است. این دستور برای شبیه‌سازی فشردن کلیدهای داده‌شده در آرگومان استفاده می‌شود. می‌توانید کلیدی را به یک دستور push همراه با آرگومان map کنید تا میانبرهای کلیدی گوناگونی بسازید.

این قابلیت اساساً برای دو هدف کاربرد دارد: نخست، می‌توان از آن برای نگاشت دستوری همراه با یک شمارنده دستور بهره برد:

map <c-j> push 10j

دوم، می‌توان برای اجتناب از تایپ نام دستور در مواردی که دستور آرگومان می‌گیرد استفاده نمود:

map r push :rename<space>

نکته‌ای که باید مراقب آن بود این است که چون دستور push به جای دستورات با کلیدها کار می‌کند، امکان ایجاد تصادفی میانبرهای بازگشتی وجود دارد:

map j push 2j

این نوع میانبرها در هنگام اجرا بن‌بست (deadlock) ایجاد می‌کنند.

دستورات شل معمولی پایه‌ای‌ترین نوع دستور هستند که برای مقاصد گوناگونی کاربرد دارند. برای نمونه، می‌توانیم یک دستور شل بنویسیم تا فایل(های) انتخابی را به سطل بازیافت منتقل کند. نخستین تلاش برای نوشتن چنین دستوری ممکن است به این شکل باشد:

cmd trash ${{
    mkdir -p ~/.trash
    if [ -z "$fs" ]; then
        mv "$f" ~/.trash
    else
        IFS="$(printf '\n\t')"; mv $fs ~/.trash
    fi
}}

ما متغیر $fs را بررسی می‌کنیم تا ببینیم فایلی انتخاب شده است یا خیر؛ در غیر این صورت، تنها فایل جاری را جابجا می‌کنیم. چون این یک الگوی بسیار رایج است، یک متغیر مجزا به نام $fx فراهم شده است. با استفاده از این متغیر می‌توان از عبارت شرطی صرف‌نظر کرد:

cmd trash ${{
    mkdir -p ~/.trash
    IFS="$(printf '\n\t')"; mv $fx ~/.trash
}}

پوشه سطل زباله در هر بار اجرای دستور بررسی می‌شود. می‌توانیم آن را به خارج از دستور ببریم تا فقط یک بار در زمان راه‌اندازی اجرا گردد:

${{ mkdir -p ~/.trash }}
cmd trash ${{ IFS="$(printf '\n\t')"; mv $fx ~/.trash }}

چون این موارد دستورات یک‌خطی هستند، می‌توان از {{ و }} صرف‌نظر نمود:

$mkdir -p ~/.trash
cmd trash $IFS="$(printf '\n\t')"; mv $fx ~/.trash

در پایان توجه داشته باشید که متغیر IFS را در این دستورات به طور دستی تنظیم کردیم. به جای آن می‌توانستیم از گزینه ifs برای تنظیم آن برای تمام دستورات شل استفاده کنیم (مانند set ifs "\n"). این امر به ویژه برای استفاده تعاملی بسیار سودمند است (مثلاً $rm $f یا $rm $fs به سادگی کار خواهند کرد). این گزینه به صورت پیش‌فرض تنظیم نشده زیرا ممکن است برای کاربران تازه‌کار رفتاری غیرمنتظره داشته باشد؛ با این حال، استفاده از این گزینه به شدت توصیه می‌شود و در ادامه مستندات فرض بر تنظیم بودن آن است.

دستورات شل معمولی در پاره‌ای از شرایط با محدودیت‌هایی روبرو هستند. هنگامی که خروجی یا پیام خطایی داده شود و دستور بلافاصله خاتمه یابد، رابط کاربری بدون درنگ بازگردانده می‌شود و راهی برای دیدن پیام بدون خروج مجدد به شل وجود ندارد. همچنین حتی زمانی که هیچ خروجی یا خطایی نباشد، رابط کاربری حین اجرای دستور موقتاً متوقف می‌گردد. این موضوع می‌تواند موجب پرش صفحه برای دستورات کوتاه و حواس‌پرتی مشابه برای دستورات طولانی‌تر شود.

دستورات شل لوله‌کشی‌شده به جای متوقف کردن رابط کاربری، ورودی استاندارد (stdin)، خروجی استاندارد (stdout) و خطای استاندارد (stderr) دستور را به خط وضعیت در پایین صفحه متصل می‌کنند. این کارکرد برای برنامه‌هایی که پیرو فلسفه یونیکس هستند تا در صورت موفقیت هیچ خروجی ندهند و در سایر موارد پیام‌های کوتاه یا اعلان صادر کنند، بسیار ایده‌آل است.

به عنوان مثال، دستور تغییر نام زیر در صورت وجود فایلی با نام مشخص‌شده، در خط وضعیت برای رونویسی تاییدیه می‌خواهد:

cmd rename %mv -i $f $1

همچنین می‌توانید پیام‌های خطا را در دستور چاپ کنید تا در خط وضعیت ظاهر شوند. برای نمونه، یک دستور تغییر نام جایگزین می‌تواند این‌گونه باشد:

cmd rename %[ -e $1 ] && printf "file exists" || mv $f $1

توجه داشته باشید که ورودی به صورت سطری بافر می‌شود و خروجی و خطا به صورت بایتی بافر می‌گردند.

دستورات شل منتظر مشابه دستورات شل معمولی هستند، با این تفاوت که پس از پایان کار دستور، منتظر فشردن یک کلید از سوی کاربر می‌مانند. این نوع دستورات برای دیدن خروجی یک برنامه قبل از بازگشت رابط کاربری مفید هستند. زمانی که دستور خروجی پرگویی دارد و نمایش چندسطری خروجی بهتر است، دستورات شل منتظر نسبت به دستورات لوله‌کشی‌شده مناسب‌تر خواهند بود.

دستورات شل ناهمگام برای آغاز اجرای یک دستور در پس‌زمینه و سپس ادامه بی‌درنگ عملیات بدون معطل ماندن برای اتمام دستور به کار می‌روند. ورودی استاندارد، خروجی استاندارد و خطای استاندارد دستور به هیچ‌یک از ترمینال یا رابط کاربری متصل نمی‌شوند.

یکی از قابلیت‌های پیشرفته‌تر در lf، دستورات از راه دور (remote commands) است. تمام کلاینت‌ها در هنگام راه‌اندازی به یک سرور متصل می‌شوند. ارسال دستورات به تمامی کلاینت‌های متصل یا هر یک از آن‌ها از طریق سرور مشترک امکان‌پذیر است. این قابلیت در داخل برنامه برای اطلاع‌رسانی تغییرات فایل‌های انتخابی به سایر کلاینت‌ها استفاده می‌شود.

برای بهره‌گیری از این ویژگی، به برنامه‌ای نیاز است که از ارتباط با سوکت یونیکس (Unix domain socket) پشتیبانی کند. پیاده‌سازی netcat (nc) در سیستم‌عامل OpenBSD نمونه‌ای از آن است. می‌توان از آن برای ارسال دستور به فایل سوکت استفاده نمود:

echo 'send echo hello world' | nc -U ${XDG_RUNTIME_DIR:-/tmp/lf-$(id -u)}/lf.sock

از آنجا که ممکن است چنین ابزاری در تمام سیستم‌ها موجود نباشد، lf به همراه یک فلگ خط فرمان برای این کاربرد عرضه شده است. هنگام استفاده از lf، نیازی به مشخص کردن نشانی فایل سوکت ندارید. این روش پیشنهادی برای اجرای دستورات از راه دور است، زیرا کوتاه‌تر بوده و در برابر تغییرات نشانی فایل سوکت پایدار می‌ماند:

lf -remote 'send echo hello world'

در این دستور از send برای ارسال بقیه رشته به عنوان دستور به همه کلاینت‌های متصل استفاده می‌شود. می‌توانید به صورت اختیاری یک شناسه عددی (ID) تعیین کنید تا دستور فقط به یک کلاینت خاص ارسال شود:

lf -remote 'send 1234 echo hello world'

تمام کلاینت‌ها دارای شناسه یکتا هستند، اما ممکن است در هنگام نوشتن دستور از شناسه آن مطلع نباشید. به همین منظور، متغیر $id در محیط برای دستورات شل صادر می‌شود. مقدار این متغیر برابر با شناسه فرآیند کلاینت است. می‌توانید از آن برای ارسال دستور از یک کلاینت به سرور استفاده کنید تا سرور مجدداً دستور را به خود کلاینت بازگرداند. بنابراین می‌توانید با فراخوانی دستور زیر درون یک دستور شل، پیامی در کلاینت جاری نمایش دهید:

lf -remote "send $id echo hello world"

از آنجا که نحو درونی lf فاقد دستورات کنترل جریان (مانند شرط‌ها) است، دستورات از راه دور برای این‌گونه نیازها به کار می‌روند. به عنوان مثال، می‌توانید تعداد ستون‌های رابط کاربری را متناسب با عرض ترمینال به شکل زیر تنظیم کنید:

cmd recol %{{
    if [ $lf_width -le 80 ]; then
        lf -remote "send $id set ratios 1:2"
    elif [ $lf_width -le 160 ]; then
        lf -remote "send $id set ratios 1:2:3"
    else
        lf -remote "send $id set ratios 1:2:3:5"
    fi
}}

علاوه بر این، دستور query می‌تواند برای کسب اطلاعات در مورد یک نمونه خاص از lf با ارائه شناسه آن به کار رود:

lf -remote "query $id maps"

انواع اطلاعات زیر پشتیبانی می‌شوند:

maps     فهرست نگاشت‌های ایجادشده توسط دستورات map، nmap و vmap
nmaps    فهرست نگاشت‌های ایجادشده توسط دستورات nmap و map
vmaps    فهرست نگاشت‌های ایجادشده توسط دستورات vmap و map
cmaps    فهرست نگاشت‌های ایجادشده توسط دستور cmap
cmds     فهرست دستورات ایجادشده با دستور cmd
jumps    محتوای فهرست پرش‌ها شامل مکان‌های بازدیدشده پیشین
history  فهرست دستورات اجراشده قبلی در خط فرمان
files    فهرست فایل‌های موجود در پوشه جاری مطابق نمایش lf

هنگام فهرست‌بندی نگاشت‌ها، نویسه‌های ستون اول عبارتند از:

n  حالت عادی (Normal)
v  حالت بصری (Visual)
c  حالت خط فرمان (Command-line)

این قابلیت برای اسکریپت‌نویسی اقدامات بر مبنای وضعیت داخلی lf بسیار سودمند است. برای نمونه، جهت انتخاب یک دستور پیشین با استفاده از fzf و اجرای آن:

map <a-h> ${{
    clear
    cmd=$(
        lf -remote "query $id history" |
        awk -F'\t' 'NR > 1 { print $NF}' |
        sort -u |
        fzf --reverse --prompt='Execute command: '
    )
    lf -remote "send $id $cmd"
}}

دستور list شناسه تمام کلاینت‌های متصل فعلی را چاپ می‌کند:

lf -remote 'list'

همچنین دستور quit برای بستن سرور در زمانی که هیچ کلاینتی متصل نمانده باشد، و دستور quit! برای بستن اجباری سرور با بستن ارتباط تمامی کلاینت‌ها وجود دارد:

lf -remote 'quit'
lf -remote 'quit!'

در نهایت، دستورات conn و drop یک شناسه را به سرور متصل یا از آن قطع می‌کنند:

lf -remote 'conn $id'
lf -remote 'drop $id'

این موارد درونی هستند و عموماً توسط کاربران استفاده نمی‌شوند.

برنامه lf به صورت پیش‌فرض از عملیات کپی و جابجایی داخلی خود استفاده می‌کند. این عملیات به شکل ناهمگام پیاده‌سازی شده‌اند و پیشرفت کار در خط‌کش پایینی نمایش می‌یابد. این دستورات فایل‌ها یا پوشه‌های هم‌نام موجود را رونویسی نمی‌کنند؛ بلکه پسوندی سازگار با گزینه --backup=numbered در ابزار GNU cp به فایل‌ها یا پوشه‌های جدید اضافه می‌شود. تنها حالت‌های دسترسی و (برخی) نشان‌های زمانی حفظ می‌شوند (گزینه preserve را ببینید)، و تمام صفت‌های دیگر از جمله مالکیت، context و صفت‌های توسعه‌یافته نادیده گرفته می‌شوند. فایل‌های ویژه مانند دستگاه‌های کاراکتری و بلوکی، لوله‌های نام‌دار (pipes) و سوکت‌ها رد شده و پیوندها دنبال نمی‌شوند. انتقال فایل‌ها با استفاده از عملیات تغییر نام سیستم‌عامل زیربنایی صورت می‌گیرد. برای انتقال بین دستگاه‌های دیسک مختلف، lf ابتدا اقدام به کپی کرده و سپس در صورت نبود خطا فایل اصلی را حذف می‌کند. خطاهای عملیاتی در خط پیام و در فایل لاگ ثبت می‌شوند و فرآیند را پیش از موعد متوقف نمی‌کنند.

عملیات فایل می‌توانند روی فایل انتخابی جاری یا چندین فایل (با انتخاب قبلی آن‌ها) انجام گیرند. هنگامی که یک فایل را copy می‌کنید، lf در عمل فایل را روی دیسک کپی نمی‌کند، بلکه نام آن را در فایلی ثبت می‌نماید. کپی واقعی در زمان اجرای دستور paste انجام می‌شود. به همین ترتیب، اجرای paste پس از cut فایل را انتقال می‌دهد.

می‌توانید عملیات‌های کپی و انتقال را با تعریف یک دستور paste سفارشی‌سازی کنید. این دستور ویژه‌ای است که در صورت تعریف شدن به جای پیاده‌سازی داخلی فراخوانی می‌شود. می‌توانید از مثال زیر به عنوان نقطه آغاز استفاده فرمایید:

cmd paste %{{
    load=$(cat ~/.local/share/lf/files)
    mode=$(echo "$load" | sed -n '1p')
    list=$(echo "$load" | sed '1d')
    if [ $mode = 'copy' ]; then
        cp -R $list .
    elif [ $mode = 'move' ]; then
        mv $list .
        rm ~/.local/share/lf/files
        lf -remote 'send clear'
    fi
}}

از نکات سودمندی که می‌توان در نظر گرفت، استفاده از گزینه‌های پشتیبان‌گیری (--backup) یا حفظ صفت‌ها (-a) در دستورات cp و mv در صورت پشتیبانی سیستم، تغییر نوع دستور به ناهمگام، یا استفاده از دستور rsync با گزینه نوار پیشرفت برای کپی و ارسال دوره‌ای درصد پیشرفت به کلاینت از طریق فراخوانی‌های echo راه دور است.

برنامه lf به صورت پیش‌فرض برای حفاظت از کاربران تازه‌کار، دستور delete را به هیچ کلیدی اختصاص نداده است. می‌توانید حذف فایل را با تعریف یک دستور delete شخصی‌سازی کنید. همچنین در صورت تمایل می‌توانید کلیدی به این دستور منتسب نمایید. دستوری نمونه برای انتقال فایل‌های انتخاب‌شده به پوشه سطل زباله و حذف کامل فایل‌ها پس از درخواست تایید، در فایل پیکربندی نمونه ارائه شده است.

دو سازوکار در lf برای جستجوی فایل در پوشه جاری تعبیه شده است: جستجو (Searching) روش سنتی برای انتقال انتخاب به فایلی منطبق با یک الگوی مشخص است. یافتن (Finding) روشی جایگزین برای جستجوی الگو احتمالاً با تعداد فشردن کلید کمتر است.

سازوکار جستجو با دستورات search (به طور پیش‌فرض /)، search-back (پیش‌فرض ?)، search-next (پیش‌فرض n) و search-prev (پیش‌فرض N) پیاده‌سازی شده است. می‌توانید searchmethod را روی glob تنظیم کنید تا تطبیق با الگوی گلوب انجام شود. الگوهای گلوب از * برای تطبیق با هر دنباله‌ای، ? برای هر نویسه تک، و [...] یا [^...] برای مجموعه‌ها یا بازه‌های نویسه‌ای پشتیبانی می‌کنند. می‌توانید searchmethod را روی regex برای تطبیق با عبارات منظم تنظیم نمایید. برای راهنمای کامل سینتکس موتور RE2 در زبان Go به نشانی زیر مراجعه کنید: https://pkg.go.dev/regexp/syntax.

می‌توانید گزینه incsearch را فعال کنید تا هم‌گام با تایپ، با فشردن هر کلید به مورد منطبق پرش شود. در این حالت می‌توانید از cmd-enter برای تایید جستجو یا از cmd-escape برای لغو آن استفاده کنید. همچنین می‌توانید دستورات دیگری را با cmap تعریف کنید تا جستجو بلافاصله تایید شده و دستور مورد نظر اجرا شود. برای مثال، می‌توانید با نگاشت زیر با فشردن کلید جهت‌نمای راست جستجو را به پایان رسانده و فایل انتخابی را باز کنید:

cmap <right> :cmd-enter; open

سازوکار یافتن با دستورات find (پیش‌فرض f)، find-back (پیش‌فرض F)، find-next (پیش‌فرض ;) و find-prev (پیش‌فرض ,) پیاده‌سازی شده است. می‌توانید گزینه anchorfind را غیرفعال کنید تا الگو در هر موقعیتی از نام فایل (نه لزوماً از ابتدا) تطبیق یابد. با گزینه findlen می‌توان تعداد کلیدهای لازم برای تطبیق را تنظیم کرد؛ اگر روی صفر تنظیم شود، کلیدها تا زمانی دریافت می‌شوند که تنها یک مورد منطبق باقی بماند. مقادیر پیش‌فرض این دو گزینه برای پرش به اولین فایل با حرف ابتدایی داده‌شده تنظیم شده است.

برخی گزینه‌ها روی هر دو روش جستجو و یافتن تاثیر می‌گذارند: می‌توانید گزینه wrapscan را غیرفعال کنید تا از گردش مجدد جستجو در انتهای فهرست فایل‌ها جلوگیری شود. می‌توانید گزینه ignorecase را غیرفعال کنید تا تمایز حروف کوچک و بزرگ در الگو و نام فایل رعایت شود (این گزینه با داشتن حروف بزرگ در الگو خودکار نادیده گرفته می‌شود که با خاموش کردن smartcase این رفتار متوقف می‌گردد). دو گزینه مشابه ignoredia و smartdia برای کنترل تطبیق اعراب و نشانه‌های صوتی در حروف لاتین تعبیه شده‌اند.

می‌توانید دستور open (به طور پیش‌فرض l و <right>) را برای سفارشی‌سازی نحوه باز کردن فایل‌ها تعریف کنید. این دستور تنها زمانی اجرا می‌شود که فایل انتخابی یک پوشه نباشد؛ در غیر این صورت برنامه وارد پوشه خواهد شد. می‌توانید آن را دقیقاً مشابه هر دستور دیگری تعریف نمایید:

cmd open $vi $fx

امکان بهره‌گیری از انواع مختلف دستورات وجود دارد:

cmd open &xdg-open $f

شاید بخواهید بر اساس پسوند فایل‌ها یا نوع MIME حاصل از دستور file تصمیم‌گیری کنید:

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
}}

می‌توانید از setsid پیش از دستور بازکننده خود استفاده کنید تا فرآیندها پس از خروج از lf نیز به کار خود ادامه دهند.

دستورات شل معمولی ($) به محیط ترمینال می‌روند که برای دستوراتی که فوراً به پایان می‌رسند (مانند xdg-open در مثال بالا) باعث پرش صفحه نمایش می‌شود. اگر می‌خواهید از دستورات شل ناهمگام (&) استفاده کنید و در عین حال در صورت لزوم به ترمینال نیز دسترسی داشته باشید (مانند vi در مثال بالا)، می‌توانید از یک دستور راه دور استفاده فرمایید:

cmd open &{{
    case $(file --mime-type -Lb $f) in
        text/*) lf -remote "send $id \$vi \$fx";;
        *) for f in $fx; do xdg-open $f > /dev/null 2> /dev/null & done;;
    esac
}}

توجه داشته باشید که دستورات شل ناهمگام به صورت پیش‌فرض در گروه فرآیندی مستقل خود اجرا می‌شوند و نیازی به استفاده دستی از setsid ندارند.

دستور زیر به صورت پیش‌فرض تنظیم شده است:

cmd open &$OPENER $f

همچنین می‌توانید به دلخواه از سایر ابزارهای بازکننده فایل استفاده کنید. گزینه‌های احتمالی عبارتند از: libfile-mimeinfo-perl (نام فایل اجرایی mimeopen)، rifle (بازکننده پیش‌فرض برنامه ranger) یا mimeo.

برنامه lf فایل‌ها را در پنجره پیش‌نمایش با چاپ محتوای فایل تا انتها یا تا زمان پر شدن صفحه نمایش می‌دهد. این خروجی را می‌توان با ارائه یک اسکریپت پیش‌نمایش سفارشی برای فیلترسازی ارتقا داد. از این قابلیت می‌توان برای برجسته‌سازی کدهای منبع، نمایش محتوای فایل‌های فشرده یا مشاهده فایل‌های PDF یا تصاویر بهره برد. برنامه lf برای رنگ‌آمیزی، کدهای فرار ANSI را تشخیص می‌دهد.

جهت استفاده از این قابلیت، لازم است مقدار گزینه previewer را برابر مسیر یک فایل اجرایی قرار دهید. آرگومان‌های زیر به فایل ارسال می‌شوند: (1) نام فایل جاری، (2) عرض، (3) ارتفاع، (4) موقعیت افقی، (5) موقعیت عمودی پنجره پیش‌نمایش، و (6) حالت اجرا ("preview" یا "preload"). خروجی حاصل از اجرای اسکریپت در پنجره پیش‌نمایش چاپ می‌شود.

انواع مختلف فایل‌ها با تطبیق پسوند فایل (یا نوع MIME حاصل از دستور file) قابل تفکیک هستند:

#!/bin/sh
case "$1" in
    *.tar*) tar tf "$1";;
    *.zip) unzip -l "$1";;
    *.rar) unrar l "$1";;
    *.7z) 7z l "$1";;
    *.pdf) pdftotext "$1" -;;
    *) highlight -O ansi "$1";;
esac

از آنجا که فایل‌ها ممکن است حجیم باشند، lf پس از خواندن سطرهای کافی به طور خودکار پایپ خروجی اسکریپت را با ارسال سیگنال SIGPIPE می‌بندد. توجه داشته باشید که برخی برنامه‌ها ممکن است به سیگنال SIGPIPE واکنش مناسبی نشان نداده و با کد خروجی غیرصفر خارج شوند که این امر مانع از کش شدن خروجی می‌گردد. می‌توانید یک دستور پایانی || true اضافه کنید تا از چنین خطاهایی جلوگیری شود:

highlight -O ansi "$1" || true

همچنین می‌توانید از همان اسکریپت در میانبر صفحه‌بند (pager) خود نیز استفاده نمایید:

set previewer ~/.config/lf/pv.sh
map i $~/.config/lf/pv.sh $f | less -R

برای صفحه‌بند less، می‌توانید به جای آن از سازوکار LESSOPEN بهره ببرید تا اطلاعات سودمند درباره فایل از جمله مسیر کامل آن در خط وضعیت پایینی قابل نمایش باشد:

set previewer ~/.config/lf/pv.sh
map i $LESSOPEN='| ~/.config/lf/pv.sh %s' less -R $f

از آنجا که اسکریپت پیش‌نمایش برای هر تغییر انتخاب فایل فراخوانی می‌شود، در صورتی که کاربر به سرعت در میان فایل‌ها حرکت کند، ممکن است تولید پیش‌نمایش‌ها با تاخیر مواجه شود. برای رفع این مسئله، می‌توان گزینه preload را فعال کرد تا پیش‌نمایش‌ها از قبل آماده شوند. در این حالت، هم‌زمان با پیمایش کاربر، اسکریپت پیشاپیش روی فایل‌ها اجرا می‌شود؛ اگر کد خروجی اسکریپت صفر باشد، خروجی در حافظه کش شده و توسط lf نشان داده می‌شود (مفید برای متون و پیش‌نمایش‌های sixel)؛ در غیر این صورت، برنامه در زمان انتخاب واقعی فایل مجدداً اسکریپت را فراخوانی می‌کند (مفید برای پیش‌نمایش‌های مدیریت‌شده توسط برنامه‌های خارجی).

برنامه lf پوشه کاری فرآیند خود را به پوشه جاری تغییر می‌دهد تا دستورات شل همواره در پوشه نمایش‌یافته عمل کنند. پس از خروج، برنامه مانند سایر ابزارهای شل به همان پوشه‌ای که از آن اجرا شده بود بازمی‌گردد. اگر می‌خواهید پس از خروج در همان پوشه جاری بمانید، می‌توانید از اسکریپت‌های پوسته نمونه lfcd موجود در مخزن پروژه در نشانی زیر استفاده کنید: https://github.com/gokcehan/lf/tree/master/etc

دستور ویژه‌ای به نام on-cd وجود دارد که در صورت تعریف شدن، هنگام تغییر پوشه یک دستور شل را اجرا می‌کند. می‌توانید آن را دقیقاً مشابه هر دستور دیگری تعریف فرمایید:

cmd on-cd &{{
    bash -c '
    # نمایش وضعیت مخزن گیت در اعلان
    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 " (%s)")
    fmt="\033[32;1m%u@%h\033[0m:\033[34;1m%d\033[0m\033[1m%f$git\033[0m"
    lf -remote "send $id set promptfmt \"$fmt\""
    '
}}

اگر می‌خواهید دنباله‌های فرار (escape sequences) به ترمینال بفرستید، می‌توانید از دستور tty-write استفاده کنید. دنباله فرار مخصوص xterm زیر، عنوان ترمینال را برابر با پوشه کاری قرار می‌دهد:

cmd on-cd &{{
    lf -remote "send $id tty-write \"\033]0;$PWD\007\""
}}

این دستور هنگام تغییر پوشه اجرا می‌شود اما در زمان راه‌اندازی اجرا نمی‌گردد. می‌توانید فراخوانی مستقلی اضافه کنید تا در هنگام راه‌اندازی اولیه نیز اجرا شود:

cmd on-cd &{{ ... }}
on-cd

توجه داشته باشید که از انواع مختلف دستورات شل می‌توان استفاده نمود، اما % و & معمولاً مناسب‌تر هستند، زیرا $ و ! به ترتیب باعث پرش صفحه و توقف برنامه می‌شوند.

همچنین دستور pre-cd وجود دارد که مانند on-cd عمل می‌کند، با این تفاوت که پیش از تغییر واقعی پوشه اجرا می‌شود. دستور مرتبط دیگر on-load است که پس از بارگذاری یک پوشه اجرا می‌گردد.

مشابه با on-cd، دستور on-load نیز وجود دارد که در صورت تعریف شدن، پس از بارگذاری یک پوشه یک دستور شل را اجرا می‌کند. این دستور در ترکیب با addcustominfo بسیار کارآمد است.

از مثال زیر می‌توان برای نمایش نشانگرهای گیت در ستون اطلاعات (info) استفاده کرد:

cmd on-load &{{
    cd "$(dirname "$1")" || exit 1
    [ "$(git rev-parse --is-inside-git-dir 2>/dev/null)" = false ] || exit 0
    cmds=""
    for file in "$@"; do
        case "$file" in
            */.git|*/.git/*) continue;;
        esac
        status=$(git status --porcelain --ignored -- "$file" | cut -c1-2 | head -n1)
        if [ -n "$status" ]; then
            cmds="${cmds}addcustominfo \"${file}\" \"$status\"; "
        else
            cmds="${cmds}addcustominfo \"${file}\" ''; "
        fi
    done
    if [ -n "$cmds" ]; then
        lf -remote "send $id :$cmds"
    fi
}}

کاربرد دیگر می‌تواند نمایش ابعاد فایل‌های تصویری و ویدیویی باشد:

cmd on-load &{{
    cmds=""
    for file in "$@"; do
        mime=$(file --mime-type -Lb -- "$file")
        case "$mime" in
            # تصاویر برداری مشکل‌ساز هستند
            image/svg+xml)
                ;;
            image/*|video/*)
                dimensions=$(exiftool -s3 -imagesize -- "$file")
                cmds="${cmds}addcustominfo \"${file}\" \"$dimensions\"; "
                ;;
        esac
    done
    if [ -n "$cmds" ]; then
        lf -remote "send $id :$cmds"
    fi
}}

برنامه lf تلاش می‌کند رنگ‌های خود را به صورت خودکار با محیط تطبیق دهد. کار با یک طرح رنگی پیش‌فرض آغاز شده و سپس رنگ‌ها بر اساس مقادیر متغیرهای محیطی موجود به‌روزرسانی می‌شوند. رنگ‌ها به ترتیب زیر اعمال می‌گردند:

1.
پیش‌فرض (default)
2.
متغیر LSCOLORS (در دستور ls در macOS/BSD)
3.
متغیر LS_COLORS (در دستور GNU ls)
4.
متغیر LF_COLORS (ویژه برنامه lf)
5.
فایل colors (ویژه برنامه lf)

لطفاً برای اطلاعات بیشتر درباره LSCOLORS و LS_COLORS به صفحات راهنمای مربوطه مراجعه فرمایید. متغیر LF_COLORS با همان ساختار LS_COLORS تعبیه شده تا در صورتی که بخواهید رنگ‌ها را فقط برای lf و نه ls تنظیم کنید، از آن استفاده نمایید. فایل colors (به بخش CONFIGURATION مراجعه کنید) برای پیکربندی آسان‌تر بدون متغیرهای محیطی در نظر گرفته شده است. این فایل شامل جفت‌های جداشده با فاصله است و نویسه # برای کامنت‌ها به کار می‌رود.

می‌توانید رنگ‌های lf را به دو شیوه پیکربندی کنید: نخست، تنها ۸ رنگ اصلی مورد استفاده در ترمینال خود را تنظیم کنید و lf به صورت خودکار آن رنگ‌ها را شناسایی خواهد کرد. بسته به ترمینال خود، می‌توانید رنگ‌ها را از یک پالت ۲۴ بیتی برگزینید. این رویکرد پیشنهادی است زیرا رنگ‌های به کار رفته در سایر برنامه‌ها نیز با یکدیگر هماهنگ خواهند بود.

دوم، می‌توانید مقادیر متغیرهای محیطی یا فایل colors را برای سفارشی‌سازی دقیق و جزء‌به‌جزء تنظیم نمایید. توجه داشته باشید که LS_COLORS/LF_COLORS از LSCOLORS قدرتمندتر هستند و حتی در صورت عدم نصب ابزارهای گنو نیز کار می‌کنند. ترکیب این روش با روش نخست بهترین نتیجه را حاصل می‌کند.

در پایان، ممکن است بخواهید رنگ‌های خط اعلان را نیز متناسب با سایر رنگ‌ها تنظیم کنید. رنگ‌های خط اعلان از طریق گزینه promptfmt قابل تنظیم است که می‌تواند شامل کدهای فرار ANSI باشد.

شایان ذکر است که lf از تعداد رنگ‌هایی که توسط مدخل ترمینال در پایگاه داده‌های terminfo یا infocmp گزارش می‌شود پشتیبانی می‌کند. اگر ترمینال شما از رنگ‌های ۲۴ بیتی پشتیبانی می‌کند، می‌توانید با تنظیم متغیر $COLORTERM به truecolor یا اطمینان از پایان یافتن $TERM با -truecolor پشتیبانی آن را فعال نمایید.

رنگ‌های پیش‌فرض lf عمدتاً از پیش‌فرض‌های dircolors گنو گرفته شده‌اند. این پیش‌فرض‌ها از ۸ رنگ اصلی و صفت برجسته (bold) استفاده می‌کنند. مقادیر پیش‌فرض به همراه ترتیب انطباق در lf به شرح زیر است:

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

توجه داشته باشید که lf ابتدا نام فایل‌ها را تطبیق می‌دهد و سپس به سراغ نوع فایل می‌رود. ترتیب کامل تطبیق از خاص‌ترین تا عمومی‌ترین عبارت است از:

1.
مسیر کامل فایل (مانند ~/.config/lf/lfrc)
2.
نام پوشه (مانند .git/) (تنها با پوشه‌های دارای ممیز پایانی تطبیق می‌یابد)
3.
نوع فایل (مانند ln) (به جز fi)
4.
نام فایل (مانند README*)
5.
نام فایل (مانند *README)
6.
نام پایه فایل (مانند README.*)
7.
پسوند فایل (مانند *.txt)
8.
پیش‌فرض (مانند fi)

برای نمونه، برای یک فایل متنی معمولی /path/to/README.txt، مدخل‌های زیر به ترتیب در پیکربندی بررسی شده و نخستین مورد منطبق به کار می‌رود:

1.
/path/to/README.txt
2.
(رد می‌شود زیرا فایل پوشه نیست)
3.
(رد می‌شود زیرا فایل از نوع fi است)
4.
README.txt*
5.
*README.txt
6.
README.*
7.
*.txt
8.
fi

برای یک پوشه معمولی /path/to/example.d نیز مدخل‌های زیر بررسی می‌شوند:

1.
/path/to/example.d
2.
example.d/
3.
di
4.
example.d*
5.
*example.d
6.
example.*
7.
*.d
8.
fi

به دلایل کارایی، الگوهای شبیه گلوب تطبیق گلوب واقعی انجام نمی‌دهند.

برای نمونه، می‌توانید یک متغیر را به این شکل تنظیم کنید:

export LF_COLORS="~/Documents=01;31:~/Downloads=01;31:~/.local/share=01;31:~/.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:"

قرار دادن همه موارد در یک خط ممکن است خوانایی را دشوار سازد؛ می‌توانید با اسکیپ کردن خطوط جدید به کمک بک‌اسلش آن را در چند سطر بنویسید:

export LF_COLORS="\
~/Documents=01;31:\
~/Downloads=01;31:\
~/.local/share=01;31:\
~/.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:\
"

مدخل ln از مقدار ویژه target پشتیبانی می‌کند که از سبک مقصد پیوند برای استایل استفاده خواهد کرد. تعریف متغیری تا این حد طولانی در فایل پیکربندی شل شاید مطلوب نباشد؛ به جای آن می‌توانید از فایل colors (بخش CONFIGURATION) استفاده نمایید. یک نمونه فایل colors در نشانی زیر موجود است: https://github.com/gokcehan/lf/blob/master/etc/colors.example همچنین می‌توانید به صفحه ویکی کدهای فرار ANSI در نشانی زیر مراجعه کنید: https://en.wikipedia.org/wiki/ANSI_escape_code

آیکون‌ها با استفاده از متغیر محیطی LF_ICONS یا فایل icons (بخش CONFIGURATION) پیکربندی می‌شوند. این متغیر از همان ساختار LS_COLORS/LF_COLORS بهره می‌برد، اما به جای کدهای رنگ، از نویسه‌ها یا نمادهای تکی به عنوان مقدار استفاده می‌کند. مدخل ln از مقدار ویژه target برای انتخاب آیکون مقصد پیوند پشتیبانی می‌نماید. فایل icons شامل آرایه‌های جداشده با فاصله است و نویسه # برای کامنت‌ها به کار می‌رود. هر سطر باید شامل ۱ تا ۳ ستون باشد: نوع فایل یا الگوی نام فایل، آیکون، و رنگ اختیاری آیکون. استفاده از تنها یک ستون، تمام قوانین مربوط به آن نوع یا نام را غیرفعال می‌کند. فراموش نکنید که برای نمایش آیکون‌ها عبارت set icons true را به فایل lfrc خود اضافه نمایید. مقادیر پیش‌فرض به ترتیبی که lf آن‌ها را تطبیق می‌دهد در زیر آمده است:

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  -

یک نمونه فایل icons در نشانی زیر موجود است: https://github.com/gokcehan/lf/blob/master/etc/icons.example

یک نمونه فایل آیکون‌های رنگی نیز در نشانی زیر در دسترس است: https://github.com/gokcehan/lf/blob/master/etc/icons_colored.example

خط‌کش می‌تواند با استفاده از گزینه rulerfile پیکربندی شود (به بخش CONFIGURATION مراجعه کنید). محتوای فایل خط‌کش باید یک قالب زبان Go (Go template) باشد که سپس برای ایجاد خروجی واقعی رندر می‌شود (برای جزئیات بیشتر درباره نحو به https://pkg.go.dev/text/template مراجعه فرمایید).

فیلدهای داده زیر صادر می‌شوند:

.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، وگرنه رشته خالی

توابع زیر در قالب در دسترس هستند:

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             تبدیل یک رشته به حروف بزرگ

شناسه ویژه {{.SPACER}} می‌تواند برای تقسیم خط‌کش به بخش‌هایی با فاصله مساوی از یکدیگر به کار رود.

فایل خط‌کش پیش‌فرض در نشانی زیر موجود است: https://github.com/gokcehan/lf/blob/master/etc/ruler.default

2026-07-31 r42