| VIFM(1) | General Commands Manual | VIFM(1) |
نام (NAME)
vifm - مدیر فایل مبتنی بر vi
خلاصه دستور (SYNOPSIS)
vifm [OPTION]...
vifm [OPTION]... path
vifm [OPTION]... path path
توضیحات (DESCRIPTION)
برنامه vifm یک مدیر فایل مبتنی بر ncurses با کلیدهای میانبر شبیه به vi است. اگر از vi استفاده میکنید، vifm کنترل کامل صفحهکلید را بر روی فایلهایتان بدون نیاز به یادگیری مجموعهای جدید از دستورها در اختیارتان میگذارد.
گزینهها (OPTIONS)
دستور vifm در دایرکتوری جاری شروع به کار میکند، مگر اینکه دایرکتوری متفاوتی در خط فرمان مشخص شده باشد یا گزینه “vifminfo” شامل “savedirs” باشد (که در این صورت آخرین دایرکتوریهای بازدیدشده به عنوان پیشفرض استفاده میشوند).
- -
- فهرست فایلها را از جریان ورودی استاندارد میخواند و یک نمای سفارشی از آنها میسازد (بخش “نماهای سفارشی (Custom views)” را ببینید). دایرکتوری کاری جاری به عنوان پایه برای مسیرهای نسبی استفاده میشود.
- <path>
- برنامه Vifm را در مسیر مشخصشده اجرا میکند.
- <path> <path>
- برنامه Vifm را در مسیرهای مشخصشده اجرا میکند.
مشخص کردن دو دایرکتوری، نمای دوپنجرهای (split view) را فعال میکند، حتی اگر vifm در پایان اجرای قبلی در حالت تکنمایی بوده باشد. برای لغو این رفتار، میتوان دستور :only را در فایل vifmrc قرار داد.
هنگامی که تنها یک آرگومان مسیر در خط فرمان مشخص شود، قاب چپ/بالا به طور خودکار به عنوان نمای جاری تنظیم میشود.
مسیرهای منتهی به فایلها نیز مجاز هستند، در صورتی که بخواهید vifm با باز کردن یک بایگانی آغاز به کار کند.
- --select <path>
- دایرکتوری والد مسیر دادهشده را باز کرده و فایل مشخصشده را در آن انتخاب میکند.
- -f
- باعث میشود vifm به جای باز کردن فایلها، موارد انتخابشده را در $VIFM/vimfiles بنویسد و خارج شود.
- --choose-files <path>|-
- فایل خروجی را تنظیم میکند تا در هنگام خروج به جای باز کردن فایلها، موارد انتخابشده در آن نوشته شوند. “-” به معنای خروجی استاندارد است. برای غیرفعال کردن آن از یک مقدار خالی استفاده کنید.
- --choose-dir <path>|-
- فایل خروجی را تنظیم میکند تا آخرین دایرکتوری بازدیدشده در هنگام خروج در آن نوشته شود. “-” به معنای خروجی استاندارد است. برای غیرفعال کردن آن از یک مقدار خالی استفاده کنید.
- --delimiter <delimiter>
- جداکننده را برای فهرست مسیرهای فایلی که توسط vifm نوشته میشوند تعیین میکند. مقدار خالی به معنای نویسه تهی (null) است. پیشفرض، نویسه خط جدید است.
- --on-choose <command>
- دستوری را تعیین میکند که باید به جای باز کردن فایلهای انتخابشده، روی آنها اجرا شود. این دستور میتواند از هر کدام از ماکروهای توصیفشده در بخش “ماکروهای دستور (Command macros)” در زیر استفاده کند. دستور یکبار برای کل موارد انتخابشده اجرا میشود.
- --plugins-dir <path>
- دایرکتوری افزونههای اضافی (میتواند چندین بار تکرار شود). آخرین دایرکتوری اضافهشده بالاترین اولویت را دارد.
- --logging[=<startup log path>]
- ثبت برخی از جزئیات عملیاتی در $XDG_DATA_HOME/vifm/log یا $VIFM/log. اگر مسیر اختیاری گزارش راهاندازی مشخص شده باشد و مجوزها اجازه نوشتن در آن را بدهند، گزارشهای راهاندازی اولیه (قبل از تعیین دایرکتوریهای پیکربندی) در آنجا ثبت میشود.
- --server-list
- فهرست نامهای سرور موجود را نمایش داده و خارج میشود.
- --server-name <name>
- نام هدف یا نام همین نمونه (در صورت تداخل نام، شمارههای ترتیبی به انتهای آن اضافه میشوند).
- --remote
- بقیه خط فرمان را به نمونه دیگری از vifm ارسال میکند؛ --server-name درست مانند هر آرگومان دیگری در نظر گرفته میشود و باید پیش از --remote در خط فرمان قرار گیرد. وقتی هیچ سروری وجود ندارد، بدون هیچ هشداری خارج میشود. هیچ محدودیتی در تعداد آرگومانهای قابل پردازش وجود ندارد. میتوان --remote را با -c <command> یا +<command> ترکیب کرد تا دستورها در نمونه در حال اجرای vifm اجرا شوند. همچنین بخش “کارخواه-سرور (Client-Server)” را در زیر ببینید.
- --remote-expr
- عبارت را به سرور vifm فرستاده و نتیجه را چاپ میکند. همچنین بخش “کارخواه-سرور (Client-Server)” را در زیر ببینید.
- -c <command> یا +<command>
- اجرای <command> در حالت خط فرمان هنگام راهاندازی. دستورها در چنین آرگومانهایی به همان ترتیبی که در خط فرمان ظاهر میشوند اجرا میگردند. دستورهای دارای فاصله یا نمادهای ویژه باید درون گیومه دوتایی یا تکی قرار گیرند یا تمام نمادهای ویژه گریز داده شوند (نحو دقیق آن به شدت به پوسته وابسته است). آرگومان "+" معادل "$" است و بنابراین آخرین مورد نما را انتخاب میکند.
- --help, -h
- نمایش خلاصهای کوتاه از دستورها و خروج از vifm.
- --version, -v
- نمایش اطلاعات نگارش و خروج.
- --no-configs
- صرفنظر کردن از خواندن vifmrc و vifminfo.
برای
توضیحات
مربوط به $VIFM،
بخش
“راهاندازی
(Startup)” را در زیر
ببینید.
کلیدهای عمومی (GENERAL KEYS)
- Ctrl-C یا Escape
- بیشتر عملیاتها را لغو میکند (بخش “لغو کردن (Cancellation)” در زیر را ببینید) و تمام فایلهای انتخابشده را از حالت انتخاب خارج میسازد. علاوه بر این، در صورتی که ورودی فعلی برای تعیین کلید میانبر ناکافی باشد، Escape انتظار برای ورودی بیشتر را لغو میکند.
- Ctrl-L
- صفحه را پاک کرده و دوباره ترسیم میکند. همچنین میتواند فهرست فایلها را در حالتهای مناسب (مانند normal و visual) بازخوانی کند. کلیدهای میانبر اصلی vi برای حرکت در میان فایلها و پنجرههای بازشو (pop-up) استفاده میشوند.
- k, gk یا Ctrl-P
- انتقال مکاننما به اندازه یک سطر به بالا.
- j, gj یا Ctrl-N
- انتقال مکاننما به اندازه یک سطر به پایین.
- h
- زمانی که 'lsview' غیرفعال است یک دایرکتوری به بالا میرود (در نمای درختی به گره دایرکتوری والد میرود)، در غیر این صورت یک فایل به چپ حرکت میکند.
- l
- زمانی که 'lsview' غیرفعال است وارد یک دایرکتوری میشود یا فایلی را اجرا میکند، در غیر این صورت یک فایل به راست حرکت میکند. بخش «انتخاب (Selection)» در زیر را ببینید.
- gg
- رفتن به اولین سطر از فهرست فایلها.
- G
- رفتن به آخرین سطر در فهرست فایلها.
- gh
- رفتن یک دایرکتوری به بالا صرفنظر از نحوه نمایش نما (عادی، شبیه ls). همچنین میتواند برای خروج از نماهای سفارشی از جمله نمای درختی استفاده شود.
- gl یا Enter
- ورود به دایرکتوری یا اجرای یک فایل. بخش «انتخاب (Selection)» در زیر را ببینید.
- H
- حرکت به اولین فایل در پنجره.
- M
- حرکت به فایل میانی در پنجره.
- L
- حرکت به آخرین فایل در پنجره.
- Ctrl-F یا Page Down
- حرکت به اندازه یک صفحه به جلو.
- Ctrl-B یا Page Up
- حرکت به اندازه یک صفحه به عقب.
- Ctrl-D
- پرش به اندازه نیم صفحه به عقب.
- Ctrl-U
- پرش به اندازه نیم صفحه به جلو.
- n%
- حرکت به فایلی که در n درصدی از بالای فهرست قرار دارد (برای نمونه 25%).
- 0 یا ^
- انتقال مکاننما به ستون اول. توضیحات گزینهٔ 'lsview' را ببینید.
- $
- انتقال مکاننما به ستون آخر. توضیحات گزینهٔ 'lsview' را ببینید.
- Space
- جابهجایی میان فهرستهای فایل.
- gt
- جابهجایی به زبانهٔ بعدی (با چرخش به ابتدا).
- {n}gt
- جابهجایی به زبانه شماره {n} (با چرخش به ابتدا).
- gT
- جابهجایی به زبانهٔ قبلی (با چرخش به انتها).
- {n}gT
- جابهجایی به {n}ـمین زبانهٔ قبلی.
حرکت همراه با تعداد (Movement with Count)
- بیشتر دستورهای حرکتی یک تعداد (count) را نیز میپذیرند؛ برای نمونه 12j به اندازه ۱۲ فایل به سمت پایین حرکت میکند.
- [count]%
- حرکت به درصد مشخصی از فهرست فایلها.
- [count]j
- حرکت به اندازه [count] فایل به سمت پایین.
- [count]k
- حرکت به اندازه [count] فایل به سمت بالا.
- [count]G یا [count]gg
- حرکت به موقعیت [count] در فهرست.
- [count]h
- بالا رفتن به اندازه [count] دایرکتوری.
پیمایش قابها (Scrolling panes)
- zt
- بازترسیم قاب به طوری که فایل در بالای فهرست قرار گیرد.
- zz
- بازترسیم قاب به طوری که فایل در مرکز فهرست قرار گیرد.
- zb
- بازترسیم قاب به طوری که فایل در پایین فهرست قرار گیرد.
- Ctrl-E
- پیمایش قاب به اندازه یک خط به پایین یا یک ستون به راست (در نمای ترانهاده شبیه ls).
- Ctrl-Y
- پیمایش قاب به اندازه یک خط به بالا یا یک ستون به چپ (در نمای ترانهاده شبیه ls).
دستکاری قابها (Pane manipulation)
کاراکتر دوم میتواند همراه با یا بدون کلید Control وارد شود.
- Ctrl-W H
- انتقال قاب به منتهیالیه سمت چپ.
- Ctrl-W J
- انتقال قاب به پایینترین بخش.
- Ctrl-W K
- انتقال قاب به بالاترین بخش.
- Ctrl-W L
- انتقال قاب به منتهیالیه سمت راست.
- Ctrl-W h
- جابهجایی به قاب سمت چپ.
- Ctrl-W j
- جابهجایی به قاب پایینی.
- Ctrl-W k
- جابهجایی به قاب بالایی.
- Ctrl-W l
- جابهجایی به قاب سمت راست.
- Ctrl-W b
- جابهجایی به پنجره پایین-راست.
- Ctrl-W t
- جابهجایی به پنجره بالا-چپ.
- Ctrl-W p
- جابهجایی به پنجره قبلی.
- Ctrl-W w
- جابهجایی به قاب دیگر.
- Ctrl-W o
- باقی گذاشتن تنها یک قاب.
- Ctrl-W s
- تقسیم افقی پنجره.
- Ctrl-W v
- تقسیم عمودی پنجره.
- Ctrl-W x
- جابهجایی جای قابها با یکدیگر.
- Ctrl-W z
- خروج از قاب پیشنمایش یا حالتهای نما.
- Ctrl-W -
- کاهش اندازهٔ نما به اندازه count.
- Ctrl-W +
- افزایش اندازهٔ نما به اندازه count.
- Ctrl-W <
- کاهش اندازهٔ نما به اندازه count.
- Ctrl-W >
- افزایش اندازهٔ نما به اندازه count.
- Ctrl-W |
- تنظیم اندازهٔ نمای فعلی به count.
- Ctrl-W _
- تنظیم اندازهٔ نمای فعلی به count.
- Ctrl-W =
- برابر کردن اندازه دو نما.
برای دستورهای Ctrl-W +، Ctrl-W -، Ctrl-W <، Ctrl-W >، Ctrl-W | و Ctrl-W _ مقدار count میتواند قبل و/یا بعد از Ctrl-W مشخص شود. تعداد حاصل از ضرب این دو مقدار در یکدیگر به دست میآید. بنابراین "2 Ctrl-W 2 -" اندازه پنجره را به اندازه ۴ سطر یا ستون کاهش میدهد.
دستورهای Ctrl-W | و Ctrl-W _ به طور پیشفرض نمای فعلی را بیشینه میکنند.
- نشانهها به همان روشی که در vi هستند تنظیم میشوند.
میتوانید از این نویسهها برای نشانهها استفاده کنید: [a-z][A-Z][0-9].
- m[a-z][A-Z][0-9]
- تنظیم یک نشانه برای فایل در موقعیت فعلی مکاننما.
- '[a-z][A-Z][0-9]
- رفتن به فایلی که برای آن نشانه تنظیم شده است.
همچنین چندین نشانهٔ ویژه وجود دارد که نمیتوان آنها را بهصورت دستی تنظیم کرد:
- ' (تکنقلقول) - دایرکتوری دیدهشدهٔ قبلی در نما؛ بنابراین فشردن '' امکان جابهجایی میان دو مکان آخر را فراهم میکند
- < - نخستین فایل از آخرین بلوک انتخابشده بهصورت دیداری
- > - آخرین فایل از آخرین بلوک انتخابشده بهصورت دیداری
جستجو (SEARCHING)
- /regular expression pattern
- جستجوی فایلهای منطبق با عبارت باقاعده در جهت رو به جلو و بردن مکاننما به تطابق بعدی.
- /
- انجام جستجو رو به جلو با بالاترین مورد از تاریخچهٔ الگوهای جستجو.
- ?regular expression pattern
- جستجوی فایلهای منطبق با عبارت باقاعده در جهت رو به عقب و بردن مکاننما به تطابق قبلی.
- ?
- انجام جستجو رو به عقب با بالاترین مورد از تاریخچهٔ الگوهای جستجو.
- اسلش انتهایی برای دایرکتوریها در نظر گرفته میشود، بنابراین /\/ برای دایرکتوریها و پیوندهای نمادین به دایرکتوریها جستجو میکند. در حال حاضر // نیز کار میکند، اما این مورد ممکن است در آینده تغییر کند؛ بنابراین اگر الگو را بهصورت دستی تایپ نمیکنید، گریز دادن (escape کردن) اسلش را مد نظر داشته باشید.
- اگر گزینهٔ 'hlsearch' تنظیم شده باشد، تطابقها بهطور خودکار انتخاب میشوند. فعالسازی 'incsearch' جستجو را تعاملی میکند. گزینههای 'ignorecase' و 'smartcase' بر حساسیت به بزرگی و کوچکی حروف در پرسوجوهای جستجو، فیلتر محلی و موارد دیگری که در توضیحات 'caseoptions' به تفصیل آمده است، تأثیر میگذارند.
- [count]n
- رفتن به فایل بعدی منطبق با آخرین الگوی جستجو. جهت آخرین جستجو را در نظر میگیرد.
- [count]N
- رفتن به فایل قبلی منطبق با آخرین الگوی جستجو. جهت آخرین جستجو را در نظر میگیرد.
- اگر گزینهٔ 'hlsearch' تنظیم شده باشد، فشردن n/N برای انجام جستجو و رفتن به یک مورد منطبق میتواند انتخاب موجود در حالت عادی (normal mode) را بازنشانی کند. این وضعیت زمانی رخ میدهد که نتایج جستجوی قبلی وجود نداشته باشد (یعنی هیچ فایلی با برجستهسازی بخش منطبق وجود نداشته باشد)، در غیر این صورت انتخاب دستنخورده باقی میماند. بازنشانی تطابقهای جستجو به هر روشی (مانند اجرای :nohlsearch یا فشردن Escape) باعث میشود در بار بعدی فشردن n/N، جستجو اجباراً انجام شود و فایلهای منطبق انتخاب شوند.
همچنین بخش «Regular expressions» را ببینید.
- [count]f[character]
- جستجو رو به جلو برای فایلی که نام آن با [character] آغاز میشود. جستجو از انتهای فهرست دور میزند و به ابتدا بازمیگردد.
- [count]F[character]
- جستجو رو به عقب برای فایلی که نام آن با [character] آغاز میشود. جستجو از انتهای فهرست دور میزند و به ابتدا بازمیگردد.
- [count];
- یافتن تطابق بعدی f یا F.
- [count],
- یافتن تطابق قبلی f یا F.
نکته: کلیدهای f، F، ; و , در صورت استفادهٔ انفرادی در ابتدا و انتهای فهرست دور میزنند اما زمانی که بهعنوان گزینشگر (selector) استفاده شوند، دور نمیزنند.
فیلترهای فایل (FILE FILTERS)
سه فیلتر اصلی برای فایلها وجود دارد:
- فیلتر فایلهای نقطهدار (بر دایرکتوریهای ویژهٔ «.» و «..» که نمایش آنها توسط گزینهٔ 'dotdirs' کنترل میشود تأثیری ندارد)، گزینهٔ 'dotfiles' را ببینید؛
- فیلتر دائمی؛
- فیلتر محلی (توضیحات دستور «=» در حالت عادی را ببینید).
فیلتر دائمی اساساً امکان تعریف گروهی از نامهای فایل را فراهم میکند که بهطور پیشفرض تمایلی به دیدن آنها وجود ندارد، مانند فایلهای موقت یا پشتیبان که ممکن است در کنار فایلهای عادی ایجاد شوند؛ درست همانطور که معمولاً نیازی به مشاهدهٔ فایلهای مخفی نقطهدار (فایلهایی که با نقطه آغاز میشوند) ندارید. از سوی دیگر، فیلتر محلی برای فیلتر کردن فوری و موقت فهرست فایلهای در دسترس است، تا فایلهای غیرضروری از نما حذف شوند یا امکان استفاده از محدودهٔ % در یک دستور :command فراهم گردد.
برای ویرایش قطعیتر و پیشبینیپذیرتر، فیلتر دائمی به دو بخش تقسیم شده است:
- بخشی که صراحتاً از طریق دستور :filter ویرایش میشود؛
- بخش دیگری که بهطور ضمنی از طریق میانبر zf ویرایش میشود.
فایلها با هر دو بخش سنجیده میشوند و تطابق با حداقل یکی از بخشها کافی است.
- هر فهرست فایل نسخهٔ مخصوص به خود را از هر فیلتر دارد.
- فایلهای فیلترشده در جستجوی / یا دستورات :commands بررسی نمیشوند.
- فایلها و دایرکتوریها بهطور جداگانه فیلتر میشوند. این کار با افزودن یک اسلش به نام دایرکتوری پیش از بررسی تطابق آن با فیلتر انجام میگیرد. مثالها:
" فیلتر کردن دایرکتوریهایی که نام آنها به '.files' ختم میشود
:filter /^.*\.files\/$/
" فیلتر کردن فایلهایی که نام آنها به '.d' ختم میشود
:filter {*.d}
" فیلتر کردن فایلها و دایرکتوریهایی که نام آنها به '.o' ختم میشود
:filter /^.*\.o\/?$/
همچنین بخشهای «Regular expressions» و «Patterns» را ببینید.
کلیدهای مقیدسازی تاشدگی (folding) پایه در Vim برای مدیریت فیلترها استفاده میشوند.
- za
- تغییر وضعیت نمایانی فایلهای نقطهدار.
- zo
- نمایش فایلهای نقطهدار.
- zm
- پنهان کردن فایلهای نقطهدار.
- zf
- افزودن فایلهای انتخابشده به فیلتر دائمی.
- zO
- بازنشانی فیلتر دائمی.
- zR
- ذخیره و بازنشانی همهٔ فیلترها.
- zr
- پاک کردن فیلتر محلی.
- zM
- بازیابی همهٔ فیلترها (خنثیسازی آخرین zR).
- zd
- مستثنی کردن موارد انتخابشده یا فایل فعلی از یک نمای سفارشی. در نمای عادی کاری انجام نمیدهد. در نمای درختی، مستثنی کردن یک دایرکتوری آن زیردرخت را مستثنی میکند. در نماهای مقایسهای، کلید zd گروهی از فایلهای یکسان مجاور را پنهان میکند؛ count میتواند برابر با 1 مشخص شود تا بهجای آن فقط یک فایل یا موارد انتخابشده مستثنی شوند. فایلهایی که از این طریق مستثنی شدهاند، بهعنوان فیلترشده به شمار نمیآیند و بازگردانده نمیشوند مگر اینکه نما دوباره بارگذاری شود.
- =regular expression
- تنها فایلهای منطبق با عبارت باقاعده را نگه میدارد. این یک فیلتر محلی نامیده میشود. اینکه آیا نما با تغییر عبارت باقاعده بهروزرسانی میشود یا خیر، به مقدار گزینهٔ 'incsearch' بستگی دارد. این نوع فیلتر با تغییر دایرکتوری بهطور خودکار بازنشانی میشود. اگرچه برخی از این کلیدها در خارج از نمای درختی نیز کاربرد دارند، اما بیشترین کارایی آنها در ساختارهای درختی است.
- [z
- رفتن به نخستین مدخل همسطحِ (sibling) مدخل کنونی.
- ]z
- رفتن به آخرین مدخل همسطحِ مدخل کنونی.
- zj
- رفتن به دایرکتوری همسطحِ بعدی مدخل کنونی یا عدم انجام هیچ کاری.
- zk
- رفتن به دایرکتوری همسطحِ قبلی مدخل کنونی یا عدم انجام هیچ کاری.
- zx
- تغییر وضعیت تا شدن (fold) زیر مکاننما، یا مدخل والد فایل کنونی در صورتی که مکاننما روی یک دایرکتوری نباشد.
سایر کلیدهای حالت عادی (Other Normal Mode Keys)
- [count]:
- ورود به حالت خط فرمان. [count] محدوده تولید میکند.
- q:
- باز کردن ویرایشگر خارجی برای دریافت دستور خط فرمان. برای جزئیات به بخش «Command line editing» مراجعه کنید.
- q/
- باز کردن ویرایشگر خارجی برای دریافت الگوی جستجو جهت جستجو رو به جلو. برای جزئیات به بخش «Command line editing» مراجعه کنید.
- q?
- باز کردن ویرایشگر خارجی برای دریافت الگوی جستجو جهت جستجو رو به عقب. برای جزئیات به بخش «Command line editing» مراجعه کنید.
- q=
- باز کردن ویرایشگر خارجی برای دریافت الگوی پالایش (filter). برای جزئیات به بخش «Command line editing» مراجعه کنید. برخلاف سایر دستورهای q{x}، این دستور در حالت Visual کار نمیکند.
- [count]!! and [count]!<selector>
- ورود به حالت خط فرمان همراه با دستور ! واردشده. [count] محدوده را تغییر میدهد.
- Ctrl-O
- حرکت به عقب در تاریخچهٔ دایرکتوریهای نمای کنونی. دایرکتوریهای ناموجود بهطور خودکار نادیده گرفته میشوند.
- Ctrl-I
- اگر 'cpoptions' حاوی پرچم "t" باشد، <tab> و <c-i> همانند <space> قاب (pane) فعال را تغییر میدهند، در غیر این صورت در تاریخچهٔ دایرکتوریهای نمای کنونی رو به جلو حرکت میکند. دایرکتوریهای ناموجود بهطور خودکار نادیده گرفته میشوند.
- Ctrl-G
- نمایش یک کادر محاورهای حاوی اطلاعات تفصیلی دربارهٔ فایل کنونی. برای کلیدهای کنترلی به بخش «Menus and dialogs» مراجعه کنید.
- Shift-Tab
- ورود به حالت نما (تنها پس از فعالسازی قاب نما با دستور :view کار میکند).
- ga
- محاسبهٔ اندازهٔ دایرکتوری. برای کارایی بهتر، در صورت امکان از اندازههای ذخیرهشده در حافظهٔ پنهان استفاده میکند. به عنوان یک حالت خاص، محاسبهٔ اندازهٔ مدخل ".." منجر به محاسبهٔ اندازهٔ دایرکتوری کنونی میشود.
- gA
- مانند ga، اما بهروزرسانی اجباری انجام میدهد. مقادیر پیشینِ اندازهٔ دایرکتوریها را نادیده میگیرد.
اگر فایل زیر مکاننما انتخاب شده باشد، تمام موارد انتخابشده پردازش میشوند، در غیر این صورت تنها فایل کنونی بهروزرسانی میشود.
- gf
- یافتن مقصد پیوند (مانند l در حالتی که 'followlinks' خاموش باشد، اما دایرکتوریها را نیز مییابد). در Windows علاوه بر این فایلهای .lnk را نیز دنبال میکند.
- gF
- مشابه gf، اما مسیر نهاییِ زنجیرهٔ پیوندهای نمادین را تفکیک (resolve) میکند.
- gr
- تنها برای
MS-Windows
مشابه کلید l، اما تلاش میکند برنامه را با امتیازهای مدیر سیستم اجرا کند. - av
- ورود به حالت Visual برای بهروزرسانی انتخاب کنونی؛ انتخابهای موجود حفظ میشوند.
- gv
- ورود به حالت Visual با بازیابی آخرین انتخاب.
- [reg]gs
- اگر ثبات (register)
مشخص شده
باشد،
تمامی
فایلهای
فهرستشده
در آن ثبات
که در نمای
کنونی قابل
مشاهده
هستند
انتخاب
میشوند.
هنگامی که ثباتی مشخص نشده باشد، آخرین انتخاب ذخیرهشده برای این نما را بازیابی میکند (مشابه کاری که gv برای انتخاب در حالت بصری انجام میدهد). هنگامی که یک دایرکتوری را ترک میکنید، انتخاب ذخیرهشدهٔ آن برای آن مسیر به خاطر سپرده شده و با بازدید مجدد دایرکتوری، بازیابی میگردد. وضعیت انتخابها حداکثر برای ۱۰ مکان مجزا در سیستم فایل به خاطر سپرده میشود.
- gu<selector>
- کوچک کردن حروف نام فایلهای انتخابشده.
- [count]guu and [count]gugu
- کوچک کردن حروف نام [count] فایل با شروع از فایل کنونی. بدون [count] تنها فایل کنونی تحت تأثیر قرار میگیرد.
- gU<selector>
- بزرگ کردن حروف نام فایلهای انتخابشده.
- [count]gUU and [count]gUgU
- بزرگ کردن حروف نام [count] فایل با شروع از فایل کنونی. بدون [count] تنها فایل کنونی تحت تأثیر قرار میگیرد.
- e
- بررسی و کاوش فایل در قاب کنونی.
- i
- رسیدگی به فایل (حتی اگر اجرایی باشد و گزینهٔ 'runexec' تنظیم شده باشد).
- cw
- دستور change word برای تغییر نام یک یا چند فایل استفاده میشود. اگر چندین فایل انتخاب شده باشند، همانند اجرای دستور :rename بدون آرگومان عمل میکند.
- cW
- دستور change WORD تنها برای تغییر نام فایل (بدون پسوند) استفاده میشود.
- cl
- تغییر مقصد پیوند. اگر چندین فایل انتخاب شده باشند، یک ویرایشگر برای ویرایش مسیرها باز میشود.
- co
- تنها برای *nix
تغییر مالک فایل. - cg
- تنها برای *nix
تغییر گروه فایل. - [count]cp
- تغییر مشخصههای فایل (مجوزها در *nix و خصوصیات در Windows). اگر [count] مشخص شده باشد، به عنوان آرگومان عددی برای دستور غیربازگشتی `chmod` (به فرم [0-7]{3,4}) در نظر گرفته میشود. برای کلیدهای کنترلی به بخش «Menus and dialogs» مراجعه کنید.
- [count]C
- همتاسازی (clone) فایل(ها) به تعداد [count] بار.
- [reg][count]dd
- انتقال
فایلها به
دایرکتوری
سطل زباله
در صورت
تنظیم بودن
گزینهٔ 'trash'،
در غیر این
صورت حذف
دائمی
آنها. به
بخش «Trash directory» در
زیر مراجعه
کنید.
هنگامی که "s" در 'cpoptions' وجود داشته باشد، روی فایلهای انتخابشده یا در صورت عدم انتخاب، روی فایل کنونی عمل میکند. در صورتی که این پرچم تنظیم نشده باشد، همیشه تنها روی فایل کنونی عمل میکند.
- [reg]d[count]<selector>
- مانند dd، اما حرکتها/انتخابگرها (motions/selectors) را میپذیرد.
- [count]DD or D[count]<selector>
- مانند dd و d<selector>، اما همواره دایرکتوری سطل زباله را نادیده میگیرد (حتی زمانی که گزینهٔ 'trash' تنظیم شده باشد). از پرچم "s" در 'cpoptions' تأثیر میپذیرد.
- [reg][count]Y or [reg][count]yy
- رونوشت (yank)
فایلها.
هنگامی که "s" در 'cpoptions' وجود داشته باشد، روی فایلهای انتخابشده یا در صورت عدم انتخاب، روی فایل کنونی عمل میکند. هنگامی که این پرچم تنظیم نشده باشد، همیشه فقط روی فایل کنونی عمل میکند.
- [reg]y[count]<selector>
- رونوشت (yank) فایلهای مشخصشده با حرکت/انتخابگر.
- [reg]p
- کپی فایلهای رونوشتشده به دایرکتوری کنونی، یا انتقال آنها به دایرکتوری کنونی در صورتی که با dd یا :d[elete] حذف شده باشند یا از دایرکتوری سطل زباله برداشته شده باشند. به بخشهای «Trash directory» و «File copying» در زیر مراجعه کنید.
- [reg]P
- انتقال آخرین فایلهای رونوشتشده. مزیت استفاده از P بهجای d و به دنبال آن p این است که P فایلها را تنها یکبار جابهجا میکند. این امر در صورتی که فایلها را در همان سیستم فایلی که دایرکتوری خانگی شما در آن قرار دارد جابهجا میکنید اهمیتی ندارد، اما استفاده از P برای انتقال فایلها به یک سیستم فایل دیگر (یا سیستمهای فایل، در حالتی که میخواهید فایلها را از fs1 به fs2 منتقل کنید و دایرکتوری خانگی شما روی fs3 است) میتواند در زمان شما صرفهجویی کند.
- [reg]al
- قراردادن پیوندهای نمادین با مسیرهای مطلق.
- [reg]rl
- قراردادن پیوندهای نمادین با مسیرهای نسبی.
- t
- انتخاب یا لغو انتخاب (نشانهگذاری/tag) فایل کنونی.
- u
- واگرد (undo) آخرین تغییر..TP Ctrl-R انجام مجدد آخرین تغییر لغوشده (redo).
- dp
- در نمای
مقایسه از
نوع "ofboth grouppaths"،
ورودیهای
متناظر در
قاب دیگر را
برابر با
ورودی فعلی
میکند. اگر
حداقل یک
فایل
انتخاب شده
باشد،
دستور
موارد
انتخابشده
را پردازش
میکند، در
غیر این
صورت فایل
فعلی
پردازش
میشود.
معناشناسی به این صورت است:
- برای ورودیهای یکسان کاری انجام نمیشود
- اگر فایل در نمای فعلی وجود نداشته باشد، جفت آن حذف میشود
- اگر فایل در نمای دیگر وجود نداشته باشد یا متفاوت باشد، جایگزین میشود
- جفتهای فایل با تطبیق مسیرهای نسبی تعریف میشوند
حذف فایل از گزینهٔ 'trash' پیروی میکند. در صورت فعال بودن این گزینه، عملیات قابل بازگردانی/انجام مجدد است (اگرچه نتایج بهطور خودکار قابل مشاهده نخواهند بود).
برخلاف Vim، این عملیات بهجای مجموعهای از تغییرات مجاور، روی یک خط منفرد انجام میشود. - do
- همانند dp، اما تغییرات را در جهت عکس اعمال میکند.
- v or V
- ورود به حالت دیداری (visual mode)، انتخابهای فعلی را پاک میکند.
- [count]Ctrl-A
- افزایش نخستین عدد در نام فایل به اندازهٔ [count] (بهطور پیشفرض ۱).
- [count]Ctrl-X
- کاهش نخستین عدد در نام فایل به اندازهٔ [count] (بهطور پیشفرض ۱).
- ZQ
- همانند :quit!.
- ZZ
- همانند :quit.
- .
- تکرار آخرین دستور خط فرمان (نه دستور حالت عادی) در این اجرا (بلافاصله پس از راهاندازی یا دستور :restart کاری انجام نمیدهد). این دستور به تاریخچهٔ خط فرمان وابسته نیست و با تاریخچهٔ کاملاً غیرفعال نیز قابل استفاده است.
- (
- رفتن به گروه قبلی. گروهها بر اساس کلید مرتبسازی اولیه تعریف میشوند. برای name و iname، اعضای هر گروه حرف اول یکسانی دارند؛ برای سایر کلیدهای مرتبسازی، vifm از size، uid و... استفاده میکند.
- )
- رفتن به گروه بعدی. توضیحات کلید ( را در بالا ببینید.
- {
- پیمایش به نزدیکترین ورودی قبلی از نوع مخالف را سرعت میبخشد؛ با حرکت به عقب به سمت نخستین فایل زمانی که مکاننما روی یک دایرکتوری است، و به سمت نخستین دایرکتوری زمانی که مکاننما روی یک فایل است. این ویژگی اساساً حالت خاصی از ( است که روی "dirs" قفل شده است.
- }
- همانند {، اما در جهت روبهجلو.
- [c
- رفتن به ورودی ناهمخوان قبلی در نمای مقایسهٔ دایرکتوری، یا عدم انجام کاری.
- ]c
- رفتن به ورودی ناهمخوان بعدی در نمای مقایسهٔ دایرکتوری، یا عدم انجام کاری.
- [d
- رفتن به ورودی دایرکتوری قبلی یا عدم انجام کاری.
- ]d
- رفتن به ورودی دایرکتوری بعدی یا عدم انجام کاری.
- [r
- همانند :siblprev.
- ]r
- همانند :siblnext.
- [R
- همانند :siblprev!.
- ]R
- همانند :siblnext!.
- [s
- رفتن به ورودی انتخابشدهٔ قبلی یا عدم انجام کاری.
- ]s
- رفتن به ورودی انتخابشدهٔ بعدی یا عدم انجام کاری.
- [S
- همانند [s، اما دور میزند.
- ]S
- همانند ]s، اما دور میزند.
استفاده از تعداد (Using Count)
- میتوانید از تعداد (count) همراه با دستوراتی مانند yy استفاده کنید.
- [count]yy
- کپی کردن (yank) به تعداد count فایل از موقعیت فعلی مکاننما به سمت پایین.
- یا میتوانید از count همراه با جابهجاییهای ارسالشده به y، d یا D استفاده کنید.
- d[count]j
- حذف (count + 1) فایل از موقعیت فعلی مکاننما به سمت پایین.
ثباتها (Registers)
نرمافزار vifm از چندین ثبات (register) برای ذخیرهٔ موقت فهرست فایلهای کپیشده (yanked) و/یا حذفشده پشتیبانی میکند.
ثباتها پیش از تایپ دستور، با فشردن کلید نقلقول جفت (double quote) و بهدنبال آن نام ثبات مشخص میشوند. تعداد (count) پس از نام ثبات تعیین میشود. بهطور پیشفرض، دستورها از ثبات بدون نام استفاده میکنند که نام آن همان نقلقول جفت است.
اگرچه همهٔ دستورها ثباتها را میپذیرند، اما بیشتر دستورها آنها را نادیده میگیرند (برای نمونه، H یا Ctrl-U). دستورهای دیگر یک ثبات را پر میکنند، فایلهای جدید را به آن پیوست میکنند یا از آن بهعنوان منبع فهرست فایلها استفاده میکنند.
در حال حاضر vifm از نویسههای "، _، a-z و A-Z بهعنوان نام ثبات پشتیبانی میکند.
همانطور که در بالا اشاره شد، " ثبات بدون نام است و نقش ویژهٔ ثبات پیشفرض را دارد. هر بار که از یک ثبات نامگذاریشده (a-z و A-Z) استفاده میشود، ثبات بدون نام نیز بهروزرسانی میشود تا شامل همان فهرست فایلها باشد.
_ ثبات سیاهچاله (black hole register) است. میتوان از آن برای نوشتن استفاده کرد، اما فهرست آن همیشه خالی است.
ثباتهایی با نامهای a تا z و A تا Z ثباتهای نامگذاریشده هستند. ثباتهای با حروف کوچک قبل از افزودن فایلهای جدید پاک میشوند، در حالی که ثباتهای با حروف بزرگ پاک نمیشوند و باید برای افزودن فایلهای جدید به فهرست فایلهای موجودِ ثباتِ حرف کوچک متناظر استفاده شوند (A برای a، B برای b و...).
ثباتها هر فایل را حداکثر یک بار شامل میشوند. فایلهای ناموجود از آنها حذف میشوند. بهویژه، اگر ثباتها شامل فایلهایی در پوشهٔ سطل زباله باشند، ممکن است با دستور :empty تغییر کنند (بخش "Trash directory" در زیر را ببینید).
مثال:
"a2yyنام دو فایل را در ثبات a (و ثبات بدون نام) قرار میدهد،
"Addیک فایل را حذف کرده و نام آن را به ثبات a (و ثبات بدون نام) اضافه میکند،
p or "ap or "Apفایلهای کپیشده و حذفشدهٔ قبلی را در دایرکتوری فعلی درج میکند.
- دستورهای y، d، D، !، gu و gU انتخابگرها را میپذیرند. میتوانید آنها را با هر یک از انتخابگرهای زیر ترکیب کنید تا چندین فایل را بهسرعت حذف یا کپی (yank) نمایید.
بیشتر انتخابگرها مانند حرکات vi هستند: j، k، gg، G، H، L، M، %، f، F، ;، ویرگول (comma)، '، ^، 0 و $. اما چند مورد اضافی دیگر نیز وجود دارد.
مثالها:
- dj - حذف فایل زیر مکاننما و یک فایل زیر آن؛
- d2j - حذف فایل زیر مکاننما و دو فایل زیر آن؛
- y6gg - کپی (yank) تمام فایلها از موقعیت مکاننما تا ششمین فایل موجود در فهرست.
هنگامی که شمارشی را به کل دستور و انتخابگر آن ارسال میکنید، آنها در هم ضرب میشوند. بنابراین:
- 2d2j - حذف فایل زیر مکاننما و چهار فایل زیر آن؛
- 2dj - حذف فایل زیر مکاننما و دو فایل زیر آن؛
- 2y6gg - کپی (yank) تمام فایلها از موقعیت مکاننما تا دوازدهمین فایل موجود در فهرست.
حالت بصری (VISUAL MODE)
حالت بصری دارای دو زیرحالت عملیاتی عمومی است:
- انتخاب ساده همانند Vim؛
- زیرحالت ویرایش انتخاب.
هر دو زیرحالت، فایلهای موجود در بازه (که آن را «ناحیه انتخاب» مینامیم) را از موقعیت مکاننما در زمان شروع حالت بصری تا موقعیت فعلی مکاننما انتخاب میکنند. هر یک از دو سر این بازه را میتوان با جابجایی سرِ فعال از طریق کلیدهای `o` یا `O` و سپس بهروزرسانی موقعیت مکاننما با کلیدهای معمولی حرکت، تنظیم کرد. پس از آنکه موقعیت اولیه مکاننما به این روش تغییر یافت، دیگر امکان بازیابی آن وجود ندارد.
حالت بصری ساده مشابه Vim با پاک کردن هرگونه انتخاب قبلی آغاز میشود. اگر این حالت سپس لغو شود (از طریق `Escape`، `CTRL-C`، `v` یا `V`)، انتخاب اولیه بهطور خودکار بازیابی نمیشود. در مقابل، حالت ویرایش انتخاب، فایلهای انتخابشده پیشین را حفظ کرده و در صورت لغو حالت، آنها را بازیابی میکند. تأیید انتخاب با انجام یک عملیات روی موارد انتخابشده (برای نمونه با کپی کردن آنها از طریق `y`)، مکاننما را به ابتدای ناحیه انتخاب جاری منتقل میکند، نه به بالاترین فایل انتخابشده در نما.
زیرحالت ویرایش انتخاب از سه نوع ویرایش پشتیبانی میکند (نوار وضعیت نشان میدهد که در حال حاضر کدامیک فعال است):
- append - اصلاح انتخاب از طریق انتخاب عناصر موجود در ناحیه انتخاب؛
- remove - اصلاح انتخاب از طریق لغو انتخاب عناصر موجود در ناحیه انتخاب؛
- invert - اصلاح انتخاب از طریق معکوس کردن وضعیت انتخاب عناصر در ناحیه انتخاب.
صرفنظر از نحوه فعالسازی، ویرایش انتخاب همواره با فعال بودن عملیات "append" آغاز میشود. این عملیاتها را میتوان بهترتیبِ ذکرشده در بالا با کلید `CTRL-G` بهصورت دورهای جابجا کرد.
تقریباً تمام کلیدهای حالت عادی (normal mode) در حالت بصری نیز کار میکنند، اما بهجای پذیرش انتخابگرها، مستقیماً روی موارد انتخابشده اعمال میشوند.
- Enter
- ذخیره انتخاب و بازگشت به حالت عادی بدون حرکت مکاننما.
- av
- خروج از حالت بصری در صورت قرار داشتن در حالت اصلاح (بازیابی انتخاب قبلی)، در غیر این صورت جابجایی به حالت اصلاح انتخاب.
- gv
- بازیابی انتخاب بصری قبلی.
- v, V, Ctrl-C or Escape
- خروج از حالت بصری در صورتی که در حالت اصلاح نباشید، در غیر این صورت جابجایی به حالت انتخاب بصری عادی.
- Ctrl-G
- تغییر نوع اصلاح با روش نوبتگردشی (round-robin): append -> remove -> invert.
- :
- ورود به حالت خط فرمان. با خروج از این حالت، انتخاب پاک میشود.
- o
- تغییر کرانِ فعالِ انتخاب.
- O
- تغییر کرانِ فعالِ انتخاب.
- gu, u
- تبدیل نام فایلهای انتخابشده به حروف کوچک.
- gU, U
- تبدیل نام فایلهای انتخابشده به حروف بزرگ.
- cl
- تغییر مقصد پیوند(های) نمادین.
- cw
- مشابه اجرای دستور :rename بدون آرگومان. این حالت سعی دارد از برنامه less تقلید کند. فهرستی از میانبرهای پیشساخته در زیر آمده است. میانبرها را میتوان با استفاده از دستورهای خط فرمان :qmap، :qnoremap و :qunmap سفارشیسازی کرد.
- Shift-Tab, Tab, q, Q, ZZ
- بازگشت به حالت عادی (normal mode).
- [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter
- پیمایش به جلو به اندازه یک سطر (یا [count] سطر).
- [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P
- پیمایش به عقب به اندازه یک سطر (یا [count] سطر).
- [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space
- پیمایش به جلو به اندازه یک پنجره (یا [count] سطر).
- [count]b, [count]Ctrl-B, [count]Alt-V
- پیمایش به عقب به اندازه یک پنجره (یا [count] سطر).
- [count]z
- پیمایش به جلو به اندازه یک پنجره (و تنظیم پنجره روی [count]).
- [count]w
- پیمایش به عقب به اندازه یک پنجره (و تنظیم پنجره روی [count]).
- [count]Alt-Space
- پیمایش به جلو به اندازه یک پنجره، بدون توقف در انتهای فایل (end-of-file).
- [count]d, [count]Ctrl-D
- پیمایش به جلو به اندازه نیمپنجره (و تنظیم نیمپنجره روی [count]).
- [count]u, [count]Ctrl-U
- پیمایش به عقب به اندازه نیمپنجره (و تنظیم نیمپنجره روی [count]).
- r, Ctrl-R, Ctrl-L
- بازترسیم صفحه.
- R
- بارگذاری مجدد نما با حفظ موقعیت پیمایش.
- F
- تغییر وضعیت پیشروی خودکار. تقریباً معادل بارگذاری مجدد دورهای فایل و پیمایش به انتها است. این رفتار مشابه `tail -F` یا کلید F در less میباشد.
- a
- جابهجایی به نمایشگر بعدی. برای پیشنمایشی که از طریق ماکروی %q ساخته شده، کاری انجام نمیدهد.
- A
- جابهجایی به نمایشگر قبلی. برای پیشنمایشی که از طریق ماکروی %q ساخته شده، کاری انجام نمیدهد.
- i
- تغییر وضعیت حالت خام (نادیدهگرفتن نمایشگرهای تعریفشده). برای پیشنمایشی که از طریق ماکروی %q ساخته شده، کاری انجام نمیدهد.
- [count]/pattern
- جستوجو رو به جلو برای ([count]‐thام) سطر منطبق.
- [count]?pattern
- جستوجو رو به عقب برای ([count]‐thام) سطر منطبق.
- [count]n
- تکرار جستوجوی قبلی (برای [count]‐thامین رخداد).
- [count]N
- تکرار جستوجوی قبلی در جهت عکس (برای [count]‐thامین رخداد).
- [count]g, [count]<, [count]Alt-<
- پیمایش به اولین سطر فایل (یا سطر [count]).
- [count]G, [count]>, [count]Alt->
- پیمایش به آخرین سطر فایل (یا سطر [count]).
- [count]p, [count]%
- پیمایش به ابتدای فایل (یا به اندازه N درصد از فایل).
- v
- فراخوانی یک ویرایشگر برای ویرایش فایل جاری در حال نمایش. دستور ویرایش از مقدار گزینه 'vicmd' یا 'vixcmd' گرفته شده و شماره سطر میانی بههمراه یک علامت بعلاوه در ابتدا و نام فایل جاری به آن افزوده میشود.
تمام کلیدهای "Ctrl-W x" مشابه با حالت عادی عمل میکنند. با جابهجایی میان پنجرهها، حالت فعال بهطور خودکار تغییر مییابد. زمانی که حالت مشابه less که روی پیشنمایش فایل فعال شده با استفاده از کلیدهای "Ctrl-W x" ترک شود، وضعیت آن تا زمانی که فایل دیگری با پیشنمایش نمایش داده شود ذخیره میماند (میتوان حالت را ترک کرد، بخش پیشنمایش را پنهان نمود، کار دیگری انجام داد، و سپس به فایل بازگشت و بخش پیشنمایش را دوباره با وضعیت ذخیرهشده قبلی نمایش داد).
حالت خط فرمان (Command line Mode)
این کلیدها در تمام زیرحالتهای حالت خط فرمان در دسترس هستند: دستور، جستوجو، اعلان و فیلترگذاری.
کلیدهای Down ،Up ،Left ،Right ،Home ،End و Delete جزو کلیدهای گسترشیافته هستند و در صورتی که vifm با گزینه --disable-extended-keys کامپایل شده باشد در دسترس نخواهند بود.
- Esc, Ctrl-C
- خروج از حالت خط فرمان، لغو ورودی. ورودی لغوشده در تاریخچه مناسب ذخیره میشود و میتوان بعداً آن را بازیابی کرد.
- Ctrl-M, Enter
- اجرای دستور و خروج از حالت خط فرمان.
- Ctrl-I, Tab
- تکمیل دستور یا آرگومان آن هنگام ویرایش یک :command، تکمیل نام فایلها در اعلانهای نام فایل، جابهجایی مکاننما به مورد منطبق بعدی در اعلان جستوجوی فایل (از جمله در ناوبری) هنگامی که 'incsearch' تنظیم شده باشد.
- Shift-Tab
- تکمیل در جهت معکوس یا جابهجایی مکاننما به مورد منطبق قبلی در جستوجوی فایل.
- Ctrl-_
- توقف تکمیل و بازیابی ورودی اصلی.
- Ctrl-B, Left
- جابهجایی مکاننما به چپ.
- Ctrl-F, Right
- جابهجایی مکاننما به راست.
- Ctrl-A, Home
- رفتن به ابتدای سطر.
- Ctrl-E, End
- رفتن به انتهای سطر.
- Alt-B
- رفتن به ابتدای واژه قبلی.
- Alt-F
- رفتن به انتهای واژه بعدی.
- Ctrl-U
- حذف نویسهها از موقعیت مکاننما تا ابتدای سطر.
- Ctrl-K
- حذف نویسهها از موقعیت مکاننما تا انتهای سطر.
- Ctrl-H, Backspace
- حذف نویسه قبل از مکاننما.
- Ctrl-D, Delete
- حذف نویسه زیر مکاننما.
- Ctrl-W
- حذف نویسهها از موقعیت مکاننما تا ابتدای واژه قبلی.
- Alt-D
- حذف نویسهها از موقعیت مکاننما تا ابتدای واژه بعدی.
- Ctrl-T
- جابهجایی ترتیب نویسه جاری و قبلی و جلو بردن مکاننما یا، در صورتی که مکاننما از انتهای سطر عبور کرده باشد، جابهجایی ترتیب دو نویسه آخر سطر.
- Alt-.
- درج بخش پایانی دستور قبلی در موقعیت فعلی مکاننما. هر فراخوانی بعدی بخش پایانی دستور قدیمیتر را درج خواهد کرد.
- Ctrl-G
- ویرایش محتوای خط فرمان در ویرایشگر خارجی. برای جزئیات به بخش "Command line editing" مراجعه کنید.
- Ctrl-N
- بازیابی خط فرمان جدیدتر از تاریخچه.
- Ctrl-P
- بازیابی خط فرمان قدیمیتر از تاریخچه.
- Up
- بازیابی خط فرمان جدیدتر از تاریخچه که با خط فرمان جاری آغاز میشود.
- Down
- بازیابی خط فرمان قدیمیتر از تاریخچه که با خط فرمان جاری آغاز میشود.
- Ctrl-]
- فعالسازی بازگشایی کوتهنوشت (abbreviation expansion).
- Ctrl-R =
- درج نتیجه
ارزیابی یک
عبارت.
عبارت باید
از طریق یک
اعلان خط
فرمان تو در
تو وارد شود
(جایی که
این کلید
کاری انجام
نمیدهد).
بازگشایی
یک عبارت
دارای خطا،
خالی خواهد
بود. برای
تسهیل
ناوبری در
درخت
دایرکتوری،
میتوانید
از اعلان (prompt)
جستوجو یا
فیلتر
محلی، وارد
شکل خاصی از
حالت خط
فرمان (command-line mode)
شوید. پس از
فعالسازی،
فشردن کلید
Enter
دایرکتوریِ
در حال حاضر
انتخابشده
را باز کرده
و اعلان را
در انتظار
جزء بعدی
مسیر پاک
میکند. اگر
مدخل زیر
مکاننما
یک فایل
باشد، باز
شده و این
حالت پایان
مییابد.
این رفتار در دل حالت خط فرمان تعبیه شده است، اما تاریخچه ورودیها را بهروزرسانی نمیکند، نامهای اختصاری را گسترش نمیدهد و برخی از نگاشتهای این حالت را بهجای ویرایش خط فرمان، با هدف ناوبری سریعتر در سیستمفایل بازتعریف میکند. در صورت فعال بودن، پیشوند «nav» به اعلان اضافه میشود.
میتوانید این رفتار را بهطور پیشفرض در جستوجو از طریق نگاشتی مانند زیر فعال کنید:
nnoremap / /<c-y>
- Ctrl-Y
- ورود به حالت ناوبری. تنها برای جستوجو و فیلتر محلی که از حالت نرمال (normal mode) آغاز شده باشند کار میکند و فقط زمانی اعمال میشود که 'incsearch' تنظیم شده باشد (تنظیم بودن 'wrapscan' نیز برای جستوجو مناسب است).
- Ctrl-Y
- بازگشت به حالت خط فرمان عادی.
- Enter, Right
- یا بدون خروج از این حالت وارد دایرکتوری زیر مکاننما شده و اعلان را پاک میکند، یا برای فایلها از این حالت خارج میشود. اگر 'navoptions' مقدار «open:all» را مشخص کرده باشد، فایل زیر مکاننما پس از خروج از این حالت باز میشود.
- Ctrl-O, Left
- رفتن به دایرکتوری والد.
- Ctrl-J
- خروج از این حالت بدون باطل کردن موقعیت مکاننما یا وضعیت فیلتر.
- Ctrl-N, Down
- انتقال مکاننمای نما به پایین.
- Ctrl-P, Up
- انتقال مکاننمای نما به بالا.
- Page Down
- پیمایش نما به پایین.
- Page Up
- پیمایش نما به بالا.
- Home
- انتقال مکاننمای نما به اولین مورد.
- End
- انتقال مکاننمای نما به آخرین مورد.
جایگذاری مقادیر خاص (Pasting special values)
میانبرهای
فهرستشده
در زیر
مقادیر
مشخصشده
را در
موقعیت
فعلی
مکاننما
درج
میکنند.
آخرین کلید
هر میانبر
به مقداری
که درج
میکند
اشاره دارد:
- c - فایل فعلی
([c]urrent file)
- d - مسیر
دایرکتوری
([d]irectory path)
- e - پسوند نام
فایل ([e]xtension of a file name)
- r - بخش ریشه
نام فایل ([r]oot part of a
file name)
- t - بخش
انتهایی
مسیر
دایرکتوری
([t]ail part of directory path)
- a - فیلتر
خودکار ([a]utomatic filter)
- m - فیلتر
دستی ([m]anual filter)
- = - فیلتر
محلی، که در
حالت نرمال
به «=» متصل
است
مقادیر مربوط به فهرست فایلها در قاب (pane) فعلی از طریق پیشوند Ctrl-X در دسترس هستند، در حالی که مقادیر مربوط به قاب دیگر، کلید دوگانه Ctrl-X را به عنوان پیشوند دارند (تایپ Ctrl-X دوگانه احتمالاً سادهتر از تایپ حروف بزرگ است؛ با این وجود بازنگاشت کلیدها برای مطابقت با نام ماکروهای مشابه آسان است).
- Ctrl-X c
- نام فایل فعلی در قاب فعال.
- Ctrl-X d
- مسیر دایرکتوری فعلی در قاب فعال.
- Ctrl-X e
- پسوند فایل فعلی در قاب فعال.
- Ctrl-X r
- ریشه نام فایل فعلی در قاب فعال.
- Ctrl-X t
- آخرین جزء از مسیر دایرکتوری فعلی در قاب فعال.
- Ctrl-X Ctrl-X c
- نام فایل فعلی در قاب غیرفعال.
- Ctrl-X Ctrl-X d
- مسیر دایرکتوری فعلی در قاب غیرفعال.
- Ctrl-X Ctrl-X e
- پسوند فایل فعلی در قاب غیرفعال.
- Ctrl-X Ctrl-X r
- ریشه نام فایل فعلی در قاب غیرفعال.
- Ctrl-X Ctrl-X t
- آخرین جزء از مسیر دایرکتوری فعلی در قاب غیرفعال.
- Ctrl-X a
- مقدار فیلتر دائمی ضمنی (نام قدیمی «automatic») در قاب فعال.
- Ctrl-X m
- مقدار فیلتر دائمی صریح (نام قدیمی «manual») در قاب فعال.
- Ctrl-X =
- مقدار فیلتر محلی در قاب فعال.
- Ctrl-X /
- آخرین الگو
از تاریخچه
جستوجو.
برنامهٔ vifm
امکانی
برای
ویرایش
چندین نوع
داده، که
معمولاً در
حالت خط
فرمان
ویرایش
میشوند،
در یک
ویرایشگر
بیرونی (با
استفاده از
دستور
مشخصشده
با گزینهٔ 'vicmd'
یا 'vixcmd') فراهم
میکند. این
کار دستکم
دو مزیت
نسبت به
حالت خط
فرمان
توکار دارد:
- میتوان از تمام قدرت Vim برای ویرایش متن استفاده کرد؛
- یافتن و استفادهٔ دوباره از ورودیهای تاریخچه امکانپذیر میشود.این امکان توسط چهار زیرحالت ورودی خط فرمان پشتیبانی میشود:
- دستور (command)؛
- جستوجوی روبهجلو (forward search)؛
- جستوجوی روبهعقب (backward search)؛
- تغییر نام فایل (توضیحات کلیدهای cw و cW در حالت عادی را ببینید).ویرایش خط فرمان با استفاده از ویرایشگر بیرونی با میانبر Ctrl-G فعال میشود. همچنین انجام تقریباً همین کار از حالتهای Normal و Visual با استفاده از دستورهای q:، q/ و q? امکانپذیر است.
فایل موقتی که به منظور ویرایش خط ایجاد میشود، ساختار زیر را دارد:
- 1.
- خط نخست، که یا خالی است یا شامل متنی است که از قبل در خط فرمان وارد شده است.
- 2.
- خط دوم و سایر خطوط با موارد تاریخچه که از جدیدترین مورد آغاز میشوند. تغییر دادن این خطوط به هر شکلی، موارد تاریخچهٔ ذخیرهشده توسط vifm را تغییر نخواهد داد.
پس از پایان کار برنامهٔ ویرایش، در صورتی که برنامه با کد خروج صفر به کار خود پایان دهد، خط اول فایل به عنوان نتیجهٔ عملیات در نظر گرفته میشود. اگر برنامه با خطا مواجه شود (دستور :cquit در Vim را ببینید)، تمام ویرایشهای انجامشده روی فایل نادیده گرفته میشوند، اما مقدار اولیهٔ خط اول در تاریخچهٔ مربوطه ذخیره میشود.
حالت More (More Mode)
این حالتی است که وقتی محتوای نوار وضعیت آنقدر بزرگ است که در صفحه جا نمیشود، نمایان میگردد. این حالت را میتوان با پیام "-- More --" در پایین صفحه شناسایی کرد.
کلیدهای زیر در این حالت مدیریت میشوند:
- Enter, Ctrl-J, j or Down
- پیمایش یک خط به پایین.
- Backspace, k or Up
- پیمایش یک خط به بالا.
- d
- پیمایش یک صفحه (نصف صفحهٔ نمایش) به پایین.
- u
- پیمایش یک صفحه (نصف صفحهٔ نمایش) به بالا.
- Space, f or PageDown
- پیمایش یک صفحهٔ نمایش به پایین.
- b or PageUp
- پیمایش یک صفحهٔ نمایش به بالا.
- G
- پیمایش به پایینترین بخش.
- g
- پیمایش به بالاترین بخش.
- q, Escape or Ctrl-C
- خروج از این حالت.
- :
- تغییر به حالت خط فرمان.
دستورها (Commands)
دستورها با :command_name<Enter> اجرا میشوند.
خطوط کامنتشده باید با نماد نقلقول دوتایی (") آغاز شوند، که ممکن است پیش از آن نویسههای فاصله همراه با دونقطه آمده باشند. کامنتهای درونخطی میتوانند در انتهای خط پس از نماد نقلقول دوتایی اضافه شوند؛ تنها آخرین خط از یک دستور چندخطی میتواند شامل چنین کامنتی باشد. همهٔ دستورها از کامنتهای درونخطی پشتیبانی نمیکنند زیرا همیشه امکان تشخیص بدون ابهام آنها وجود ندارد:
- نحو با نامهای ثباتها تداخل دارد
- نحو با نقلقول کردن آرگومانهای دستورها تداخل دارد
- دستورهای نگاشت/کوتاهسازی (mapping/abbreviation) میتوانند به دنبالههای دلخواهی بسط یابند که بدون کامنت بودن، شبیه به کامنت به نظر برسند
بیشتر دستورها دارای دو شکل هستند: شکل کامل و شکل کوتاه. مثال:
:noh[lsearch]این بدان معناست که دستور کامل nohlsearch و شکل کوتاه آن noh است.
تجزیهٔ متنِ پس از دونقطه بر پایهٔ قواعد نقلقول (quoting) و گریز (escaping) انجام میشود. این قواعد تعیین میکنند که Vifm چگونه متن واردشده را به آرگومانها تقسیم کند. نکته: برخی دستورها، مانند :echo، آرگومانهای خود را به عنوان عبارات (expressions) تفسیر میکنند که از نحو ویژهٔ خود استفاده مینمایند (بخش "Expression syntax" را ببینید).
سازوکارهای پشتیبانیشده:
- نقلقول
تکی '...'
محتوا به
صورت
تحتاللفظی
دریافت
میشود.
گریز با
بکاسلش در
داخل آن کار
نمیکند.
با این حال، ''
درون
نقلقول
تکی با '
جایگزین
میشود
(همانند Vim).
تمام آنچه
بین
نقلقولها
قرار دارد
به یک
آرگومان
واحد تبدیل
میشود.
- نقلقول
دوتایی "..."
این مورد
نیز یک
آرگومان
واحد تشکیل
میدهد.
یک بکاسلش
درون
نقلقول
دوتایی،
نویسهٔ
بعدی را
میگریزاند
(برای
نمونه، \"
تبدیل به یک
نقلقول، و \
تبدیل به یک
بکاسلش
میشود).
برخی
دنبالههای
گریز به سبک C
تفسیر
میشوند (، f،
0[u060C] ، ، .
مثال:
:echo "a b c
خروجی:
a b c "x"
- گریز با
بکاسلش در
خارج از
نقلقولها،
امکان
گنجاندن
فاصلهها،
نقلقولها،
یا بکاسلش
را در یک
آرگومان
فراهم
میکند.
به شکلی
مشابه درون
نقلقولهای
دوتایی کار
میکند و
درون
نقلقولهای
تکی کار
نمیکند.
مثال (رفتار
مشهود):
:command Foo touch a b
دستور Foo را
با یک
آرگومان
واحد تعریف
میکند: a b
فراخوانی
آن:
:Foo
فایلی با
این نام
ایجاد
میکند:
a b
پس از پردازش نقلقولها و بکاسلشها، بیشتر دستورها خط را بر اساس نویسههای فاصله به آرگومانها تقسیم میکنند. برخی دستورها (مانند :substitute یا :tr) میتوانند از نویسههای سفارشی به عنوان جداکننده استفاده کنند.
بیشتر دستورهای خط فرمان، گزینش (selection) را در نمای فعلی کاملاً بازنشانی میکنند. با این حال، چند استثنا وجود دارد:
- دستور `:invert s` به احتمال زیاد برخی فایلها را در حالت انتخاب باقی میگذارد؛
- دستور :view؛
- دستور :normal (زمانی که از حالت خط فرمان خارج نشود)؛
- دستورهای :if و :else در صورت اجرای موفق تاثیری بر گزینش نمیگذارند.
از '|' میتوان برای جداسازی دستورها استفاده کرد، بنابراین میتوانید چندین دستور را در یک خط وارد کنید. اگر میخواهید از '|' در یک آرگومان استفاده کنید، پیش از آن '\' بگذارید.
این دستورها '|' را حتی در صورت گریز داده شدن، بخشی از آرگومانهای خود میدانند:
:[range]!
:amap
:anoremap
:autocmd
:cabbrev
:cmap
:cnoreabbrev
:cnoremap
:command
:dmap
:dnoremap
:filetype
:fileviewer
:filextype
:keepsel
:map
:mmap
:mnoremap
:nmap
:nnoremap
:noremap
:normal
:qmap
:qnoremap
:vmap
:vnoremap
:wincmd
:windo
:wingo
:winrun
برای اینکه بتوانید پس از یکی از این دستورها، دستور دیگری را استفاده کنید، آن را درون دستور :execute قرار دهید. یک مثال:
if filetype('.') == 'reg' | execute '!!echo regular file' | endif
:[count]
- :number
-
رفتن به شماره فایل مشخصشده. :12 به دوازدهمین فایل در فهرست میرود. :0 به ابتدای فهرست میرود. :$ به انتهای فهرست میرود.
- :[count]command
-
تنها دستورهای درونساخت :[count]command دستورهای :[count]d[elete] و :[count]y[ank] هستند.
- :d3
-
سه فایل را از موقعیت فایل جاری به سمت پایین حذف میکند.
- :3d
-
یک فایل را در سطر سوم فهرست حذف میکند.
- :command [args]
- :[range]!program
-
اجرای دستور از طریق شل (shell). ماکروها را میپذیرد.
- :[range]!command &
مشابه بالا، اما دستور در پسزمینه با استفاده از امکانات vifm اجرا میشود. برنامههایی که در stderr مینویسند، پنجرههای محاورهای خطایی ایجاد میکنند که خطاهای دستور را نمایش میدهند. به فاصلهٔ پیش از نماد اَمپِرسَند دقت کنید؛ اگر آن را نادیده بگیرید، دستور با استفاده از کنترل وظایف (job control) شل شما در پسزمینه اجرا خواهد شد. ماکروها را میپذیرد.
- :!!
- :[range]!!command
-
مشابه :!، اما پیش از بازگشت مکث میکند.
- :!!
-
تکرار آخرین دستور.
- :alink
- :[range]alink[!?]
-
ایجاد پیوندهای نمادینِ مطلق (absolute symbolic links) به فایلهای موجود در دایرکتوری نمای غیرفعال. با «?» نام فایلهای مقصد را در یک ویرایشگر میپرسد. «!» رونویسی را اجباری میکند.
- :[range]alink[!] path
-
ایجاد پیوندهای نمادینِ مطلق به فایلهایی در دایرکتوری مشخصشده با مسیر path (مطلق یا نسبی نسبت به دایرکتوری نمای غیرفعال).
- :[range]alink[!] name1 name2...
-
ایجاد پیوندهای نمادینِ مطلق از فایلهای موجود در دایرکتوری نمای دیگر، بهطوری که به هر پیوند بعدی، نامی متناظر از فهرست آرگومانها اختصاص داده میشود.
- :[range]alink[!?] -skip ...
-
بخش «پارامتر -skip» در زیر را ببینید.
- :apropos
- :apropos keyword...
-
ایجاد منویی از موارد بازگرداندهشده توسط دستور apropos. انتخاب یک مورد در منو، صفحهٔ راهنمای (man page) مربوطه را باز میکند. این دستور بهطور پیشفرض به ابزار خارجی «apropos» وابسته است که میتوان آن را با تغییر مقدار گزینهٔ 'aproposprg' سفارشیسازی کرد. برای کلیدهای کنترلی، بخش «منوها و پنجرههای محاورهای» را ببینید.
- :autocmd
- :au[tocmd] {event} {pat} {cmd}
-
ثبت autocommand برای {event}، که میتواند این مورد باشد: - DirEnter - پس از تغییر دایرکتوری فعال میشود نام رویداد (event) به بزرگی و کوچکی حروف حساس نیست. {pat} فهرستی از الگوهای تطبیق فایل (globs) تغییریافته و جداشده با کاما است که میتواند شامل مدک (~) یا متغیرهای محیطی باشد. تمام مسیرها از اسلش ('/') بهعنوان جداکنندهٔ دایرکتوری استفاده میکنند. الگو میتواند با '!' آغاز شود که آن را نقیض میکند. الگوهایی که فاقد اسلش هستند، تنها با آخرین بخش مسیر مطابقت داده میشوند (برای مثال "dir" در "/path/dir"). کامای معمولی را میتوان با دو بار وارد کردن آن درج کرد. دو تغییر در تطبیق الگوهای glob به شرح زیر است: - * - هرگز با اسلش مطابقت پیدا نمیکند (یعنی میتواند نشاندهندهٔ یک سطح دایرکتوری باشد) - ** - با هر نویسهای مطابقت پیدا میکند (یعنی میتواند با مسیری با عمق دلخواه مطابقت یابد) {cmd} یک :command یا چند مورد از آنهاست که با '|' جدا شدهاند. مثالهایی از الگوها: - conf.d - با دایرکتوری conf.d در هر مکانی مطابقت دارد - *.d - با دایرکتوریهایی که به ".d" ختم میشوند در هر مکانی مطابقت دارد - **.git - با something.git در هر مکانی مطابقت دارد، اما با .git مطابقت ندارد - **/.git/** - با /path/.git/objects مطابقت دارد، اما با /path/.git مطابقت ندارد - **/.git/**/ - تنها با /path/.git/ مطابقت دارد (به دلیل اسلش پایانی) - /etc/* - با /etc/conf.d/ و /etc/X11 مطابقت دارد، اما با /etc/X11/fs مطابقت ندارد - /etc/**/*.d - با /etc/conf.d و /etc/X11/conf.d و غیره مطابقت دارد - /etc/**/* - با خود /etc/ و هر فایلی در زیر آن مطابقت دارد - /etc/**/** - با خود /etc/ و هر فایلی در زیر آن مطابقت دارد - :au[tocmd] [{event}] [{pat}]
-
فهرست کردن آن دسته از autocommandهایی که با ترکیب رویداد-الگوی دادهشده مطابقت دارند. برای فهرست کردن همهٔ autocommandها میتوان {event} و {pat} را حذف کرد. برای فهرست کردن هر autocommand برای الگویی خاص، میتوان از جایگزین * به جای {event} استفاده کرد. - :au[tocmd]! [{event}] [{pat}]
-
حذف autocommandهایی که با ترکیب رویداد-الگوی دادهشده مطابقت دارند. نحو آن مانند فهرست کردن در بالا است.
- :apropos
-
تکرار آخرین دستور :apropos.
- :bmark
- :bmark tag1 [tag2 [tag3...]]
-
نشانهگذاری دایرکتوری جاری با برچسبهای مشخصشده.
- :bmark! path tag1 [tag2 [tag3...]]
-
مشابه :bmark، اما امکان نشانهگذاری یک مسیر مشخص بهجای دایرکتوری جاری را فراهم میکند. این دستور برای استفاده در vifmrc و نشانهگذاری فایلها است. مسیر میتواند شامل ماکروهایی باشد که به یک مسیر واحد بسط مییابند (%c، %C، %d، %D) یا ماکروهایی که میتوانند به چند مسیر بسط یابند اما تنها شامل یکی هستند (%f، %F، %rx). مورد دوم برای راحتی در استفادهٔ تعاملی از دستور فراهم شده است. ماکروهای پیچیدهای که شامل فاصله هستند (مانند "%c:gs/ /_") باید گریز داده شوند (escaped).
- :bmarks
- :bmarks
-
نمایش تمام نشانکها در یک منو.
- :bmarks [tag1 [tag2...]]
-
نمایش منویی از نشانکها که شامل همهٔ برچسبهای مشخصشده هستند. برای کلیدهای کنترلی، بخش «منوها و پنجرههای محاورهای» را ببینید.
- :bmgo
- :bmgo [tag1 [tag2...]]
-
هنگامی که بیش از یک مورد منطبق وجود داشته باشد، دقیقاً مانند :bmarks عمل میکند، در غیر این صورت فوراً به همان یک مورد هدایت میشود (و در صورت عدم وجود تطابق ناموفق خواهد بود).
- :cabbrev
- :ca[bbrev]
-
نمایش منوی اختصارات حالت خط فرمان (command-line mode). برای کلیدهای کنترلی، بخش «منوها و پنجرههای محاورهای» را ببینید.
- :ca[bbrev] lhs-prefix
-
نمایش اختصارات حالت خط فرمان که سمت چپ (lhs) آنها با پیشوند مشخصشده آغاز میشود.
- :ca[bbrev] lhs rhs
-
ثبت اختصار جدید یا بازنویسی اختصار موجود برای حالت خط فرمان. rhs میتواند شامل فاصلهها و هر دنبالهٔ ویژهای باشد که در rhs نگاشتها پذیرفته میشود (بخش «نگاشتها» در زیر را ببینید). اختصارات بهصورت غیربازگشتی بسط داده میشوند.
- :call
- :cal[l] {function}([{expr1}, ...])
-
فراخوانی یک {function} بدون در نظر گرفتن مقدار بازگشتی آن. برخلاف Vim، عبارت call که نویسههای اضافی در انتهای آن باشد فراخوانی نمیشود. - :chistory
- :chi[story]
-
نمایش منوی منوهای ذخیرهشده. برای کلیدهای کنترلی، بخش «منوها و پنجرههای محاورهای» و همچنین بخش «تاریخچهٔ منوها» را ببینید.
- :cnoreabbrev
- :cnorea[bbrev]
-
نمایش منوی اختصارات حالت خط فرمان. برای کلیدهای کنترلی، بخش «منوها و پنجرههای محاورهای» را ببینید.
- :cnorea[bbrev] lhs-prefix
-
نمایش اختصارات حالت خط فرمان که سمت چپ آنها با پیشوند مشخصشده آغاز میشود.
- :cnorea[bbrev] lhs rhs
-
مشابه :cabbrev، اما نگاشتها در rhs هنگام بسط نادیده گرفته میشوند.
- :cd
- :cd or :cd ~ or :cd $HOME
-
تغییر مسیر به دایرکتوری خانه (home).
- :cd -
-
رفتن به آخرین دایرکتوری بازدیدشده.
- :cd ~/dir
-
تغییر دایرکتوری به ~/dir.
- :cd /curr/dir /other/dir
-
تغییر دایرکتوری قاب (pane) جاری به /curr/dir و دایرکتوری قاب دیگر به /other/dir. مسیرهای نسبی نسبت به دایرکتوری نمای جاری در نظر گرفته میشوند. در صورتی که یکی از دایرکتوریها نامعتبر باشد، دستور با شکست مواجه نخواهد شد. تمام شکلهای این دستور ماکروها را میپذیرند..TP :cd! /dir همانند :cd /dir /dir.
- :cds
- :cds[!] pattern string
-
پیمایش به مسیری که از جایگزینی اولین تطابق در مسیر فعلی بهدست میآید. آرگومانها میتوانند شامل اسلش باشند، اما آغاز آرگومان نخست با یک جداکننده، شکل زیر از دستور را فعال خواهد کرد. مشخص کردن "!" دایرکتوری هر دو قاب (pane) را تغییر میدهد.
پرچمهای موجود:
-
i - نادیده گرفتن بزرگی و کوچکی حروف (گزینههای 'ignorecase' و 'smartcase' استفاده نمیشوند)
-
I - در نظر گرفتن بزرگی و کوچکی حروف (گزینههای 'ignorecase' و 'smartcase' استفاده نمیشوند)
- :cds[!]/pattern/string/[flags]
-
مشابه بالا، اما با نحوی شبیه به :substitute. نویسههای نشانهگذاری دیگر نیز میتوانند به عنوان جداکننده استفاده شوند.
- :change
- :c[hange]
-
نمایش یک کادر محاورهای برای تغییر ویژگیهای فایلها.
- :chmod
- :[range]chmod
-
نمایش کادر محاورهای تغییر مشخصههای فایل (مجوزها در *nix و ویژگیها در Windows).
- :[range]chmod[!] arg...
-
تنها برای *nix تغییر مجوزهای فایلها. برای قالب arg به `man 1 chmod` مراجعه کنید. علامت "!" به معنی تنظیم بازگشتی مجوزها است.
- :chown
- :[range]chown
-
تنها برای *nix همانند کلید co در حالت عادی (normal mode).
- :[range]chown [user][:][group]
-
تنها برای *nix تغییر مالک و/یا گروه فایلها. روی دایرکتوریها بهصورت بازگشتی عمل میکند.
- :clone
- :[range]clone[!?]
-
همانندسازی فایلها در دایرکتوری جاری. با "?" برنامه vifm ویرایشگر vi را برای ویرایش نام فایلها باز میکند. "!" رونویسی را تحمیل میکند. ماکروها بسط داده میشوند.
- :[range]clone[!] path
-
همانندسازی فایلها در دایرکتوری مشخصشده با path (مطلق یا نسبی نسبت به دایرکتوری جاری). "!" رونویسی را تحمیل میکند. ماکروها بسط داده میشوند.
- :[range]clone[!] name1 name2...
-
همانندسازی فایلها در دایرکتوری جاری و اختصاص نام متناظر از فهرست آرگومانها به هر نسخهٔ جدید. "!" رونویسی را تحمیل میکند. ماکروها بسط داده میشوند.
- :colorscheme
- :colo[rscheme]?
-
چاپ نام طرح رنگ (color scheme) فعلی روی نوار وضعیت.
- :colo[rscheme]
-
نمایش منویی از فهرست طرحهای رنگ موجود. میتوانید طرح رنگ اصلی را در اینجا انتخاب کنید. اگر هیچ طرح رنگ مخصوص دایرکتوری با مسیر فعلی همخوانی نداشته باشد، این طرح برای نما استفاده میشود. همچنین برای تنظیم رنگ کادرها (به جز عنوان نماها) و رنگها در منوها و کادرهای محاورهای به کار میرود. برای کلیدهای کنترلی، بخش "منوها و کادرهای محاورهای (Menus and dialogs)" را ببینید.
- :colo[rscheme] color_scheme_name
-
تغییر طرح رنگ اصلی به color_scheme_name. در صورت بروز خطا (مثلاً عدم پشتیبانی برخی رنگها توسط ترمینال)، یا چیزی تغییر نمیکند یا طرح رنگ به رنگهای پیشساخته بازنشانی میشود تا اطمینان حاصل شود که رابط کاربری متنی (TUI) در وضعیتی قابل استفاده باقی میماند.
- :colo[rscheme] color_scheme_name directory
-
مرتبط ساختن دایرکتوری با طرح رنگ. هنگام اجرای دستور :colorscheme از خط فرمان، آرگومان directory میتواند یک مسیر مطلق یا نسبی باشد، اما اگر این دستور در اسکریپتهای بارگذاریشده در هنگام راهاندازی اجرا شود (پیش از بارگذاری کامل vifm)، الزماً باید یک مسیر مطلق باشد.
- :colo[rscheme] color_scheme_name color_scheme_name...
-
اولین طرح رنگ را به ترتیب ذکر شده که موجود بوده و توسط ترمینال پشتیبانی شود، بارگذاری میکند. اگر هیچیک مطابقت نداشته باشد، طرح فعلی بدون تغییر باقی میماند. برای مثال: " استفاده از یک طرح رنگ جداگانه برای قابهایی که درون سوارشدنهای FUSE هستند execute 'colorscheme in-fuse' &fusehome
- :comclear
- :comc[lear]
- حذف تمام دستورات تعریفشده توسط کاربر.
- :command
- :com[mand]
- نمایش منویی از دستورات کاربر. برای کلیدهای کنترلی بخش "منوها و کادرهای محاورهای (Menus and dialogs)" را ببینید.
- :com[mand] prefix
- نمایش دستورات تعریفشده توسط کاربر که با prefix آغاز میشوند.
- :com[mand] name action[ &]
- تنظیم یا
بازتعریف
یک دستور
کاربر.
از :com[mand]! برای رونویسی دستوری همنام که قبلاً تنظیم شده است استفاده کنید. دستورات داخلی (builtin) قابل بازتعریف نیستند.
دستورات کاربر باید با یک حرف بزرگ یا کوچک لاتین شروع شوند. نام دستور نمیتواند شامل نمادهای ویژه باشد، به جز یک علامت '?' یا '!' در انتها. اعداد مجاز هستند به شرطی که باعث ابهام در تحلیل دستوری نشوند (هیچ پیشوندی از نام دستور که پیش از یک رقم میآید نمیتواند با یک دستور موجود مطابقت داشته باشد، مگر اینکه در همان نقطه دارای رقم باشد)، برای مثال:" درست :command mp3 command " درست :command mp4 command :command mp3! command :command mp4? command " نادرست :command mp command :command mp44 command " درست :command mp4c command
دستورات کاربر بهطور پیشفرض در یک شل اجرا میشوند (برای نحو دیگر گزینهها به ادامه مراجعه کنید). برای اجرای یک دستور در پسزمینه باید با افزودن " &" پس از عمل دستور، آن را به عنوان دستور پسزمینه مشخص کنید (مانند `:com rm rm %f &`).
ماکروها در تمامی انواع دستورات کاربر بسط داده میشوند. برای اطلاعات بیشتر بخش "ماکروهای دستور (Command macros)" را ببینید. - :com[mand] name /pattern
- تنظیم الگوی جستجو.
- :com[mand] name =pattern
- تنظیم مقدار فیلتر محلی.
- :com[mand] name filter{:filter args}
- تنظیم
فیلتر نام
فایل
(توضیحات
دستور :filter را
ببینید).
برای مثال:
" تنها نمایش فایلهای صوتی :command onlyaudio filter/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i " نمایش همه چیز به جز فایلهای صوتی :command noaudio filter!/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
- :com[mand] name :commands
- تنظیم نوعی
نام مستعار
(alias) برای
دستورات
داخلی
(مانند شل).
محدوده (range)
دادهشده
به نام
مستعار را
به دستور
اصلی ارسال
میکند،
بنابراین
اجرای :%cp پس
از
:command cp :copy %a
برابر است با
:%copy - :compare
- :compare [byname | bysize | bycontents |
- listall | listunique | listdups |
ofboth | ofone |
groupids | grouppaths |
skipempty | withicase | withrcase |
showidentical | showdifferent | showuniqueleft | showuniqueright]...
مقایسه فایلها در یک یا دو نما بر اساس آرگومانها. حالت پیشفرض عبارت است از "bycontents listall ofboth grouppaths showidentical showdifferent showuniqueleft showuniqueright". برای جزئیات به بخش "نماهای مقایسه (Compare views)" در زیر مراجعه کنید. ساختار diff با نمایشهای جایگزین ناسازگار است، بنابراین مقادیر گزینههای 'lsview' و 'millerview' نادیده گرفته میشوند. - :compare! (showidentical | showdifferent | showuniqueleft |
- showuniqueright)... این شکل فراخوانی تنها زمانی کار میکند که نمای مقایسه فعال باشد و منجر به تکرار :compare قبلی با معکوس شدن وضعیت گزینههای ارائهشده میشود.
- :copen
- :cope[n]
- باز کردن مجدد آخرین منوی ناوبری بستهشده، در صورت وجود. همچنین بخش "تاریخچه منوها (Menus history)" را ببینید.
- :copy.TP
- :[range]co[py][!?][ &] کپی فایلها به دایرکتوری نمای دیگر. همراه با «?»، برای نامهای فایل مقصد در یک ویرایشگر اعلان نمایش داده میشود. «!» رونویسی را اجباری میکند.
- :[range]co[py][!] path[ &]
- کپی فایلها به دایرکتوری مشخصشده با path (مطلق یا نسبی نسبت به دایرکتوری نمای دیگر). «!» رونویسی را اجباری میکند.
- :[range]co[py][!] name1 name2...[ &]
- کپی فایلها به دایرکتوری نمای دیگر با دادن نام متناظر از فهرست آرگومانها به هر فایل بعدی. «!» رونویسی را اجباری میکند
- :[range]co[py][!?] -skip ...[ &]
- بخش «پارامتر -skip» در زیر را ببینید.
همچنین بخش «File copying» در زیر را ببینید.
- :cquit
- :cq[uit][!]
- همانند :quit است، اما همچنین انتخاب دایرکتوری از طریق --choose-dir را لغو میکند (فایل خروجی را خالی میکند) و یک کد خروج غیرصفر برمیگرداند.
- :cunabbrev
- :cuna[bbrev] lhs
- لغو ثبت اختصار حالت خط فرمان با استفاده از lhs آن.
- :cuna[bbrev] rhs
- لغو ثبت اختصار حالت خط فرمان با استفاده از rhs آن، بهطوری که اختصار حتی پس از بسط نیز قابل حذف باشد.
- :delbmarks
- :delbmarks
- حذف نشانکها از دایرکتوری جاری.
- :delbmarks tag1 [tag2 [tag3...]]
- حذف مجموعهای از نشانکها که شامل تمامی برچسبهای مشخصشده هستند.
- :delbmarks!
- حذف تمام نشانکها.
- :delbmarks! path1 [path2 [path3...]]
- حذف نشانکهای مسیرهای فهرستشده.
- :delcommand
- :delc[ommand] user_command
- حذف دستور تعریفشده توسط کاربر با نام user_command.
- :delete
- :[range]d[elete][!][ &]
- حذف فایل یا فایلهای انتخابشده. «!» به معنای حذف کامل است (صرفنظر از سطل زباله).
- :[range]d[elete][!] [reg] [count][ &]
- حذف فایلهای انتخابشده یا [count] فایل به ثبات reg. «!» به معنای حذف کامل است (صرفنظر از سطل زباله).
- :delmarks
- :delm[arks]!
- حذف تمام نشانهها.
- :delm[arks] marks ...
- حذف نشانههای مشخصشده؛ هر آرگومان بهعنوان مجموعهای از نشانهها در نظر گرفته میشود.
- :delsession
- :delsession
- حذف نشست مشخصشده در صورتی که قبلاً ذخیره شده باشد. حذف نشست جاری آن را جدا (detach) نمیکند.
- :display
- :di[splay]
- نمایش منویی از محتوای ثباتها.
- :di[splay] list ...
- نمایش محتوای ثباتهای شمارهدار و نامداری که در list ذکر شدهاند (برای نمونه "az برای نمایش محتوای ""، "a و "z).
- :dirs
- :dirs
- نمایش پشته دایرکتوری در یک منو. برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید.
- :echo
- :ec[ho] [<expr>...]
- ارزیابی هر آرگومان بهعنوان یک عبارت و خروجی دادن آنها جداشده با فاصله. برای تعریفی از <expr> به راهنمای دستور :let مراجعه کنید.
- :edit
- :[range]e[dit] [file...]
- باز کردن فایل(های) انتخابشده یا دادهشده در ویرایشگر. ماکروها و متغیرهای محیطی بسط داده میشوند.
- :else
- :el[se]
- اجرای دستورها تا :endif منطبق بعدی در صورتی که هیچیک از شرایط دیگر برقرار نباشند. همچنین راهنمای دستورهای :if و :endif را ببینید.
- :elseif
- :elsei[f] {expr1}
- اجرای دستورها تا :elseif، :else یا :endif منطبق بعدی در صورتی که شرایط شاخههای قبلی :if و :elseif برابر با صفر ارزیابی شده باشند. همچنین راهنمای دستورهای :if و :endif را ببینید.
- :empty
- :empty
- حذف دائمی فایلها از تمام دایرکتوریهای سطل زباله موجود و غیرخالی (بخش «Trash directory» در زیر را ببینید). دایرکتوریهای سطل زباله که از طریق %r و/یا %u مشخص شدهاند نیز بهطور کامل حذف میشوند. همچنین تمام عملیاتهایی را که پس از :empty بیمعنی هستند از undolist حذف کرده و تمام سوابق مربوط به فایلهای درون دایرکتوریها را از همه ثباتها پاک میکند. حذف بهعنوان یک وظیفه پسزمینه با میزان کار نامشخص انجام میشود و میتوان آن را از طریق منوی :jobs بررسی کرد.
- :endif
- :en[dif]
- پایان بلوک شرطی. همچنین راهنمای دستورهای :if و :else را ببینید.
- :execute
- :exe[cute] [<expr>...]
- ارزیابی هر آرگومان بهعنوان یک عبارت و پیوند نتایجِ جداشده با یک فاصله جهت تشکیل یک رشته واحد که سپس بهعنوان یک دستور خط فرمان اجرا میشود. برای تعریفی از <expr> به راهنمای دستور :let مراجعه کنید.
- :exit
- :exi[t][!]
- همانند :quit.
- :file
- :f[ile][ &]
- نمایش منویی از برنامههای تنظیمشده برای نوع فایلِ فایل جاری. « &» اجرای برنامه مرتبط در پسزمینه را اجباری میکند. برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید.
- :f[ile] arg[ &]
- اجرای دستور مرتبطی که با arg آغاز میشود بدون باز کردن منو. « &» اجرای برنامه مرتبط در پسزمینه را اجباری میکند.
- :filetype
- :filet[ype] pattern-list [{descr}]def_prog[ &],[{descr}]prog2[ &],...
- پیوند دادن
فهرست
برنامههای
دادهشده
به هر یک از
الگوها.
برنامه
(دستور)
مرتبط توسط
گردانندههای
کلیدهای l و Enter
(و همچنین
در منوی :file)
استفاده
میشود. اگر
نیاز دارید
در دستور
ویرگول درج
کنید، کافی
است آن را
دو بار
تکرار کنید
(",,"). فاصله و
به دنبال آن
علامت
امپرسند
بهعنوان
دو نویسه
آخر دستور
به معنای
اجرای
دستور در
پسزمینه
است.
میتوان به
هر دستور
توضیحات
اختیاری
داد تا درک
عملکرد
دستور در
منوی :file
آسانتر
شود. وقتی
برنامه
پیشفرض
پیدا نشود،
vifm سایر
برنامهها
را برای
انطباق
امتحان
خواهد کرد.
هنگامی که
مدخل
برنامه
شامل
هیچکدام
از
ماکروهای vifm
نباشد، نام
فایل جاری
به آن پیوست
میشود،
بهگونهای
که گویی
مدخل
برنامه در *nix
با ماکروی %c
و در ویندوز
با %"c خاتمه
یافته است.
در ویندوز،
مسیر
فایلهای
اجرایی
حاوی فاصله
میتواند (و
برای
کارکرد
صحیح با
چنین
مسیرهایی
باید) در
جفتگیومه
قرار گیرد.
برای تعریف
الگو بخش
«Patterns» در زیر
و برای
چگونگی
مدیریت
انتخاب بخش
«Selection» را
ببینید.
همچنین بخش
«Automatic FUSE mounts» در
زیر را
ببینید.
مثال برای
آرشیوهای zip
و چندین
اقدام
مختلف:
filetype *.zip,*.jar,*.war,*.ear \ {Mount with fuse-zip} \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR, \ {View contents} \ zip -sf %c | less, \ {Extract here} \ tar -xf %c,توجه داشته باشید که در OS X وقتی از `open` برای فراخوانی یک برنامه استفاده میشود، vifm قادر به بررسی در دسترس بودن واقعی آن برنامه نیست. بنابراین اگر نادیده گرفتن خودکار برنامههایی که وجود ندارند مد نظر باشد، `open` باید با دستور واقعی جایگزین شود.
- :filet[ype] filename
- فهرست کردن الگوهای ثبتشده فعلی که با نام فایل مشخصشده مطابقت دارند (در حالت منو). همانند «:filextype filename».
- :filextype
- :filex[type] pattern-list [{ description }] def_program,program2,...
- همانند :filetype
است، اما
اگر در X
اجرا نشود
این دستور
نادیده
گرفته
میشود. در X
دستور :filextype
برابر با :filetype
است. برای
تعریف الگو
بخش «Patterns» در
زیر و برای
چگونگی
مدیریت
انتخاب بخش
«Selection» را
ببینید.
همچنین بخش
«Automatic FUSE mounts» در
زیر را
ببینید.
برای مثال، تنظیمات زیر را در نظر بگیرید (ترتیب ممکن است عجیب به نظر برسد، اما صرفاً جنبه نمایشی دارد):
filetype *.html,*.htm \ {View in lynx} \ lynx filextype *.html,*.htm \ {Open with dwb} \ dwb %f %i &, filetype *.html,*.htm \ {View in links} \ links filextype *.html,*.htm \ {Open with firefox} \ firefox %f &, \ {Open with uzbl} \ uzbl-browser %f %i &,اگر از vifm درون یک شبیهساز ترمینال استفاده میکنید که در محیط گرافیکی اجرا میشود (هنگامی که در *nix از X استفاده میشود؛ همیشه در ویندوز)، vifm تلاش میکند برنامهها را به این ترتیب اجرا کند:
1. lynx
2. dwb
3. links
4. firefox
5. uzblاگر محیط گرافیکی وجود نداشته باشد (در *nix با بررسی وجود متغیر محیطی غیرخالی $DISPLAY یا $WAYLAND_DISPLAY؛ در ویندوز هرگز رخ نمیدهد)، فهرست به این صورت خواهد بود:
1. lynx
2. linksدرست مانند اینکه هیچ دستور :filextype وجود نداشته است.
هدف از چنین تمایزی، امکان استفاده راحت از vifm با همان تنظیمات در محیط میزکار / از طریق اتصال از راه دور (SSH) / در کنسول محلی است.
توجه داشته باشید که در OS X متغیر $DISPLAY تعریف نشده است مگر اینکه خودتان آن را تعریف کنید، بنابراین :filextype فقط در صورتی باید استفاده شود که $DISPLAY را به نحوی مقداردهی کرده باشید..TP :filext[ype] filename فهرست کردن (در حالت منو) الگوهای ثبتشده فعلی که با نام فایل مشخصشده مطابقت دارند. همانند ":filetype filename".
- :fileviewer
- :filev[iewer] pattern-list command1,command2,...
- ثبت فهرست
دستورات
مشخصشده
بهعنوان
نمایشدهندهها
(viewers) برای هر
یک از
الگوها.
نمایشدهنده
دستوری است
که خروجی آن
پس از فشردن
"e" یا اجرای
دستور :view
دریافت شده
و در یکی از
قابهای vifm
نمایش داده
میشود.
هنگامی که
دستور شامل
هیچیک از
ماکروهای vifm
نباشد، نام
فایل جاری
به انتهای
آن افزوده
میشود؛
گویی که
دستور با
ماکروی %c
پایان
یافته است.
قواعد
گریزدهی با
کاما و
پردازش
دستورات
ناموجود،
همانند :filetype
برای این
دستور نیز
اعمال
میشود.
برای تعریف
الگو به بخش
"Patterns" در زیر
مراجعه
کنید. از
گردانندههای
Lua پشتیبانی
میکند.
مثال برای بایگانیهای zip:
fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c, echo "No zip to preview:"
- :filev[iewer] filename
- فهرست کردن (در حالت منو) الگوهای ثبتشده فعلی که با نام فایل مشخصشده مطابقت دارند.
- :filter
- :filter[!] {pattern}
- فیلتر کردن
فایلهای
منطبق با
الگو از
فهرست
دایرکتوریها.
نویسه '!'
وضعیت
وارونگی
فیلتر را پس
از
بهروزرسانی
مقدار
فیلتر
کنترل
میکند
(همچنین
توضیحات 'cpoptions'
را ببینید).
فیلتر در
سیستمهای
*nix بهصورت
حساس به
حروف بزرگ و
کوچک و در Windows
بهصورت
غیرحساس
تطبیق داده
میشود.
بخشهای "File
Filters" و "Patterns" را
ببینید.
مثال:
" filter all files ending in .o from the filelist. :filter /.o$/
- :filter[!] {empty-pattern}
- مشابه
بالا، اما
از آخرین
الگوی
جستجو
بهعنوان
مقدار الگو
استفاده
میکند.
مثال:
:filter //I
- :filter
- بازنشانی فیلتر (تنظیم آن به یک رشته خالی) و نمایش تمام فایلها.
- :filter!
- مشابه :invert.
- :filter?
- نمایش اطلاعات درباره فیلترهای محلی (local)، نامی (name) و خودکار (auto).
- :find
- :[range]fin[d] pattern
- نمایش نتایج دستور find در منو. در صورت وجود، در میان فایلهای انتخابشده جستجو میکند. ماکروها را میپذیرد. بهطور پیشفرض این دستور به ابزار خارجی "find" متکی است که میتوان با تغییر مقدار گزینه 'findprg' آن را سفارشیسازی کرد.
- :[range]fin[d] -opt...
- مشابه :find در بالا، اما کاربر تمام آرگومانهای find را تعریف میکند. در میان فایلهای انتخابشده (در صورت وجود) جستجو میکند.
- :[range]fin[d] path -opt...
- مشابه :find در بالا، اما کاربر تمام آرگومانهای find را تعریف میکند. انتخاب و محدوده (range) را نادیده میگیرد.
- :[range]fin[d]
- تکرار آخرین دستور :find.
- :finish
- :fini[sh]
- توقف بارگذاری و اجرای (sourcing) یک اسکریپت. تنها در فایل اسکریپت vifm قابل استفاده است. این یک راه سریع برای نادیده گرفتن ادامه فایل است.
- :goto
- :go[to]
- در صورت لزوم دایرکتوری را تغییر میدهد و مسیر مشخصشده را زیر مکاننما قرار میدهد. مسیر باید یک مسیر موجود و غیر ریشه (non-root) باشد. ماکروها و متغیرهای محیطی بسط داده میشوند.
- :grep
- :[range]gr[ep][!] pattern
- نتایج دستور grep را در منو نمایش میدهد. برای درخواست وارونگی جستجو (یافتن خطوطی که با الگو مطابقت ندارند) "!" را اضافه کنید. در صورت وجود فایلهای انتخابشده و عدم تعیین محدوده (range)، در میان فایلهای انتخابشده جستجو میکند. بهطور پیشفرض فایلهای باینری را نادیده میگیرد. این دستور بهطور پیشفرض به ابزار خارجی "grep" متکی است که میتوان با تغییر مقدار گزینه 'grepprg' آن را سفارشیسازی کرد.
- :[range]gr[ep][!] -opt...
- مشابه :grep در بالا، اما کاربر تمام آرگومانهای grep را تعریف میکند که گریزدهی (escape) نمیشوند. در صورت وجود، در میان فایلهای انتخابشده جستجو میکند.
- :[range]gr[ep][!]
- تکرار آخرین دستور :grep. نویسه "!" در این دستور، وضعیت "!" در دستور تکرارشده را معکوس میکند.
- :help
- :h[elp]
- نمایش فایل راهنما.
- :h[elp] argument
- مشابه استفاده از ':h argument' در vim است. برای دریافت راهنما درباره vifm از vifm-<something> استفاده کنید (تکمیل خودکار با کلید Tab کار میکند). این شکل از دستور زمانی که گزینه 'vimhelp' خاموش باشد کار نمیکند.
- :hideui
- :hideui
- پنهان کردن رابط کاربری برای نمایش خروجی دستورات قبلی.
- :highlight
- :hi[ghlight]
- نمایش اطلاعات درباره تمام گروههای برجستهسازی (highlight) فعال در حال حاضر.
- :hi[ghlight] clear
- بازنشانی تمام برجستهسازیها به پیشفرضهای توکار و حذف تمام قواعد اختصاصی نام فایل.
- :hi[ghlight] clear ( {pat1,pat2,...} | /regexp/ )
- حذف قاعده مشخصشده.
- :hi[ghlight] ( group-name | column:name | {pat1,pat2,...} | /regexp/ )
- نمایش اطلاعات گروه برجستهسازی مشخصشده یا الگوی نام فایل مربوط به طرحرنگ (color scheme) مورد استفاده در نمای فعال.
- :hi[ghlight] ( group-name | column:name | {pat1,pat2,...} | /regexp/[iI] ) cterm=style | ctermfg=color | ctermbg=color | gui=style | guifg=color | guibg=color
- تنظیم سبک (cterm، gui)، پیشزمینه (ctermfg، guifg) و/یا پسزمینه (ctermbg، guibg) پارامترهای گروه برجستهسازی یا الگوی نام فایل برای طرحرنگ استفادهشده در نمای فعال.
نام گروهها، مقادیر سبک و نام رنگها نسبت به بزرگی و کوچکی حروف حساس نیستند. توجه داشته باشید که این موضوع شامل نام ستونها نمیشود، زیرا باعث میشد ستونهای توکار و سفارشی غیرقابل تشخیص شوند.
مقادیر
موجود group-name:
- Win - رنگ تمام
پنجرهها
(نماها،
کادرهای
محاورهای،
منوها) و رنگ
پیشفرض
برای
محتوای
آنها
(مانند
فایلهای
معمولی در
نماها)
- AuxWin - رنگ نواحی
کمکی
پنجرهها
- OtherWin - رنگ قاب
غیرفعال
- Border - رنگ
بخشهای
عمودی
حاشیه
- TabLine - رنگ خط
زبانه
(زمانی که 'tabscope'
روی "global"
تنظیم شده
است)
- TabLineSel - رنگ لبه
زبانه
انتخابشده
(صرف نظر از
'tabscope')
- TopLine - رنگ خط
بالایی قاب
دیگر
- TopLineSel - رنگ خط
بالایی قاب
جاری
- CmdLine - رنگ خط
فرمان/نوار
وضعیت
- ErrorMsg - رنگ
پیامهای
خطا در نوار
وضعیت
- StatusLine - رنگ خط
بالای نوار
وضعیت
- JobLine - رنگ خط
کارها که در
بالای نوار
وضعیت ظاهر
میشود
- WildBox - رنگ منوی wild
- WildMenu - رنگ آیتم
انتخابشده
در منوی wild
- SuggestBox - رنگ جعبه
پیشنهاد
کلید
- CurrLine - خط در
موقعیت
مکاننما
در نمای
فعال
- OtherLine - خط در
موقعیت
مکاننما
در نمای
غیرفعال
- OddLine - رنگ هر خط
مدخل دوم در
یک قاب
- LineNr - ستون
شماره خط در
نماها
- Selected - رنگ
فایلهای
انتخابشده
- Directory - رنگ
دایرکتوریها
- Link - رنگ
پیوندهای
نمادین در
نماها
- BrokenLink - رنگ
پیوندهای
نمادین
شکسته
- HardLink - رنگ
فایلهای
معمولی با
بیش از یک
پیوند سخت
- Socket - رنگ
سوکتها
- Device - رنگ
دستگاههای
بلوکی و
نویسهای
- Executable - رنگ
فایلهای
اجرایی
- Fifo - رنگ
لولههای fifo
- CmpMismatch - رنگ
فایلهای
ناهماهنگ
در مقایسه
پهلوبهپهلو
بر پایه
مسیر
- CmpUnmatched - مدخل
فایل
مقایسه که
جفتی در قاب
دیگر ندارد
- CmpBlank -
جاینگهدار
مدخل در
نمای
مقایسه،
جفتشده با
CmpUnmatched
- User1..User20 - ۲۰ رنگ که
میتوان از
طریق
ماکروی %* در
'statusline' استفاده
کرد
نام ستونها با نام ستونهای گزینه |vifm-'viewcolumns'| مطابقت دارد، که خود بر اساس مقادیر |vifm-'sort'| و ستونهای سفارشی اضافهشده از Lua هستند. صرفنظر از منبع، ستونها بهصورت "column:{name}" مشخص میشوند، برای مثال:
highlight column:fileext ctermfg=red
مقادیر
سبک موجود
(برخی از
آنها قابل
ترکیب
هستند):
- bold
- underline
- reverse یا inverse
- standout
- italic (در
سیستمهای
پشتیبانینشده
به reverse تبدیل
میشود)
- combine - افزودن
ویژگیهای
گروه جاری
به
ویژگیهای
والد در
سلسلهمراتب
گروه (در زیر
ببینید)
بهجای
جایگزین
کردن آنها
- none
رنگهای
موجود:
- -1 یا default یا none -
پیشفرض یا
شفاف
- black و lightblack
- red و lightred
- green و lightgreen
- yellow و lightyellow
- blue و lightblue
- magenta و lightmagenta
- cyan و lightcyan
- white و lightwhite
- 0-255 - رنگهای
متناظر از
پالت ۲۵۶
رنگی (برای ctermfg
و ctermbg)
- #rrggbb - رنگ
مستقیم ("gui"،
"true"، ۲۴ بیتی)
در نماد
هگزادسیمال،
هر یک از سه
مؤلفه در
محدوده 0x00 تا 0xff
قرار دارند
(برای guifg و guibg)
نسخههای روشن (Light) رنگها، همان رنگهای معمولی هستند که صفت bold بهطور خودکار در پایانههایی با کمتر از ۱۶ رنگ برای آنها تنظیم میشود. بنابراین ترتیب آرگومانهای دستور :highlight مهم است و بهتر است "cterm" پیش از بقیه قرار گیرد تا از بازنویسی صفات تنظیمشده توسط آرگومانهای "ctermfg" یا "ctermbg" جلوگیری شود.
برای
راحتی
نویسندگان
طرحرنگها،
نامهای
شبیه xterm برای
پالت ۲۵۶
رنگ نیز
پشتیبانی
میشود.
نگاشت از
پیوند زیر
برگرفته
شده است:
http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim
مدخلهای
تکراری با
افزودن یک
خط زیرین (_)
بههمراه
پسوند عددی
تغییر
یافتهاند.
0 Black 86 Aquamarine1 172 Orange3
1 Red 87 DarkSlateGray2 173 LightSalmon3_2
2 Green 88 DarkRed_2 174 LightPink3
3 Yellow 89 DeepPink4_2 175 Pink3
4 Blue 90 DarkMagenta 176 Plum3
5 Magenta 91 DarkMagenta_2 177 Violet
6 Cyan 92 DarkViolet 178 Gold3_2
7 White 93 Purple 179 LightGoldenrod3
8 LightBlack 94 Orange4_2 180 Tan
9 LightRed 95 LightPink4 181 MistyRose3
10 LightGreen 96 Plum4 182 Thistle3
11 LightYellow 97 MediumPurple3 183 Plum2
12 LightBlue 98 MediumPurple3_2 184 Yellow3_2
13 LightMagenta 99 SlateBlue1 185 Khaki3
14 LightCyan 100 Yellow4 186 LightGoldenrod2
15 LightWhite 101 Wheat4 187 LightYellow3
16 Grey0 102 Grey53 188 Grey84
17 NavyBlue 103 LightSlateGrey 189 LightSteelBlue1
18 DarkBlue 104 MediumPurple 190 Yellow2
19 Blue3 105 LightSlateBlue 191 DarkOliveGreen1
20 Blue3_2 106 Yellow4_2 192 DarkOliveGreen1_2
21 Blue1 107 DarkOliveGreen3 193 DarkSeaGreen1_2
22 DarkGreen 108 DarkSeaGreen 194 Honeydew2
23 DeepSkyBlue4 109 LightSkyBlue3 195 LightCyan1
24 DeepSkyBlue4_2 110 LightSkyBlue3_2 196 Red1
25 DeepSkyBlue4_3 111 SkyBlue2 197 DeepPink2
26 DodgerBlue3 112 Chartreuse2_2 198 DeepPink1
27 DodgerBlue2 113 DarkOliveGreen3_2 199 DeepPink1_2
28 Green4 114 PaleGreen3_2 200 Magenta2_2
29 SpringGreen4 115 DarkSeaGreen3 201 Magenta1
30 Turquoise4 116 DarkSlateGray3 202 OrangeRed1
31 DeepSkyBlue3 117 SkyBlue1 203 IndianRed1
32 DeepSkyBlue3_2 118 Chartreuse1 204 IndianRed1_2
33 DodgerBlue1 119 LightGreen_2 205 HotPink
34 Green3 120 LightGreen_3 206 HotPink_2
35 SpringGreen3 121 PaleGreen1 207 MediumOrchid1_2
36 DarkCyan 122 Aquamarine1_2 208 DarkOrange
37 LightSeaGreen 123 DarkSlateGray1 209 Salmon1
38 DeepSkyBlue2 124 Red3 210 LightCoral
39 DeepSkyBlue1 125 DeepPink4_3 211 PaleVioletRed1
40 Green3_2 126 MediumVioletRed 212 Orchid2
41 SpringGreen3_2 127 Magenta3 213 Orchid1
42 SpringGreen2 128 DarkViolet_2 214 Orange1
43 Cyan3 129 Purple_2 215 SandyBrown
44 DarkTurquoise 130 DarkOrange3 216 LightSalmon1
45 Turquoise2 131 IndianRed 217 LightPink1
46 Green1 132 HotPink3 218 Pink1
47 SpringGreen2_2 133 MediumOrchid3 219 Plum1
48 SpringGreen1 134 MediumOrchid 220 Gold1
49 MediumSpringGreen 135 MediumPurple2 221 LightGoldenrod2_2
50 Cyan2 136 DarkGoldenrod 222 LightGoldenrod2_3
51 Cyan1 137 LightSalmon3 223 NavajoWhite1
52 DarkRed 138 RosyBrown 224 MistyRose1
53 DeepPink4 139 Grey63 225 Thistle1
54 Purple4 140 MediumPurple2_2 226 Yellow1
55 Purple4_2 141 MediumPurple1 227 LightGoldenrod1
56 Purple3 142 Gold3 228 Khaki1
57 BlueViolet 143 DarkKhaki 229 Wheat1
58 Orange4 144 NavajoWhite3 230 Cornsilk1
59 Grey37 145 Grey69 231 Grey100
60 MediumPurple4 146 LightSteelBlue3 232 Grey3
61 SlateBlue3 147 LightSteelBlue 233 Grey7
62 SlateBlue3_2 148 Yellow3 234 Grey11
63 RoyalBlue1 149 DarkOliveGreen3_3 235 Grey15
64 Chartreuse4 150 DarkSeaGreen3_2 236 Grey19
65 DarkSeaGreen4 151 DarkSeaGreen2 237 Grey23
66 PaleTurquoise4 152 LightCyan3 238 Grey27
67 SteelBlue 153 LightSkyBlue1 239 Grey30
68 SteelBlue3 154 GreenYellow 240 Grey35
69 CornflowerBlue 155 DarkOliveGreen2 241 Grey39
70 Chartreuse3 156 PaleGreen1_2 242 Grey42
71 DarkSeaGreen4_2 157 DarkSeaGreen2_2 243 Grey46
72 CadetBlue 158 DarkSeaGreen1 244 Grey50
73 CadetBlue_2 159 PaleTurquoise1 245 Grey54
74 SkyBlue3 160 Red3_2 246 Grey58
75 SteelBlue1 161 DeepPink3 247 Grey62
76 Chartreuse3_2 162 DeepPink3_2 248 Grey66
77 PaleGreen3 163 Magenta3_2 249 Grey70
78 SeaGreen3 164 Magenta3_3 250 Grey74
79 Aquamarine3 165 Magenta2 251 Grey78
80 MediumTurquoise 166 DarkOrange3_2 252 Grey82
81 SteelBlue1_2 167 IndianRed_2 253 Grey85
82 Chartreuse2 168 HotPink3_2 254 Grey89
83 SeaGreen2 169 HotPink2 255 Grey93
84 SeaGreen1 170 Orchid
85 SeaGreen1_2 171 MediumOrchid1
دو رنگ (پیشزمینه و پسزمینه) و تنها یک مشخصه bold وجود دارد. بنابراین هنگامی که مشخصه "reverse" در vifm در حال اجرا درون یک شبیهساز پایانه استفاده میشود، یک صفت bold منفرد بر هر دو رنگ تأثیر میگذارد. همزمان، کنسول بومی لینوکس میتواند ضخامت و روشنی رنگهای پیشزمینه و پسزمینه را بهطور مستقل مدیریت کند، اما برای حفظ سازگاری با شبیهسازهای پایانه، این ویژگی تنها بهطور ضمنی با استفاده از نسخههای روشن (light) رنگها در دسترس است. این رفتار ممکن است در آینده تغییر کند.
اگرچه vifm از ۲۵۶ رنگ به این معنا که توسط کتابخانه ترسیم رابط کاربری پشتیبانی میشوند پشتیبانی میکند، اما اینکه آیا میتوانید از همه آنها استفاده کنید به پایانه شما بستگی زیادی دارد. برای راهاندازی صحیح پایانه، اطمینان حاصل کنید که متغیر $TERM در محیطی که vifm را اجرا میکنید روی نام یک پایانه ۲۵۶ رنگ تنظیم شده باشد (در سیستمهای *nix این کار را میتوان از طریق منابع X نیز تنظیم کرد)، برای مثال xterm-256color. فهرست نام پایانههای موجود را میتوان با مشاهده محتویات /usr/lib/terminfo/ پیدا کرد. تعداد رنگهای پشتیبانیشده توسط پایانه با تنظیمات فعلی را میتوان از طریق دستور "tput colors" بررسی کرد.
برای استفاده از رنگهای ۲۴ بیتی، به پایانهای نیاز است که از آنها پشتیبانی کند، رکورد terminfo متناظر (احتمالاً به "-direct" ختم میشود مانند "xterm-direct") و اشاره متغیر $TERM به آن. هنگامی که vifm پشتیبانی از رنگ مستقیم را تشخیص میدهد، مقادیر "cterm*" برای گروههایی که حداقل یکی از مقادیر "gui*" برای آنها تنظیم شده است نادیده گرفته میشوند، در غیر این صورت پس از تبدیل از طریق یک پالت توکار مورد استفاده قرار میگیرند.
در اینجا
سلسلهمراتب
گروههای
برجستهسازی
آورده شده
است، که
دانستن آن
برای
استفاده از
شفافیت
ضروری است:
JobLine
SuggestBox
StatusLine
WildBox
WildMenu
User1..User20
Border
CmdLine
ErrorMsg
Win
OtherWin
AuxWin
OddLine
Column highlights
File name specific highlights
Directory
Link
BrokenLink
HardLink
Socket
Device
Fifo
Executable
CmpMismatch
CmpUnmatched
CmpBlank
Selected
CurrLine
LineNr (in active pane)
OtherLine
LineNr (in inactive pane)
TopLine
TopLineSel
TabLineSel (for pane tabs)
User1..User20
TabLine
TabLineSel
User1..User20
مقدار "none" برای گروههای برجستهسازی در سطح اول سلسلهمراتب بهمعنای رنگ پیشفرض پایانه و برای بقیه سطوح بهمعنای شفافیت است.
در اینجا برجستهسازیهای اختصاصی نام فایل بهمعنای مواردی است که از طریق الگوهای عمومی ({}) یا عبارتهای باقاعده (//) پیکربندی شدهاند. برای هر مدخل فایل حداکثر یکی از آنها اعمال میشود، یعنی نخستین موردی که با نام فایل مطابقت دارد؛ بنابراین ترتیب دستورات :highlight ممکن است در مواردی خاص حائز اهمیت باشد..TP :history
- :his[tory]
- نمایش منویی از فهرست دایرکتوریهای بازدیدشده. برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید.
- :his[tory] x
- مورد x
میتواند
یکی از
موارد زیر
باشد:
d[ir] یا . نمایش تاریخچه دایرکتوری.
c[md] یا : نمایش تاریخچه خط فرمان.
s[earch] یا / نمایش تاریخچه جستجو و جستجو به جلو با کلید l.
f[search] یا / نمایش تاریخچه جستجو و جستجو به جلو با کلید l.
b[search] یا ? نمایش تاریخچه جستجو و جستجو به عقب با کلید l.
i[nput] یا @ نمایش تاریخچه ورودی اعلان (مثلاً هنگام تغییر نام یک فایل).
fi[lter] یا = نمایش تاریخچه فیلتر محلی (توضیحات دستور «=» در حالت عادی را ببینید).
e[xprreg] نمایش تاریخچه ثبات عبارت (توضیحات Ctrl+R = را در حالت خط فرمان ببینید).
mc[md] نمایش تاریخچه خط فرمان منوها.
برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید. - :histnext
- :histnext
- همانند <c-i>. کاربرد اصلی این دستور رفع مشکل رایج یکی بودن نویسه اسکی (ASCII) کلیدهای <tab> و <c-i> است: میتوان تنظیمات شبیهساز ترمینال را طوری تغییر داد که مثلاً هنگام فشردن Ctrl-I، کدکلید `F1` ارسال شود، سپس در vifm دستور `:noremap <f1> :histnext<cr>` را اجرا کرد، پرچم "t" را به 'cpoptions' افزود و بدین ترتیب هر دو کلید <c-i> و <tab> طبق انتظار کار خواهند کرد.
- :histprev
- :histprev
- همانند <c-o>.
- :if
- :if {expr1}
- شروع بلوک
شرطی. در
صورتی که {expr1}
به مقداری
غیرصفر
ارزیابی
شود،
دستورها تا
دستور
مطابق
بعدیِ :elseif، :else
یا :endif اجرا
میشوند،
در غیر این
صورت
نادیده
گرفته
خواهند شد.
بروز خطا در
زمان
ارزیابی {expr1}
منجر به
اجرا نشدن
هیچیک از
شاخههای
شرطی
میشود (حتی
شاخه else).
همچنین
راهنمای
دستورهای :else
و :endif را
ببینید.
مثال:
if $TERM == 'screen.linux' highlight CurrLine ctermfg=lightwhite ctermbg=lightblack elseif $TERM == 'tmux' highlight CurrLine cterm=reverse ctermfg=black ctermbg=white else highlight CurrLine cterm=bold,reverse ctermfg=black ctermbg=white endif - :invert
- :invert [f]
- معکوس کردن فیلتر نام فایل.
- :invert? [f]
- نمایش وضعیت فعلی فیلتر.
- :invert s
- معکوس کردن موارد انتخابشده.
- :invert o
- معکوس کردن ترتیب مرتبسازی برای کلید مرتبسازی اصلی.
- :invert? o
- نمایش ترتیب مرتبسازی کلید مرتبسازی اصلی.
- :jobs
- :jobs
- نمایش منوی فرایندهای پسزمینه فعلی. برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید.
- :keepsel
- :keepsel [command...]
- حفظ موارد
انتخابشده
در طول
اجرای برخی
از
دستورهای :command
بهطور
پیشفرض.
توجه داشته
باشید که
این دستور
موارد
انتخابشده
را برای حفظ
بیقیدوشرط
ذخیره و
بازیابی
نمیکند،
بلکه مانع
از پاک شدن
آنها در
انتهای
دستور
میشود و
بنابراین
اگر موارد
انتخابشده
در حین
عملیات
بهطور
صریح پاک
شوند، کمکی
نخواهد کرد.
مثال:
:keepsel view
- :let
- :let $ENV_VAR = <expr>
- تنظیم یک متغیر محیطی. هشدار: تنظیم متغیر محیطی روی یک رشته خالی در Windows باعث حذف آن میشود.
- :let $ENV_VAR .= <expr>
- الحاق مقدار به متغیر محیطی.
- :let &[l:|g:]opt = <expr>
- مقداردهی به یک گزینه.
- :let &[l:|g:]opt .= <expr>
- الحاق مقدار به گزینه رشتهای.
- :let &[l:|g:]opt += <expr>
- افزایش مقدار گزینه، افزودن مقادیر فرعی.
- :let &[l:|g:]opt -= <expr>
- کاهش مقدار گزینه، حذف مقادیر فرعی.
- در اینجا <expr> میتواند یک رشته درون نقلقول تکی، رشته درون نقلقول جفتی، یک متغیر محیطی، فراخوانی تابع یا ترکیبی از الحاق هر یک از آنها به هر ترتیبی با استفاده از عملگر '.' باشد. هرگونه فضای خالی نادیده گرفته میشود.
- :locate
- :locate filename
- استفاده از دستور "locate" برای ایجاد منویی از نام فایلها. انتخاب یک فایل از منو باعث بارگذاری مجدد فهرست فعلی فایلها در vifm میشود تا فایل انتخابشده نشان داده شود. بهطور پیشفرض این دستور به ابزار خارجی "locate" متکی است (با این فرض که پایگاهداده آن از پیش ساخته شده است)، که میتوان آن را با تغییر مقدار گزینه 'locateprg' سفارشیسازی کرد. برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید.
- :locate
- تکرار آخرین دستور :locate.
- :ls
- :ls
- فهرست کردن پنجرههای یک تسهیمکننده ترمینال (terminal multiplexer) فعال در صورت استفاده. این کار با ارسال دستور مناسب به تسهیمکننده ترمینال انجام میشود، بنابراین این فهرست توسط vifm مدیریت نمیشود.
- :lstrash
- :lstrash
- نمایش منویی شامل فهرست فایلهای موجود در سطل زباله. هر عنصر این فهرست، مسیر اصلی یک فایل حذفشده است، بنابراین فهرست ممکن است حاوی موارد تکراری باشد. برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید.
- :mark
- :[range]ma[rk][?] x [/full/dir/path [filename]]
- تنظیم نشانک x (از a-zA-Z0-9) در /full/dir/path و filename. بهطور پیشفرض از فایل جاری در دایرکتوری جاری استفاده میشود. اگر نام فایلی داده نشود و /full/dir/path دایرکتوری جاری باشد، آخرین فایل از [range] استفاده میشود. علامت سؤال از بازنویسی نشانک موجود جلوگیری میکند. ماکروها و متغیرهای محیطی بسط داده میشوند.
- :marks
- :marks
- ایجاد یک منوی بازشو از نشانکها. برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید.
- :marks list ...
- نمایش محتوای نشانکهایی که در list ذکر شدهاند.
- :media
- :media
- فقط برای nix*
نمایش منوی مدیریت رسانه. برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید. همچنین گزینه 'mediaprg' را ببینید. - :messages
- :mes[sages]
- نمایش تاریخچه پیامهای نوار وضعیت (تا ۵۰ مورد).
- :mkdir
- :[line]mkdir[!] dir ...
- ایجاد دایرکتوریها در مسیرهای مشخصشده. از [line] میتوان برای انتخاب گره در نمای درختی استفاده کرد. علامت "!" به معنای ایجاد دایرکتوریهای والد در صورت نیاز است. ماکروها بسط داده میشوند.
- :move
- :[range]m[ove][!?][ &]
- انتقال فایلها به دایرکتوری نمای دیگر. علامت "?" نام فایلهای مقصد را در یک ویرایشگر درخواست میکند. علامت "!" بازنویسی را اجباری میکند.
- :[range]m[ove][!] path[ &]
- انتقال فایلها به دایرکتوری مشخصشده با path (مطلق یا نسبی نسبت به دایرکتوری نمای دیگر). علامت "!" بازنویسی را اجباری میکند..TP :[range]m[ove][!] name1 name2...[ &] انتقال فایلها به دایرکتوری نمای دیگر با اختصاص نام متناظر از فهرست آرگومانها به هر فایل بعدی. «!» بازنویسی را اجباری میکند.
- :[range]m[ove][!?] -skip ...[ &]
- بخش «پارامتر -skip» در ادامه را ببینید.
- :nohlsearch
- :noh[lsearch]
- پاک کردن موارد انتخابشده در قاب (pane) فعلی.
- :normal
- :norm[al][!] commands
- اجرای دستورات حالت عادی (normal mode). اگر «!» استفاده شود، نگاشتهای تعریفشده توسط کاربر نادیده گرفته میشوند. آخرین دستور ناتمام طوری لغو میشود که گویی <esc> یا <c-c> فشرده شده است. یک «:» نیز باید کامل شود. دستورات نمیتوانند با یک فاصله شروع شوند، بنابراین شمارش 1 (یک) را پیش از آن قرار دهید.
- :only
- :on[ly]
- جابهجایی به نمای تکپنجرهای.
- :open
- :[range]o[pen]
- باز کردن فایل فعلی، موارد انتخابشده یا فایلهای درون بازه، درست مانند زمانی که Enter فشرده شده باشد.
- :plugin
- :plugin load
- بارگذاری تمام پلاگینها. برای استفاده در فایل پیکربندی جهت بارگذاری دستی پلاگینها در نقطهای زودتر. پلاگینها تنها یکبار قابل بارگذاری هستند و فراخوانیهای بعدی هیچ کاری انجام نخواهند داد.
- :plugin blacklist {plugin}
- افزودن {plugin} به فهرست پلاگینهای نادیدهگرفتهشده.
- :plugin whitelist {plugin}
- افزودن {plugin} به فهرست پلاگینهای قابل بارگذاری، در حالی که تمام پلاگینهای دیگر نادیده گرفته میشوند. این فهرست معمولاً باید خالی باشد.
- :plugins
- :plugins
- باز کردن منوی پلاگینها. برای مشاهدهٔ کلیدهای کنترلی، بخش «منوها و کادرهای محاوره» را ببینید.
- :popd
- :popd
- حذف دایرکتوریهای قاب از پشته (stack).
- :pushd
- :pushd[!] /curr/dir [/other/dir]
- افزودن دایرکتوریهای قاب به پشته و پردازش آرگومانها مانند دستور :cd.
- :pushd
- جابهجا کردن دو مورد بالای پشتهٔ دایرکتوری.
- :put
- :[line]pu[t][!] [reg] [ &]
- قرار دادن فایلها از ثبات مشخصشده (بهطور پیشفرض ") در دایرکتوری فعلی. مقدار [line] میتواند برای انتخاب یک گره در نمای درختی استفاده شود. «!» فایلها را به جای کپی کردن، از مکان اصلیشان انتقال میدهد. در طول این عملیات هیچ کادر محاورهٔ تأییدی نمایش داده نخواهد شد، چرا که تمام بررسیها از قبل انجام میشوند.
- :pwd
- :pw[d]
- نمایش دایرکتوری کاری فعلی.
- :qall
- :qa[ll][!]
- خروج از vifm (برای صرفنظر کردن از ذخیرهٔ تغییرات و عدم بررسی دستورات فعال پسزمینه، ! را اضافه کنید).
- :quit
- :q[uit][!]
- اگر بیش از یک زبانه وجود داشته باشد، زبانهی فعلی را میبندد؛ در غیر این صورت از vifm خارج میشود (برای صرفنظر کردن از ذخیرهٔ وضعیت و عدم بررسی دستورات فعال پسزمینه، ! را اضافه کنید).
- :redraw
- :redr[aw]
- بازترسیم فوری صفحه.
- :regedit
- :rege[dit] [{reg}]
- ویرایش محتویات ثبات با استفاده از ویرایشگر خارجی. اگر {reg} حذف شود، ثبات بدون نام بهطور پیشفرض ویرایش خواهد شد. مسیرهای ویرایششده نرمالسازی میشوند (بدون `.`، `..`، `/` اضافی و غیره) و با تمام مسیرهای نسبی طوری رفتار میشود که گویی از دایرکتوری نمای فعلی آغاز میشوند.
- :registers
- :reg[isters]
- نمایش منویی حاوی محتوای ثباتها.
- :reg[isters] list ...
- نمایش محتوای ثباتهای شمارهدار و نامداری که در list ذکر شدهاند (برای مثال "az برای نمایش محتوای ""، "a و "z).
- :regular
- :regular
- جابهجایی به نمای عادی و ترک نمای سفارشی.
- :rename
- :[range]rename[!]
- تغییر نام فایلها با ویرایش نام آنها در یک ویرایشگر. «!» نام فایلها را بهصورت بازگشتی در زیردایرکتوریها تغییر میدهد. بخش «External Renaming» را ببینید.
- :[range]rename name1 name2...
- تغییر نام هر یک از فایلهای انتخابشده به نام متناظر آن.
- :restart
- :restart
- آزادسازی
بسیاری از
منابع
(تاریخچهها،
دستورات و
غیره)،
بازخوانی
فایلهای
vifminfo، vifmrc و نشست،
و اجرای
دستورات
راهاندازی
ارائهشده
در فهرست
آرگومانها؛
بنابراین
تمام
تغییرات
ذخیرهنشده
از بین
خواهند رفت
(مانند
تاریخچههای
اخیر یا
کلیدهایی
که پس از
شروع این
نمونه
نگاشت
شدهاند).
نشستی که
هنوز ذخیره
نشده بود
بازنشانی
میشود.
اگرچه موارد بسیاری بازنشانی میشوند، برخی از وضعیتهای اولیهٔ رابط کاربری و مکانهای فعلی، از جمله زبانهها، حفظ میگردند.
- :restart full
- گونهای از :restart که هیچ تلاشی برای حفظ هیچچیز نمیکند.
- :restore
- :[range]restore
- بازیابی فایل از دایرکتوری سطل زباله؛ خارج از یکی از دایرکتوریهای سطل زباله کار نمیکند. بخش «Trash directory» در ادامه را ببینید.
- :rlink
- :[range]rlink[!?]
- ایجاد پیوندهای نمادین نسبی به فایلها در دایرکتوری نمای دیگر. همراه با «?»، نام فایلهای مقصد را در یک ویرایشگر درخواست میکند. «!» بازنویسی را اجباری میکند.
- :[range]rlink[!] path
- ایجاد پیوندهای نمادین نسبی از فایلها در دایرکتوری مشخصشده با path (مطلق یا نسبی نسبت به دایرکتوری نمای دیگر). «!» بازنویسی را اجباری میکند.
- :[range]rlink[!] name1 name2...
- ایجاد پیوندهای نمادین نسبی از فایلها در دایرکتوری نمای دیگر، با اختصاص نام متناظر از فهرست آرگومانها به هر پیوند بعدی. «!» بازنویسی را اجباری میکند.
- :[range]rlink[!?] -skip ...[ &]
- بخش «پارامتر -skip» در ادامه را ببینید.
- :screen
- :screen
- تغییر
وضعیت فعال
بودن یا
نبودن
استفاده از
مالتیپلکسر
ترمینال.
یک مالتیپلکسر ترمینال از شبهترمینالها استفاده میکند تا امکان استفاده از چندین پنجره را در کنسول یا در یک xterm واحد فراهم آورد. اجرای vifm از درون مالتیپلکسر ترمینال در صورتی که پشتیبانی مناسب فعال باشد، باعث میشود vifm برای هر فایل ویرایششده یا برنامهٔ اجراشده از درون vifm، یک پنجرهٔ جدید در مالتیپلکسر ترمینال باز کند.
این ویژگی نیازمند نسخهٔ 3.9.9 یا جدیدتر screen برای آرگومان -X برنامهٔ screen، یا tmux (نسخهٔ 1.8 یا جدیدتر توصیه میشود) است. - :screen!
- فعالسازی یکپارچهسازی با مالتیپلکسرهای ترمینال.
- :screen?
- نمایش اینکه آیا یکپارچهسازی با مالتیپلکسرهای ترمینال فعال است یا خیر.
نکته: این دستور بنا به دلایل تاریخی screen نامیده شده است (زمانی که tmux هنوز پشتیبانی نمیشد) و ممکن است در نسخههای آینده تغییر کند یا نام مستعاری دریافت کند.
- :select
- :[range]select
- انتخاب فایلها در بازهٔ ارائهشده (در صورت عدم تعیین بازه، فایل فعلی).
- :select {pattern}
- انتخاب فایلهایی که با الگوی مشخصشده مطابقت دارند. شکلهای ممکن {pattern} در بخش «Patterns» در ادامه شرح داده شدهاند. اسلش انتهایی برای دایرکتوریها لحاظ میشود، بنابراین دستور `:select! */ | invert s` تنها فایلها را انتخاب میکند.
- :select //[iI]
- مشابه مورد بالا، اما از آخرین الگوی جستجو مجدداً استفاده میکند..TP :select !{external command} انتخاب فایلها از فهرستی که توسط دستور خارجی ارائه میشود. تطبیق فایلها با مسیرهای کامل صورت میگیرد؛ مسیرهای نسبی پیش از آن به مسیرهای مطلق تبدیل میشوند.
- :[range]select! [{pattern}]
- مشابه بالا، اما پیش از ادامه، موارد انتخابشدهٔ قبلی را بازنشانی میکند.
- :session
- :session?
- چاپ نام نشست جاری.
- :session
- جدا شدن از نشست جاری بدون ذخیرهٔ آن. v:session را بازنشانی میکند.
- :session name
- ایجاد یا بارگذاری و جابهجایی به نشستی با نام مشخصشده. نام نمیتواند شامل اسلش باشد. نشست فعال در آن لحظه، پیش از جابهجایی ذخیره میشود. همچنین نشست هنگام خروج عادی از برنامه بهطور خودکار ذخیره میگردد. v:session را مقداردهی میکند.
- :session -
- جابهجایی به نشست پیشین در صورتی که همچنان وجود داشته باشد (حذف نشده یا بدون ذخیرهسازی از آن جدا نشده باشد).
- :set
- :se[t]
- نمایش تمام گزینههایی که با مقدار پیشفرض خود تفاوت دارند.
- :se[t] all
- نمایش تمام گزینهها.
- :se[t] opt1=val1 opt2='val2' opt3="val3" ...
- تنظیم
گزینههای
دادهشده.
برای
گزینههای
محلی هر دو
مقدار
تنظیم
میشوند.
میتوانید از نحو زیر استفاده کنید:
- برای تمام گزینهها - option، option? و option&
- برای گزینههای بولی - nooption، invoption و option!
- برای گزینههای عدد صحیح - option=x، option+=x و option-=x
- برای گزینههای رشتهای - option=x و option+=x
- برای گزینههای فهرست رشتهای - option=x، option+=x، option-=x و option^=x
- برای گزینههای شمارشی - option=x، option+=x و option-=x
- برای گزینههای مجموعهای - option=x، option+=x، option-=x و option^=x
- برای گزینههای مجموعه نویسه - option=x، option+=x، option-=x و option^=xمعانی:
- option - روشن کردن گزینه (برای بولی) یا چاپ مقدار آن (برای بقیه)
- nooption - خاموش کردن گزینه
- invoption - معکوس کردن وضعیت گزینه
- option! - معکوس کردن وضعیت گزینه
- option? - چاپ مقدار گزینه
- option& - بازنشانی گزینه به مقدار پیشفرض آن
- option=x یا option:x - تنظیم گزینه روی x
- option+=x - افزودن/پیوست کردن x به گزینه
- option-=x - حذف (یا تفریق) x از گزینه
- option^=x - تغییر وضعیت حضور x در میان مقادیر گزینهنام گزینه میتواند با هر تعداد نویسهٔ فاصلهساز در ابتدا و انتها همراه باشد.
- :setglobal
- :setg[lobal]
- نمایش تمام گزینههای سراسری که با مقدار پیشفرض خود تفاوت دارند.
- :setg[lobal] all
- نمایش تمام گزینههای سراسری.
- :setg[lobal] opt1=val1 opt2='val2' opt3="val3" ...
- مشابه :set، اما تنها گزینههای سراسری یا مقادیر سراسریِ گزینههای محلی را تغییر داده یا چاپ میکند. تغییرات اعمالشده بر دومی ممکن است تا زمان تغییر دایرکتوری قابل مشاهده نباشد.
- :setlocal
- :setl[ocal]
- نمایش تمام گزینههای محلی که با مقدار پیشفرض خود تفاوت دارند.
- :setl[ocal] all
- نمایش تمام گزینههای محلی.
- :setl[ocal] opt1=val1 opt2='val2' opt3="val3" ...
- مشابه :set، اما تنها مقادیر محلیِ گزینههای محلی را تغییر داده یا چاپ میکند.
- :shell
- :sh[ell][!]
- اجرای یک شل در دایرکتوری جاری. «!» از باز شدن پنجرهٔ اختصاصی در مالتیپلکسر ترمینال برای شل جلوگیری میکند. برای سازگاری vifm با محیط، در صورت تعریف بودن از $SHELL استفاده میشود، در غیر این صورت مقدار 'shell' به کار میرود.
- :siblnext
- :[count]siblnext[!]
-
تغییر دایرکتوری به [count]امین دایرکتوری همسطح بعدی پس از مسیر جاری بر اساس مقدار گزینهٔ مرتبسازی سراسری قاب جاری. «!» قابلیت چرخش (wrapping) را فعال میکند.
برای مثال، فرض کنید در /boot هستید و فهرست ریشه بدین صورت آغاز میشود:
bin/
boot/
dev/
...اجرای :siblnext شما را به /dev هدایت خواهد کرد.
- :siblprev
- :[count]siblprev[!]
- مشابه :siblnext، اما در جهت مخالف.
- :sort
- :sor[t]
- نمایش کادر محاورهای حاوی روشهای مختلف مرتبسازی، که در آن میتوان کلید مرتبسازی اصلی را انتخاب کرد. هنگامی که گزینهٔ 'viewcolumns' خالی باشد و 'lsview' خاموش باشد، تغییر کلید مرتبسازی اصلی بر ظاهر نما نیز تأثیر میگذارد (بهویژه ستون دوم نما تغییر خواهد کرد). برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید.
- :source
- :so[urce] file
- خواندن دستورهای خط فرمان از file.
- :split
- :sp[lit]
- جابهجایی به نمای افقی دو پنجرهای.
- :sp[lit]!
- تغییر وضعیت تقسیم افقی پنجره.
- :sp[lit] path
- تقسیم افقی پنجره برای نمایش هر دو دایرکتوری فایل. همچنین قاب دیگر را به path (مسیر مطلق یا نسبی نسبت به دایرکتوری جاری در قاب فعال) تغییر میدهد.
- :stop
- :st[op]
- معلق کردن vifm (مشابه فشردن Ctrl-Z). اگر این نمونه درون یک شل اجرا نشده باشد، هیچ کاری انجام نمیدهد. این دستور به منظور امکان نگاشت به عملکرد Ctrl-Z تعبیه شده است.
- :substitute
- :[range]s[ubstitute]/pattern/string/[flags]
- به ازای هر فایل در محدوده (range)، یک تطابق از pattern را با string جایگزین میکند.
رشتهٔ string میتواند شامل \0...\9 برای پیوند به گروههای تسخیرشده (capture groups) باشد (\0 - تمام تطابق، \1 - گروه نخست و غیره).
الگوی pattern در تاریخچهٔ جستجو ذخیره میشود.
پرچمهای موجود:
- i - نادیده گرفتن بزرگی و کوچکی حروف (گزینههای 'ignorecase' و 'smartcase' استفاده نمیشوند)
- I - عدم نادیده گرفتن بزرگی و کوچکی حروف (گزینههای 'ignorecase' و 'smartcase' استفاده نمیشوند)
- g - جایگزینی تمام موارد منطبق در نام هر فایل (هر بار ذکر g این وضعیت را تغییر میدهد)
- :[range]s[ubstitute]/pattern
- جایگزین کردن pattern با یک رشتهٔ خالی.
- :[range]s[ubstitute]//string/[flags]
- استفاده از آخرین pattern از تاریخچهٔ جستجو.
- :[range]s[ubstitute]
- تکرار دستور جایگزینی پیشین.
- :sync
- :sync [relative path]
- تغییر قاب دیگر به دایرکتوری قاب جاری یا به مسیری نسبی نسبت به دایرکتوری جاری. استفاده از ماکروها مجاز است.
- :sync!
- تغییر قاب دیگر به دایرکتوری قاب جاری و همگامسازی موقعیت مکاننما. اگر قاب جاری فهرست سفارشی از فایلها را نمایش دهد، موقعیت پیش از ورود به آن استفاده میشود (چرا که موقعیت فعلی ممکن است بیمعنی باشد).
- :sync! [location | cursorpos | localopts | filters | filelist | tree | all]...
- تغییر مشخصههای برشمردهشدهٔ قاب دیگر برای مطابقت با مشخصههای متناظر در قاب جاری. آرگومانها دارای معانی زیر هستند:
- location - دایرکتوری جاری قاب؛
- cursorpos - موقعیت مکاننما (بدون "location" بیمعنی است)؛
- localopts - تمام گزینههای محلی؛
- filters - تمام فیلترها؛.IP - 2 filelist - فهرست فایلها برای نمای سفارشی (مستلزم «location» است)؛
- tree - ساختار درختی برای نمای درختی (مستلزم «location» است)؛
- all - تمام موارد بالا.
- :tabclose
- :tabc[lose]
- بستن زبانه فعلی، مگر اینکه تنها زبانه باز در حوزه فعلی باشد.
- :tabmove
- :tabm[ove] [N]
- بدون آرگومان یا با `$` به عنوان آرگومان، زبانه فعلی آخرین زبانه میشود. با آرگومان، زبانه فعلی به بعد از زبانه با شماره مشخصشده منتقل میشود. آرگومان `0` زبانه فعلی را به موقعیت نخست جابهجا میکند.
- :tabname
- :tabname [name]
- تنظیم، بهروزرسانی یا بازنشانی (در صورت عدم ارائه آرگومان) نام زبانه فعلی.
- :tabnew
- :tabnew [path]
- ایجاد زبانه جدید. یک مسیر اختیاری برای زبانه جدید میپذیرد. ماکروها و متغیرهای محیطی بسط داده میشوند.
- :tabnext
- :tabn[ext]
- جابهجایی به زبانه بعدی (با چرخش به ابتدا).
- :tabn[ext] {n}
- رفتن به زبانه شماره {n}. شمارهگذاری زبانهها از ۱ شروع میشود.
- :tabonly
- :tabo[nly]
- بستن همه زبانهها به جز زبانه فعلی. زبانههای قاب را فقط در سمت فعال میبندد.
- :tabprevious
- :tabp[revious]
- جابهجایی به زبانه قبلی (با چرخش به انتها).
- :tabp[revious] {n}
- رفتن به {n}ـمین زبانه قبلی. توجه داشته باشید که :tabnext آرگومان خود را به شکل متفاوتی پردازش میکند.
- :touch
- :[line]touch file...
- ایجاد فایلها در مسیرهای مشخصشده. در صورت بروز خطا لغو میشود. زمان فایلهای موجود را بهروزرسانی نمیکند. از [line] میتوان برای انتخاب گره در نمای درختی استفاده کرد. ماکروها بسط داده میشوند.
- :tr
- :[range]tr/pattern/string/
- برای هر فایل در محدوده، نویسههای موجود در pattern را به نویسه متناظر در string نویسهگردانی میکند. هنگامی که string کوتاهتر از pattern باشد، با آخرین نویسه خود پُر (pad) میشود.
- :trashes
- :trashes
- فهرست کردن تمام دایرکتوریهای زبالهدان معتبر در یک منو. تنها دایرکتوریهای زبالهدان غیرخالی و قابل نوشتن نمایش داده میشوند. این دقیقاً همان فهرست دایرکتوریهایی است که هنگام اجرای دستور :empty پاکسازی میشوند.
- :trashes?
- مشابه :trashes، اما اندازه هر دایرکتوری زبالهدان را نیز نمایش میدهد.
- :tree
- :tree
- تبدیل قاب
به نمای
درختی با
دایرکتوری
فعلی به
عنوان ریشه
آن. نمای
درختی بر
روی یک نمای
سفارشی
پیادهسازی
شده است،
اما بهطور
خودکار با
وضعیت
سیستمفایل
همگام نگه
داشته
میشود و
همه
فیلترها را
لحاظ
میکند.
بنابراین
ساختار با
آنچه که فرد
هنگام
پیمایش
دستی
دایرکتوریها
میبیند
مطابقت
دارد. به
عنوان یک
حالت خاص،
برای
درختهای
ساختهشده
از نمای
سفارشی،
ردگیری
سیستمفایل
انجام
نمیشود.
برای خروج از نمای درختی، از ریشه آن بالا بروید یا در هر سطحی از درخت از gh استفاده کنید. هر دستوری که دایرکتوری را تغییر دهد نیز کارساز است، بهویژه `:cd ..`.
ساختار درختی با نمایشهای جایگزین ناسازگار است، بنابراین مقادیر گزینههای 'lsview' و 'millerview' نادیده گرفته میشوند.
آرگومان «depth» سطح تو در تویی را مشخص میکند که در آن بارگذاری زیردایرکتوریها انجام نخواهد شد (جمع میشوند). مقادیر از ۱ شروع میشوند.
- :tree!
- تغییر وضعیت نمای فعلی به حالت درختی و برعکس.
- :undolist
- :undol[ist]
- نمایش فهرستی از آخرین تغییرات. برای دیدن دستورات واقعی از "!" استفاده کنید. برای کلیدهای کنترلی بخش «Menus and dialogs» را ببینید.
- :unlet
- :unl[et][!] {var}...
- حذف یک یا چند متغیر محیطی (`$VAR`) یا سراسری (`g:global`). از "!" برای جلوگیری از نمایش هشدار درباره متغیرهای ناموجود استفاده کنید.
- :unselect
- :[range]unselect
- از حالت انتخاب خارج کردن فایلها در محدوده ارائهشده (در صورت عدم تعیین محدوده، فایل فعلی).
- :unselect {pattern}
- از حالت انتخاب خارج کردن فایلهایی که با الگوی {pattern} مشخصشده مطابقت دارند. حالتهای ممکن {pattern} در بخش «الگوها (Patterns)» در زیر شرح داده شده است. اسلش انتهایی برای دایرکتوریها لحاظ میشود، بنابراین `:unselect */` دایرکتوریها را از حالت انتخاب خارج میکند.
- :unselect !{external command}
- از حالت انتخاب خارج کردن فایلها از فهرستی که توسط دستور خارجی ارائه شده است. تطبیق فایلها بر اساس مسیرهای کامل صورت میگیرد؛ مسیرهای نسبی از قبل به مسیرهای مطلق تبدیل میشوند.
- :unselect //[iI]
- مشابه مورد بالا، اما از آخرین الگوی جستجو استفاده مجدد میکند.
- :version
- :ve[rsion]
- نمایش منویی با اطلاعات نسخه.
- :vifm
- :vifm
- مشابه :version.
- :view
- :vie[w]
- تغییر وضعیت فعال/غیرفعال نمای سریع فایل (پیشنمایش محتوای فایل). همچنین گزینه 'quickview' را ببینید.
- :vie[w]!
- روشن کردن نمای سریع فایل در صورتی که خاموش باشد.
- :volumes
- :volumes
- تنها برای
MS-Windows
نمایش منویی از فهرست درایوها (volumes). زدن کلید l (یا Enter) درایو مربوطه را در قاب فعلی باز میکند. برای کنترلها بخش «Menus and dialogs» را ببینید. - :vsplit
- :vs[plit]
- جابهجایی به یک نمای دو پنجرهای عمودی.
- :vs[plit]!
- تغییر وضعیت تقسیم عمودی پنجره.
- :vs[plit] path
- تقسیم عمودی پنجره برای نمایش هر دو دایرکتوری فایل؛ و تغییر قاب دیگر به path (مطلق یا نسبی نسبت به دایرکتوری فعلی قاب فعال).
- :wincmd
- :[count]winc[md] {arg}
- مشابه اجرای Ctrl-W [count] {arg}.
- :windo
- :windo [command...]
- اجرای دستور برای هر قاب (مشابه دستور :winrun % command).
- :wingo
- :wingo {id} [{substr}]
- پیمایش به یک نما بر اساس شماره id آن. بخش {substr} برای تکمیل خودکار استفاده میشود (میتواند هر تعداد کلمه باشد، تنها فاصلههای ابتدایی حذف میشوند). با جابهجایی به زبانه و قاب مربوطه، نما به نمای فعلی تبدیل خواهد شد. تطبیق، یک جستجوی زیررشته حساس به بزرگی و کوچکی حروف در عنوان نما یا مسیر کامل فعلی آن است (با بسط `~` بدون در نظر گرفتن هیچ تنظیماتی).
- :wingo {substr}
- این شکل از دستور به نمایی میرود که بهطور منحصربهفرد توسط {substr} شناسایی شود، در غیر این صورت خطا میدهد. اگر کلمه اول {substr} یک عدد معتبر باشد که با یک رقم آغاز شود (یعنی هیچ `+` یا `-` در ابتدا نداشته باشد)، از این شکل استفاده نخواهد شد.
- :winrun
- :winrun type [command...]
- اجرای
دستور برای
قاب(ها)، که
توسط
آرگومان type
تعیین
میشود:
- ^ - قاب بالا-چپ
- $ - قاب پایین-راست
- % - همه قابها
- . - قاب فعلی
- , - قاب دیگر.TP :write - :w[rite]
- وضعیت جاری را در vifminfo و فایلهای نشست (در صورت فعال بودن یک نشست) مینویسد.
- :wq
- :wq[!]
- مشابه :quit، اما ! تنها بررسی دستورهای پسزمینه را غیرفعال میکند، در حالی که وضعیت برنامه همیشه ذخیره میشود. :wqall
- :wqa[ll][!]
- مشابه :qall، اما ! تنها بررسی دستورهای پسزمینه را غیرفعال میکند، در حالی که وضعیت برنامه همیشه ذخیره میشود.
- :xall
- :xa[ll][!]
- مشابه :qall.
- :xit
- :x[it][!]
- مشابه :quit.
- :yank
- :[range]y[ank] [reg] [count]
- فایلها را در ثبات reg کپی (yank) میکند.
- :map lhs rhs
- :map lhs rhs
- نگاشت توالی کلید lhs به rhs در حالتهای normal و visual.
- :map! lhs rhs
- نگاشت توالی کلید lhs به rhs در حالت command line.
- :amap :cmap :dmap :mmap :nmap :qmap :vmap
- :amap lhs rhs
- نگاشت lhs به rhs در حالت navigation.
- :cm[ap] lhs rhs
- نگاشت lhs به rhs در حالت command line.
- :dm[ap] lhs rhs
- نگاشت lhs به rhs در حالتهای dialog.
- :mm[ap] lhs rhs
- نگاشت lhs به rhs در حالت menu.
- :nm[ap] lhs rhs
- نگاشت lhs به rhs در حالت normal.
- :qm[ap] lhs rhs
- نگاشت lhs به rhs در حالت view.
- :vm[ap] lhs rhs
- نگاشت lhs به rhs در حالت visual.
- :*map
- :amap
- فهرست کردن تمام نگاشتها در حالت navigation.
- :cm[ap]
- فهرست کردن تمام نگاشتها در حالت command line.
- :dm[ap]
- فهرست کردن تمام نگاشتها در حالتهای dialog.
- :mm[ap]
- فهرست کردن تمام نگاشتها در حالت menu.
- :nm[ap]
- فهرست کردن تمام نگاشتها در حالت normal.
- :qm[ap]
- فهرست کردن تمام نگاشتها در حالت view.
- :vm[ap]
- فهرست کردن تمام نگاشتها در حالت visual.
- :*map beginning
- :amap beginning
- فهرست کردن تمام نگاشتها در حالت navigation که با beginning آغاز میشوند.
- :cm[ap] beginning
- فهرست کردن تمام نگاشتها در حالت command line که با beginning آغاز میشوند.
- :dm[ap] beginning
- فهرست کردن تمام نگاشتها در حالتهای dialog که با beginning آغاز میشوند.
- :mm[ap] beginning
- فهرست کردن تمام نگاشتها در حالت menu که با beginning آغاز میشوند.
- :nm[ap] beginning
- فهرست کردن تمام نگاشتها در حالت normal که با beginning آغاز میشوند.
- :qm[ap] beginning
- فهرست کردن تمام نگاشتها در حالت view که با beginning آغاز میشوند.
- :vm[ap] beginning
- فهرست کردن تمام نگاشتها در حالت visual که با beginning آغاز میشوند.
- :noremap
- :no[remap] lhs rhs
- نگاشت توالی کلید lhs به rhs برای حالتهای normal و visual، اما نگاشتهای کاربر در rhs بسط داده نمیشوند.
- :no[remap]! lhs rhs
- نگاشت توالی کلید lhs به rhs برای حالت command line، اما نگاشتهای کاربر در rhs بسط داده نمیشوند.
- :anoremap :cnoremap :dnoremap :mnoremap :nnoremap :qnoremap :vnoremap
- :anoremap lhs rhs
- نگاشت توالی کلید lhs به rhs برای حالت navigation، اما نگاشتهای کاربر در rhs بسط داده نمیشوند.
- :cno[remap] lhs rhs
- نگاشت توالی کلید lhs به rhs برای حالت command line، اما نگاشتهای کاربر در rhs بسط داده نمیشوند.
- :dn[oremap] lhs rhs
- نگاشت توالی کلید lhs به rhs برای حالتهای dialog، اما نگاشتهای کاربر در rhs بسط داده نمیشوند.
- :mn[oremap] lhs rhs
- نگاشت توالی کلید lhs به rhs برای حالت menu، اما نگاشتهای کاربر در rhs بسط داده نمیشوند.
- :nn[oremap] lhs rhs
- نگاشت توالی کلید lhs به rhs برای حالت normal، اما نگاشتهای کاربر در rhs بسط داده نمیشوند.
- :qn[oremap] lhs rhs
- نگاشت توالی کلید lhs به rhs برای حالت view، اما نگاشتهای کاربر در rhs بسط داده نمیشوند.
- :vn[oremap] lhs rhs
- نگاشت توالی کلید lhs به rhs برای حالت visual، اما نگاشتهای کاربر در rhs بسط داده نمیشوند.
- :unmap
- :unm[ap] lhs
- حذف نگاشت کاربری lhs از حالتهای normal و visual.
- :unm[ap]! lhs
- حذف نگاشت کاربری lhs از حالت command line.
- :aunmap :cunmap :dunmap :munmap :nunmap :qunmap :vunmap
- :aunmap lhs
- حذف نگاشت کاربری lhs از حالت navigation.
- :cu[nmap] lhs
- حذف نگاشت کاربری lhs از حالت command line.
- :du[nmap] lhs
- حذف نگاشت کاربری lhs از حالتهای dialog.
- :mu[nmap] lhs
- حذف نگاشت کاربری lhs از حالت menu.
- :nun[map] lhs
- حذف نگاشت کاربری lhs از حالت normal.
- :qun[map] lhs
- حذف نگاشت کاربری lhs از حالت view.
- :vu[nmap] lhs
- حذف نگاشت
کاربری lhs از
حالت visual. یک
محدوده (range)
دنبالهای
از یک یا
چند عنصر
آدرس است که
با ویرگول (',')
یا
نقطهویرگول
(';') از هم جدا
شدهاند.
آدرسها از
چپ به راست
پردازش
میشوند تا
محدودهای
دوعنصری
تولید شود
که در آن
عنصر نخست
از نظر عددی
بزرگتر از
عنصر دوم
نباشد:
- یک محدودهٔ تکعنصری 'X' معادل 'X,X' است
- یک محدوده با بیش از دو عنصر به دو عنصر آخر تقلیل مییابد، برای نمونه: 'X;Y,Z' به 'Y,Z' تبدیل میشود (با این حال 'X' کاملاً نادیده گرفته نمیشود، زیرا میتواند از طریق آفستها بر ارزیابی 'Y' و سپس 'Z' تأثیر بگذارد)
- از کاربر پرسیده میشود که آیا یک محدودهٔ نزولی باید به جای رد شدن جابهجا (swap) شود یا خیریک محدوده در شرایط زیر نامعتبر در نظر گرفته خواهد شد:
- عنصر دوم آن از عنصر نخست کوچکتر باشد
- به نشانهای (mark) ارجاع دهد که درون فهرست فایلهای فعلی قرار نداردهر آدرس میتواند به چند شکل که در ادامه شرح داده شده درآید، اما همهٔ آنها میتوانند با تعداد نامشخصی آفست دنبال شوند: افزایشها ('+{n}') یا کاهشها ('-{n}'). هنگامی که یک عنصر با یک آفست آغاز میشود، بسته به جداکننده، آفست بر موقعیت فعلی یا آدرس قبلی اعمال میشود:
- برای ',' از موقعیت فعلی مکاننما استفاده میشود
- برای ';' از عنصر پیشین محدوده استفاده میشودآدرسها اعداد صحیح مثبتی در بازهٔ ۱ (نخستین آیتم، که میتواند ../ باشد) تا تعداد آیتمهای موجود در فهرست (شامل خود آن، که بیانگر آخرین آیتم است) هستند. همهٔ مقادیر برای قرار گرفتن در این بازه نرمالسازی میشوند.
آدرسهای زیر پشتیبانی میشوند:
. - موقعیت مکاننما
{n} - موقعیت {n}
$ - موقعیت آخرین آیتم
't - موقعیت نشانهٔ `t`محدودهٔ کوتاه زیر نیز وجود دارد:
% - همهٔ آیتمهای موجود در فهرست (معادل `1,$`)مثالها:
:.gr[ep] ... فایل زیر مکاننما را grep میکند. :.d[elete] فایل زیر مکاننما را حذف میکند. :%d[elete] همهٔ فایلهای قابل مشاهده را حذف میکند. :1,4d[elete] فایلها را در موقعیتهای ۱، ۲، ۳ و ۴ فهرست حذف میکند. نکته: دایرکتوری والد ../ توسط عملیاتها مدیریت نمیشود و میتواند با اطمینان به عنوان بخشی از محدودههای مختلف گنجانده شود. :2,4d[elete] فایلها را در موقعیتهای ۲، ۳ و ۴ فهرست حذف میکند. :2d[elete]4 فایلها را در موقعیتهای ۲، ۳، ۴ و ۵ فهرست حذف میکند. :.,$d[elete] فایلها را از موقعیت فعلی تا انتهای فهرست فایلها حذف میکند. :'a+1y[ank] فایلِ زیرینِ فایل نشانهگذاریشده با 'a را رونوشت (yank) میکند. :+1,+1y[ank] فایل زیر مکاننما را رونوشت میکند. :+1;+1y[ank] دو فایل زیر مکاننما را رونوشت میکند. :+1;+1;+1y[ank] دو فایل پایینی را رد کرده و از دو فایل بعدی رونوشت برمیدارد. :-3;+1 دو فایل به بالا حرکت میکند.همهٔ دستورهایی که در مستندات با `[range]` در جلوی آنها مشخص شدهاند، محدودهها را پذیرفته و پردازش میکنند. دستورهایی که موقعیت میپذیرند، فقط از آخرین عنصر محدوده استفاده میکنند.
پارامترهای :command (:command parameters)
برخی از دستورهای خط فرمان پارامترهایی به شکل `-paramname` میپذیرند. آرگومانهای چنین دستورهایی را میتوان به دو گروه تقسیم کرد: پارامترها و آرگومانهای موضعی (positional). آیتمهای این دو گروه نمیتوانند در هم آمیخته شوند و پارامترها همواره در ابتدا میآیند. فهرست پارامترها به صورت ضمنی با نخستین آرگومانی که با خط تیره ("-") آغاز نشود، یا به صورت صریح با جداکنندهٔ "--" (که باید یک آرگومان جداگانه باشد) خاتمه مییابد که این جداکننده صرفاً دور انداخته میشود. این قوانین سختگیرانه امکان استفاده از آرگومانهای موضعی دلخواه را، مانند نام فایلهایی که با خط تیره آغاز میشوند، فراهم میآورد.
- -skip parameter
- این پارامتر باعث میشود دستورهای :copy، :move، :alink و :rlink به جای خودداری از انجام عملیات، فایلهای مبدأیی را که از پیش در مقصد وجود دارند به طور خودکار نادیده بگیرند.
ماکروهای دستور (Command macros)
ماکروهای دستور میتوانند در دستورهای کاربر مورد استفاده قرار گیرند.
- %a
- آرگومانهای کاربر. هنگامی که آرگومانهای کاربر حاوی ماکرو باشند، پیش از انجام جایگزینی %a بسط داده میشوند.
- %c %"c
- فایل فعلی زیر مکاننما.
- %C %"C
- فایل فعلی زیر مکاننما در دایرکتوری دیگر.
- %f %"f
- همهٔ فایلهای انتخابشده یا فایل فعلی؛ اما بخش «انتخاب» در ادامه را ببینید.
- %F %"F
- مشابه %f و %"f، اما برای قاب غیرفعال (inactive pane).
- %l %"l
- فهرست فایلهای انتخابشده. برخلاف %f در بالا، این ماکرو تنها برای انتخاب صریح (یعنی نه از طریق محدوده) است و اگر فایلی انتخاب نشده باشد، خالی خواهد بود.
- %L %"L
- مشابه %l و %"l، اما برای قاب غیرفعال.
- %b %"b
- مشابه %f %F.
- %d %"d
- مسیر کامل دایرکتوری فعلی.
- %D %"D
- مسیر کامل دایرکتوری فهرست فایلِ دیگر.
- %rx %"rx
- مسیرهای کامل فایلهای موجود در ثبات (register) {x}. در صورت وجود نماد نامعتبر به جای {x}، همراه با بقیهٔ خط پردازش شده و از ثبات پیشفرض استفاده میشود.
- %m
- نمایش خروجی دستور در یک منو.
- %M
- مشابه %m، اما کلید l (یا Enter) همانند دستورهای :locate و :find مدیریت میشود.
- %u
- پردازش خروجی دستور به عنوان فهرستی از مسیرها و ساخت یک نمای سفارشی از آن.
- %U
- مشابه %u، اما مستلزم بهروزرسانیهای کمتر فهرست در vifm است که در حال حاضر به معنای عدم مرتبسازی است.
- %Iu
- مشابه %u، اما پیش از اجرای دستور خارجی ترمینال را واگذار میکند.
- %IU
- مشابه %U، اما پیش از اجرای دستور خارجی ترمینال را واگذار میکند.
- %S
- نمایش خروجی دستور در نوار وضعیت.
- %q
- هدایت خروجی دستور به نمای سریع (quick view)، که در صورت غیرفعال بودن فعال میشود.
- %s
- اجرای دستور در پنجرهٔ افقی تقسیمشدهٔ مالتیپلکسر ترمینال فعال (در صورتی که درون یکی از آنها اجرا نشود نادیده گرفته میشود).
- %v
- مشابه %s، اما به صورت عمودی تقسیم میکند.
- %n
- ممنوع کردن استفاده از مالتیپلکسر ترمینال برای اجرای دستور.
- %N
- جدا نکردن نمایشگر از نشست ترمینال (در دسترس نگهداشتن `/dev/tty`) یا گروه پردازش (نگهداشتن دستور در مجموعهٔ کلاینتهای پیشزمینهٔ ترمینال). این پرچم یک راهحل برای دستورها/ترمینالهای نادری است که ممکن است برای کارکرد صحیح دستور :fileviewer به یک TTY فعال نیاز داشته باشند؛ در غیر این صورت هیچ اثری ندارد.
- %i
- اجرا در پسزمینه و فرونشاندن کادرهای خطای محاورهای، اما جمعآوری داخلی خطاها برای مشاهده از طریق منوی :jobs. این ماکرو به خودی خود دستور را از نشست ترمینال (`/dev/tty`) جدا نمیکند؛ برای اینکه دستور بدون دسترسی به ترمینال بماند، " &" را اضافه کنید.
- %Pl
- ارسال فهرست فایلها از طریق لوله (pipe) به ورودی استاندارد یک دستور.
- %Pz
- مشابه %Pl، اما مسیرها را با نویسهٔ تهی ('\0') از هم جدا میکند.
- %pc
- نشاندهندهٔ پایان دستور اصلی و آغاز دستور پاکسازی برای پیشنمایش گرافیکی، که هنگام بستن پیشنمایش یک فایل فراخوانی میشود.
- %pd
- یک دستور پیشنمایش را به عنوان دستوری که مستقیماً با ترمینال ارتباط برقرار میکند مشخص میکند. توجه داشته باشید که این ماکرو برای مواردی مانند sixel است که دنبالههای خودبسندهای هستند و تنها به موقعیت فعلی مکاننما وابستهاند؛ استفاده از آن با هر چیز دیگری احتمالاً وضعیت ترمینال را برهم خواهد زد.
- %pu
- پیشنمایش بدون کَش (uncached). برای استفاده در دستورهایی در نظر گرفته شده است که صرفاً مسیر فایل را برای پیشنمایش به جایی ارسال میکنند.
ابعاد و مختصات زیر بر حسب نویسه (کاراکتر) هستند:
- %px
- مختصات x گوشهٔ بالا-چپ ناحیهٔ پیشنمایش.
- %py
- مختصات y گوشهٔ بالا-چپ ناحیهٔ پیشنمایش.
- %pw
- عرض ناحیهٔ پیشنمایش..TP %ph ارتفاع ناحیهٔ پیشنمایش.
اگر نیاز دارید یک علامت درصد در دستور خود قرار دهید، از %% استفاده کنید.
توجه داشته باشید که ماکروهای %i، %Iu، %IU، %m، %M، %n، %q، %s، %S، %u، %U و %v مانعةالجمع هستند. تنها آخرین مورد از آنها در دستور اعمال خواهد شد.
توجه داشته باشید که %Pl و %Pz مانعةالجمع هستند. تنها آخرین مورد از آنها در دستور اعمال خواهد شد.
توجه داشته باشید که یک پیشنمایشگر حاوی %pd به عنوان یک پیشنمایشگر عبور مستقیم (pass-through) در نظر گرفته میشود، در غیر این صورت پیشنمایشگری که شامل هر دوی %px و %py باشد به عنوان یک پیشنمایشگر گرافیکی محسوب شده و باقی موارد به عنوان پیشنمایشگر متنی در نظر گرفته میشوند.
شما میتوانید بعد از ماکروهای %c، %C، %f، %F، %b، %d و %D از اصلاحکنندههای نام فایل استفاده کنید. اصلاحکنندههای پشتیبانیشده عبارتند از:
- :p - مسیر کامل
- :u - نام UNC مسیر (برای مثال "\\server" در "\\server\share")، فقط در Windows. برای مسیرهای غیر UNC به نام رایانهٔ جاری بسط مییابد.
- :~ - نسبت به دایرکتوری خانگی (home)
- :. - نسبت به دایرکتوری جاری
- :h - ابتدای نام فایل (head)
- :t - انتهای نام فایل (tail)
- :r - ریشهٔ نام فایل (بدون پسوند نهایی)
- :e - پسوند نام فایل (آخرین پسوند)
- :s?pat?sub? - جایگزینی اولین رخداد pat با sub. میتوانید از هر نویسهای برای '?' استفاده کنید، اما نباید در pat یا sub آمده باشد.
- :gs?pat?sub? - مانند :s، اما تمام رخدادهای pat را با sub جایگزین میکند.
برای توضیحات کامل، بخش ':h filename-modifiers' را در مستندات Vim ببینید.
استفاده از %x به معنای بسط ماکروی مربوطه با گریز دادن (escaping) تمام نویسههای دارای معنای خاص است. و %"x به معنای استفاده از گیومه و گریز دادن تنها نویسههای بکاسلش و گیومه است که در سیستمهای Windows کاربرد بیشتری دارد.
موقعیت و تعداد (در صورت وجود) ماکروهای %m، %M، %S یا %s در دستور اهمیتی ندارد. تمامی رخدادهای آنها از دستور حاصل حذف میشوند.
ماکروهای %c و %f به مسیرهای نسبی بسط مییابند، در حالی که %C و %F همواره به مسیرهای کامل بسط داده میشوند. همین امر در مورد %f و %F که بهطور ضمنی توسط %b استفاده میشوند نیز صدق میکند.
- :com move mv %f %D
- دستور :move را طوری تنظیم میکند که تمام فایلهای انتخابشده در دایرکتوری جاری را به دایرکتوری دیگر منتقل کند.
- ماکروی %a با هر آرگومان دادهشده به یک دستور مستعار (alias) جایگزین میشود. تمام آرگومانها اختیاری در نظر گرفته میشوند.
- :com lsl !!ls -l %a - دستور lsl را طوری تنظیم میکند که ls -l را با یا بدون آرگومان اجرا کند.
- :lsl<Enter>
- محتویات دایرکتوری جاری را فهرست خواهد کرد.
- :lsl filename<Enter>
- تنها نام فایل مشخصشده را فهرست خواهد کرد.
- از ماکروها میتوان در اجرای مستقیم دستورات نیز استفاده کرد. ":!mv %f %D" فایلهای انتخابشده در دایرکتوری جاری را به دایرکتوری دیگر منتقل میکند.
- افزودن & به انتهای یک دستور باعث میشود که در پسزمینه اجرا شود. بهطور معمول شما میخواهید دو دسته از دستورات خارجی را در پسزمینه اجرا کنید:
- برنامههای دارای رابط گرافیکی (GUI) که فورک (fork) نمیکنند و در نتیجه vifm را مسدود میسازند (:!sxiv %f &)؛
- ابزارهای کنسولی که با ترمینال کار نمیکنند (:!mv %f %D &).
- شما نباید دستورات ترمینالی را که به ورودی ترمینال نیاز دارند یا چیزی در خروجی چاپ میکنند در پسزمینه اجرا کنید، زیرا رابط کاربری متنی (TUI) برنامهٔ vifm را به هم میریزند. در هر حال، اگر چنین دستوری را اجرا کردید، میتوانید از کلید Ctrl-L برای بهروزرسانی TUI برنامهٔ vifm استفاده کنید.
- بازنویسی دستور مثال با ماکروهای ارائهشده در بالا به همراه اجرای در پسزمینه:
ماکروهای %m، %M، %s، %S، %u و %U نمیتوانند با علامت پسزمینه (" &") ترکیب شوند زیرا مفهوم چندانی نخواهد داشت.
اجرای دستورات در پسزمینه (COMMAND BACKGROUNDING)
انجام عملیاتهای سیستمفایل ممکن است زمان زیادی ببرد. به همین دلیل vifm از پسزمینهسازی آنها پشتیبانی میکند. برای اجرای دستورات :copy، :move یا :delete در پسزمینه فقط کافی است " &" را به انتهای آنها اضافه کنید.
برای هر عملیات پسزمینه یک ریسه (thread) جدید ایجاد میشود. لغو کارها را میتوان در منوی :jobs از طریق کلید میانبر dd درخواست کرد.
میتوانید در منوی :jobs وضعیت اجرای دستور را بررسی کنید. دستورات پسزمینه بهجای شناسهٔ فرایند (PID)، میزان پیشرفت کار را در ابتدای خط نمایش میدهند.
عملیاتهای پسزمینه را نمیتوان واگرد (undo) کرد.
بخش "File copying" را در زیر ببینید.
لغو عملیات (CANCELLATION)
توجه داشته باشید که لغو عملیات در پلتفرم Windows به دلیل سازوکار متفاوت انتشار سیگنال break تا حدی متفاوت کار میکند. همچنین ممکن است نیاز باشد بهجای Ctrl-C از میانبر Ctrl-Break استفاده شود.
دو نوع عملیات وجود دارند که میتوان آنها را لغو کرد:
- عملیاتهای سیستمفایل؛
- سوار کردن (mount) با FUSE (اما نه پیاده کردن یا unmount، چرا که میتواند باعث از دست رفتن دادهها شود)؛
- فراخوانی برنامههای خارجی.
توجه داشته باشید که vifm هرگز برنامهها را بهطور ناگهانی خاتمه نمیدهد، بلکه سیگنال SIGINT را ارسال میکند و اجازه میدهد برنامه بهطور عادی خارج شود.
هنگامی که یکی از مجموعهای از عملیاتها لغو میشود (برای مثال کپی کردن پنجمین فایل از ۱۰ فایل)، عملیاتهای بعدی نیز لغو میشوند. در این حالت تاریخچهٔ واگرد (undo history) تنها شامل عملیاتهایی خواهد بود که واقعاً انجام شدهاند.
عملیاتهای لغو شده با پسوند "(cancelled)" که به پیام اطلاعاتی در نوار وضعیت اضافه میشود نشان داده میشوند.
عملیاتهای سیستمفایل
در حال حاضر دستورات زیر قابل لغو هستند: :alink، :chmod، :chown، :clone، :copy، :delete، :mkdir، :move، :restore، :rlink و :touch. قرار دادن فایل (با کلید p/P) نیز میتواند لغو شود. بهراحتی میتوان دریافت که این موارد عمدتاً عملیاتهایی با زمان اجرای طولانی هستند.
لغو دستورات در هنگامی که برای عملیاتهای واگرد/مجدد (undo/redo) تکرار میشوند برای راحتی مجاز است، اما توصیه نمیشود زیرا ممکن است عملیاتهای بعدیِ undo/redo به دلیل اثرات جانبیِ گروه عملیات نیمهلغوشده مسدود شوند.
این دستورات را نمیتوان لغو کرد: :empty، :rename، :substitute، :tr.
سوار کردن با FUSE
این مورد به عنوان خطا در نظر گرفته نمیشود، بنابراین فقط یک اعلان روی نوار وضعیت نمایش داده میشود.
فراخوانی برنامههای خارجی
هر یک از این عملیاتها میتوانند لغو شوند: :apropos، :find، :grep، :locate. اگر انتخابی وجود داشته باشد، پیش از ادامه کار کنار گذاشته (stash) میشود، مگر آنکه فایل زیر مکاننما بخشی از آن انتخاب باشد. این بدین معناست که هنگام بسط ماکروها برای برنامههای :filetype یا :filextype، چنانچه فایل فعلی انتخاب نشده باشد، `%f` و `%F` به ترتیب معادل `%c` و `%C` خواهند شد. بنابراین شما با اجرای یکی از فایلهای انتخابشده، کل انتخاب را اجرا میکنید، در غیر این صورت تنها یک تکفایل را اجرا خواهید کرد، حتی اگر مدخلهای انتخابشده دیگری وجود داشته باشند.
هنگام اجرای یک انتخاب، نباید پیوندهای نمادین خراب (broken symbolic links) در آن وجود داشته باشد، باید همگون (consistent) باشد و مجموعه گردانندههای فایل (handlers) باید سازگار باشند. همگونی بدین معناست که انتخاب یا تنها شامل دایرکتوریها باشد (شامل پیوندها به آنها) یا تنها شامل فایلها، و نه ترکیبی از هر دو.
سازگاری بررسی پیچیدهتری است، اما بهگونهای طبیعی تعریف شده تا همان چیزی رخ دهد که انتظار دارید. ویژگیهای زیر از انتخاب هنگام بررسی سازگاری و تصمیمگیری درباره نحوه مدیریت آن در نظر گرفته میشوند:
- 1.
- اگر فایلی وجود داشته باشد که گردانندهای برای آن تعریف نشده باشد، آنگاه تمام فایلها با استفاده از 'vicmd' یا 'vixcmd' باز میشوند.
- 2.
- اگر همه
گردانندهها
با
معیارهای
زیر مطابقت
داشته
باشند:
- در پسزمینه اجرا شوند (backgrounded)
- شامل `%c`/`%"c` و/یا `%C`/`%"C` باشند
- شامل هیچیک از `%f`/`%"f` و `%F`/`%"F` نباشند
آنگاه هر فایل مستقل از بقیه اجرا میشود. - 3.
- اگر همه گردانندهها یکسان باشند، گرداننده مشترک اجرا میشود. این گرداننده ممکن است انتخاب را نادیده گرفته و تنها فایل زیر مکاننما را پردازش کند.
- 4.
- در غیر این صورت، خطایی گزارش میشود، زیرا گردانندهها با یکدیگر تفاوت دارند و از اجرای موازی نیز پشتیبانی نمیکنند.
الگوها (PATTERNS)
دستورهای :highlight، :filetype، :filextype، :fileviewer و گزینه 'classify' از الگوهای گلوب (globs)، عبارات باقاعده (regular expressions) و انواع mime برای تطبیق نام فایلها یا مسیرهای آنها پشتیبانی میکنند. مسیرهای دایرکتوری در هنگام تطبیق با یک الگو، یک اسلش پایانی ضمنی دریافت میکنند؛ این نکته را برای الگوهای گلوب یا عبارات باقاعدهای که به `$` ختم میشوند در نظر داشته باشید.
شش روش ممکن برای نوشتن یک تکالگو وجود دارد:
- 1.
- [!]{comma-separated-name-globs}
- 2.
- [!]{{comma-separated-path-globs}}
- 3.
- [!]/name-regular-expression/[iI]
- 4.
- [!]//path-regular-expression//[iI]
- 5.
- [!]<comma-separated-mime-type-globs>
- 6.
- undecorated-pattern
پنج فرم نخست میتوانند شامل یک علامت تعجب در ابتدا باشند که تطبیق الگو را نقیض (معکوس) میکند.
فرم آخر به صورت ضمنی به یکی از فرمهای دیگر اشاره دارد. دستور :highlight فرم ساده و بدون نشانهگذاری (undecorated) را نمیپذیرد، در حالی که دستورهای :filetype، :filextype، :fileviewer، :select، :unselect و گزینه 'classify' با آن به عنوان فهرستی از الگوهای گلوب نام رفتار میکنند.
الگوهای مسیر، مسیر مطلق فایل را دریافت میکنند که شامل بخش نام فایل نیز میشود.
برای ترکیب چندین الگو با یکدیگر (عملگر AND)، مطمئن شوید که از یکی از پنج فرم نخست استفاده میکنید و الگوها را پشت سر هم بنویسید، مانند این:
<text/plain>{*.vifm}
توجه داشته
باشید که
اگر مرتکب
اشتباهی
شوید، کل
رشته به
عنوان فرم
ششم تلقی
خواهد شد.
دستورهای :filetype، :filextype و :fileviewer به جای یک تکالگو، فهرستی از الگوهای جداشده با کاما را میپذیرند، و در نتیجه عملاً عملگر OR را روی آنها اعمال میکنند:
<text/plain>{*.vifm},<application/pdf>{*.pdf}
فرمهایی
که
فهرستهای
جداشده با
کاما از
الگوها را
میپذیرند،
آنها را
نیز به
عنوان
فهرستی از
جایگزینها
پردازش
میکنند.
الگوها با عبارات باقاعده (Patterns with regular expressions)
الگوهای عبارات باقاعده به طور پیشفرض به بزرگی و کوچکی حروف حساس نیستند (case insensitive)، به توضیحات دستورها مراجعه کنید که ممکن است رفتار پیشفرض را لغو کنند.
شناسههای
عبارات
باقاعده به
معنای زیر
هستند:
- شناسه "i"
فیلتر را
نسبت به
بزرگی و
کوچکی حروف
ناوابسته
میکند؛
- شناسه "I"
فیلتر را
نسبت به
بزرگی و
کوچکی حروف
حساس
میکند.
آنها را
میتوان
چندین بار
تکرار کرد،
اما مورد
آخر اولویت
دارد (برای
نمونه "iiiI"
معادل "I"
است و "IiIi"
همان "i"
خواهد بود).
هیچ `^` یا `$` ضمنی وجود ندارد، بنابراین اگر قرار است الگو با کل نام یا مسیر مطابقت یابد، حتماً آنها را صریحاً مشخص کنید.
الگوها با گلوبها (Patterns with globs)
بخش «Globs» در ادامه، نمای کلی کوتاهی از گلوبها و برخی نکات مهمی که باید درباره آنها بدانید را ارائه میدهد.
الگوها با انواع mime (Patterns with mime-types)
تطبیق بر اساس نوع mime اساساً تطبیق گلوب است که به جای نام/مسیر فایل، بر نوع mime آن اعمال میشود. نکته: انواع mime در سیستمعامل Windows شناسایی نمیشوند.
مثالها (EXAMPLES)
مرتبطسازی `evince` با فایلهای PDF تنها در داخل دایرکتوری `/home/user/downloads/` (بهاستثنای زیردایرکتوریهای آن):
:filextype //^/home/user/downloads/[^/]*.pdf$// evince %fتمام عبارتهای منظم مدرن/گسترشیافته (modern/extended) هستند. برای جزئیات بیشتر در مورد موارد پشتیبانیشده، `man 7 regex` را ببینید.
توالیهای
ویژه زیر
نیز علاوه
بر آن
پردازش
میشوند:
- `\c` تطبیق را
بدون در نظر
گرفتن
بزرگی و
کوچکی حروف
تحمیل
میکند
- `\C` تطبیق را
با رعایت
بزرگی و
کوچکی حروف
تحمیل
میکند
`\c` و `\C` بالاترین اولویت را در تعیین اینکه بزرگی و کوچکی حروف مطابقت داده شود یا خیر دارند و برای لغو مقادیر 'ignorecase'، 'smartcase' و پرچمهای `i`/`I` در صورت لزوم به کار میروند.
اگر چند توالی وجود داشته باشد، توالیای که دیرتر میآید اولویت دارد.
توجه داشته باشید که برخلاف Vim، ردههای نویسهای (character classes) تحت تأثیر تنظیمات و توالیهایی قرار میگیرند که حساسیت به بزرگی و کوچکی حروف را در عبارتهای منظم کنترل میکنند.
الگوهای گلب (GLOBS)
الگوهای گلب همیشه به بزرگی و کوچکی حروف غیرحساس هستند، چرا که در حالت کلی منطقی است.
`*`، `?`، `[` و `]` به عنوان نمادهای ویژه در الگو در نظر گرفته میشوند. برای مثال:
:filetype * less %cبا تمام فایلها مطابقت دارد. میتوان از ردههای نویسهای برای گریز (escaping) استفاده کرد، بنابراین
:filetype [*] less %c
تنها با نام یک فایل مطابقت مییابد؛ فایلی که نام آن تنها شامل نماد ستاره باشد.
`*` به معنای هر تعداد از هر نویسهای است (احتمالاً یک زیررشته خالی)، با یک استثنا: ستاره در ابتدای الگو با نقطه در جایگاه اول مطابقت نمییابد. برای مثال:
:fileviewer *.zip,*.jar zip -sf %cاستفاده از برنامه `zip` را برای پیشنمایش تمام فایلهای دارای پسوند `zip` یا `jar` به صورت فهرستی از محتویات آنها اختصاص میدهد، اما `.file.zip` مطابقت داده نخواهد شد.
`?` به معنای هر نویسهای در این جایگاه است. برای مثال:
:fileviewer ?.out file %cابزار `file` را برای تمام فایلهایی فراخوانی میکند که دقیقاً یک نویسه پیش از پسوند خود دارند (مانند a.out، b.out).
قلابها یک رده نویسهای را مشخص میکنند، به این معنی که کل رده نویسهای با هر یک از نویسههای ذکرشده در آن مطابقت مییابد. برای مثال:
:fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %cباعث میشود vifm برنامه `highlight` را برای رنگآمیزی فایلهای منبع و هدر در زبان C برای یک ترمینال ۲۵۶ رنگ فراخوانی کند. دستور معادل آن چنین خواهد بود:
:fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c
درون قلابها، میتوان از `^` یا `!` برای نفی رده نمادها و از نماد `-` برای تعیین یک بازه استفاده کرد. `^` و `!` باید بلافاصله پس از قلاب بازشونده قرار گیرند. برای مثال:
:filetype *.[!d]/ inspect_dir
دستور `inspect_dir` را به عنوان یک گرداننده اضافی برای تمام دایرکتوریهایی اختصاص میدهد که پسوند تکنویسهای دارند، مگر اینکه آن پسوند حرف "d" باشد. و
:filetype [0-9].jpg sxiv
نمایشگر تصویر `sxiv` را فقط برای فایلهای JPEG که در نام خود تنها یک رقم دارند اختصاص میدهد.
اگر نیاز دارید یک کامای لفظی را که معمولاً چند الگوی گلب را از هم جدا میکند بگنجانید، آن را دو بار بنویسید.
گزینههای :set (:SET OPTIONS)
- گزینههای محلی (Local options)
- اینها
نوعی از
گزینهها
هستند که
برای یک
نمای خاص
محلی
میباشند؛
بنابراین
میتوانید
ترتیب
مرتبسازی
صعودی را
برای قاب چپ
و ترتیب
نزولی را
برای قاب
راست تنظیم
کنید.
علاوه بر محلی بودن نسبت به نماها، هر یک از این گزینهها دو مقدار نیز دارند:
- محلی نسبت به دایرکتوری جاری (مقدار مرتبط با مکان جاری)؛
- سراسری نسبت به دایرکتوری جاری (مقدار مرتبط با قاب).
- 'aproposprg'
- نوع: رشته
پیشفرض: "apropos %a"
قالب یک دستور خارجی را برای فراخوانی توسط دستور :apropos مشخص میکند. این قالب از گسترش ماکروها (مختص به یک گزینه خاص *prg) و توالی %% برای درج نماد درصد به صورت لفظی پشتیبانی میکند. این گزینه باید شامل ماکروی %a باشد تا جایگاه آرگومانهای ارسالشده به دستور :apropos را مشخص کند. اگر از این ماکرو استفاده نشود، به صورت ضمنی پس از یک فاصله به مقدار این گزینه افزوده خواهد شد. - 'autocd'
- نوع: بولی
پیشفرض: false
هنگامی که فعال باشد، دستورهای ناشناخته خط فرمان به عنوان فراخوانی ضمنی :cd با یک آرگومان و بدون گریز تفسیر میشوند. علامت تیلدا (~) گسترش مییابد، اما ماکروها یا متغیرهای محیطی گسترش نمییابند. - 'autochpos'
- نوع: بولی
پیشفرض: true
هنگامی که غیرفعال باشد، vifm پس از دستورهای :cd و :pushd به جای موقعیت ذخیرهشده مکاننما، مکاننما را روی خط اول در نما قرار میدهد. غیرفعال کردن این گزینه همچنین باعث میشود vifm در دستورهای :cd و :pushd (و در زمان راهاندازی، اگر 'autochpos' در vifmrc غیرفعال باشد) اطلاعات مربوط به موقعیت مکاننما را در تاریخچه نما پاک کند. کلید l در منوهای ":history ." و ":trashes" مانند دستور :cd در نظر گرفته میشود. این گزینه همچنین بر نشانکها (marks) تأثیر میگذارد، به طوری که پیمایش به یک نشانک، موقعیت مکاننما را بازیابی نمیکند.هنگامی که این گزینه فعال باشد، کنترل دقیقتری بر موقعیت مکاننما از طریق گزینه 'histcursor' در دسترس خواهد بود.
- 'columns' 'co'
- نوع: عدد
صحیح
پیشفرض: عرض ترمینال در زمان راهاندازی
عرض ترمینال بر حسب نویسه. - 'caseoptions'
- نوع: مجموعه
نویسهها (charset)
پیشفرض: ""
این گزینه با فراهم آوردن امکان لغو رفتار پیشفرض (جهت حساس بودن همیشگی یا حساس نبودن همیشگی به بزرگی و کوچکی حروف)، کنترل بیشتری را بر حساسیت به حروف فراهم میکند. مقادیر ممکن، جفتهایی از حروف کوچک و بزرگ را تشکیل میدهند که جنبه خاصی از رفتار را پیکربندی میکنند:
p - همیشه نادیده گرفتن بزرگی و کوچکی حروف در مسیرها هنگام تکمیل.
P - همیشه مطابقت دادن بزرگی و کوچکی حروف در مسیرها هنگام تکمیل.
g - همیشه نادیده گرفتن بزرگی و کوچکی حروف برای f/F/;/,.
G - همیشه مطابقت دادن بزرگی و کوچکی حروف برای f/F/;/,.حداکثر یکی از موارد هر جفت اعمال میشود؛ اگر هر دو یا تعداد بیشتری وجود داشته باشند، تنها آخرین مورد اهمیت دارد. هنگامی که هیچکدام از عناصر یک جفت وجود نداشته باشند، رفتار پیشفرض اعمال میشود (برای تکمیل مسیر به سیستمعامل، و برای پیمایش فایل به مقادیر گزینههای 'ignorecase' و 'smartcase' بستگی دارد).
- 'cdpath' 'cd'
- نوع: فهرست
رشتهای
پیشفرض: مقدار $CDPATH با ویرگول به جای دو نقطه
مکانهایی را مشخص میکند که هنگام تغییر دایرکتوری با یک مسیر نسبی که با "./" یا "../" آغاز نمیشود، بررسی شوند. در صورت خالی نبودن، دایرکتوری جاری پس از دایرکتوریهای فهرستشده در این گزینه بررسی میشود.این گزینه بر تکمیل دستور :cd تأثیری ندارد.
مثال:
set cdpath=~
به این ترتیب ":cd bin" به "~/bin" جابهجا خواهد شد حتی اگر دایرکتوریای با نام "bin" در دایرکتوری جاری وجود داشته باشد، در حالی که دستور ":cd ./bin" مقدار 'chaselinks' نوع: boolean
پیشفرض: false
در صورت فعال بودن، مسیر نما همیشه به مسیر واقعی (با بسط تمام پیوندهای نمادین) حل میشود. - 'classify'
- نوع: string list
پیشفرض: ":dir:/"
پیشوندها و پسوندهای نام فایل را بسته به نوع یا نام فایل تعیین میکند (توجه داشته باشید که نام دایرکتوریها دارای یک اسلش انتهایی ضمنی هستند). قالب به یکی از دو شکل زیر است:
- [{prefix}]:{filetype}:[{suffix}]
- [{prefix}]::{pattern}::[{suffix}]
شکلهای ممکن {pattern} در بخش «Patterns» در بالا شرح داده شدهاند.قوانین اولویت:
- الگوهای نام فایل نسبت به الگوهای نوع فایل اولویت دارند
- الگوهای نام فایل به ترتیب از چپ به راست بر اساس حضورشان در این گزینه مطابقت داده میشوندمیتوان هر یک از {prefix} یا {suffix} یا هر دو را حذف کرد (که حالت پیشفرض برای تمام انواع فایل نامشخص است)، این به معنای {prefix} و/یا {suffix} خالی است. {prefix} و {suffix} باید حداکثر از هشت نویسه تشکیل شده باشند. عناصر با کاما از یکدیگر جدا میشوند. نه پیشوندها و نه پسوندها جزئی از نام فایل نیستند، بنابراین به هیچ وجه بر دستوراتی که روی نام فایلها عمل میکنند تأثیر نمیگذارند. نویسه کاما (',') را میتوان با دو بار نوشتن آن درج کرد. فهرستی از نامهای انواع فایل را میتوان در توضیحات تابع filetype() یافت.
- 'confirm' 'cf'
- نوع: set
پیشفرض: delete,permdelete
تعیین میکند کدام عملیاتها به تأیید نیاز دارند:
- delete - انتقال فایلها به سطل زباله (با d یا :delete)؛
- permdelete - حذف دائمی فایلها (با دستور D یا :delete! یا در عملیات undo/redo). - 'cpoptions' 'cpo'
- نوع: charset
پیشفرض: "fst"
شامل توالیای از پرچمهای تکنویسهای است. هر پرچم رفتار نسخههای قدیمیتر vifm را فعال میکند. پرچمها:
- f - در صورت وجود، اجرای دستور :filter منجر به فیلتر غیرمعکوس (فایلهای منطبق فیلتر و حذف میشوند) و :filter! منجر به فیلتر معکوس (فایلهای منطبق باقی میمانند) میشود؛ در صورت عدم وجود، معنای علامت تعجب برعکس میشود؛
- s - در صورت وجود، دستورهای حالت عادی yy، Y، dd و DD در صورت وجود انتخاب، روی موارد انتخابشده عمل میکنند، در غیر این صورت روی فایل جاری اعمال میشوند؛ در صورت عدم وجود، این دستورها همیشه روی فایل جاری عمل میکنند؛
- t - در صورت وجود، <tab> (و در نتیجه <c-i>) مانند <space> عمل کرده و قاب فعال را جابهجا میکند، در غیر این صورت <tab> و <c-i> در تاریخچه نما به جلو میروند. میتوان با تنظیم ترمینال برای ارسال یک توالی سفارشی هنگام فشردن <c-i>، کاری کرد که هر دو کلید <tab> و <c-i> طبق انتظار کار کنند؛ برای جزئیات به :histnext مراجعه کنید. - 'cvoptions'
- نوع: set
پیشفرض:
مشخص میکند که آیا ورود به/خروج از نماهای سفارشی، رویدادهایی را که معمولاً هنگام ورود به/خروج از دایرکتوریها رخ میدهند تحریک کند یا خیر:
- autocmds - تحریک دستورهای خودکار (autocommands) هنگام ورود به/خروج از نماهای سفارشی؛
- localopts - بازنشانی گزینههای محلی هنگام ورود به/خروج از نماهای سفارشی؛
- localfilter - بازنشانی فیلتر محلی هنگام ورود به/خروج از نماهای سفارشی. - 'deleteprg'
- نوع: string
پیشفرض: ""
برنامهای را مشخص میکند که برای فایلهای در حال حذف دائمی اجرا شود. در صورت خالی بودن، فایلها طبق معمول حذف میشوند، در غیر این صورت این دستور با الحاق نام هر فایل، برای آن فراخوانی میشود. اگر دستور فایلها را حذف نکند، آنها روی سیستم فایل باقی خواهند ماند. - 'dirsize'
- نوع: enumeration
پیشفرض: size
نحوه نمایش اندازه دایرکتوریها را در نماهای فایل کنترل میکند. مقادیر زیر ممکن هستند:
- size - اندازه دایرکتوری (یعنی اندازه استفادهشده برای ذخیره فهرست فایلها)
- nitems - تعداد ورودیهای موجود در دایرکتوری (به استثنای . و ..)اندازه بهدستآمده از طریق ga/gA این تنظیم را بازنویسی میکند، بنابراین مشاهده تعداد فایلها و گهگاه اندازه دایرکتوریها امکانپذیر است.
- 'dotdirs'
- نوع: set
پیشفرض: nonrootparent,treeleafsparent
نمایش دایرکتوریهای نقطهدار را کنترل میکند. مقادیر زیر ممکن هستند:
- rootparent - نمایش "../" در دایرکتوری ریشه سیستم فایل
- nonrootparent - نمایش "../" در دایرکتوریهای غیرریشه سیستم فایل
- treeleafsparent - نمایش "../" در دایرکتوریهای خالی نمای درختیتوجه داشته باشید که دایرکتوریهای خالی بدون توجه به مقدار این گزینه همیشه حاوی ورودی "../" هستند. "../" به محض ایجاد حداقل یک فایل ناپدید میشود.
- 'dotfiles'
- نوع: boolean
پیشفرض: false
اینکه آیا فایلهای نقطهدار در نما نشان داده شوند یا خیر. میتواند با کلیدهای میانبر *z کنترل شود. - 'fastrun'
- نوع: boolean
پیشفرض: false
با فعال بودن این گزینه، میتوانید دستورهای نیمهکاره وارد شده را که شروع بدون ابهامی دارند با استفاده از :! اجرا کنید (مثلاً :!Te به جای :!Terminal یا :!Te<tab>). - 'fillchars' 'fcs'
- نوع: string list
پیشفرض: ""
نویسههای مورد استفاده برای پر کردن حاشیهها را تنظیم میکند.
item default used for
hborder:c '' حاشیه افقی میانی
millersep:c '' جداکننده ستونهای miller
vborder:c ' ' حاشیههای عمودی چپ، میانی و راستیک رشته خالی برای millersep یا vborder معادل یک فاصله (space) است.
یک رشته خالی برای hborder حاشیه افقی را حذف میکند.
مثال:
set fillchars=vborder:".",hborder:"",millersep:"|"
- 'findprg'
- نوع: string
پیشفرض: "find %s %a"
قالب یک دستور خارجی را برای فراخوانی توسط دستور :find تعیین میکند. این قالب از بسط ماکروهای مختص این گزینه و توالی %% برای درج نویسه درصد به صورت تحتاللفظی پشتیبانی میکند. ماکروها عبارتند از:
macro value/meaning
%s آرگومانهای لفظی :find یا
فهرستی از مسیرها برای جستجو در آنها
%A خالی یا
آرگومانهای لفظی :find
%a خالی یا
آرگومانهای لفظی :find یا
محمول (predicate) به همراه آرگومانهای گریز دادهشده :find
%p خالی یا
آرگومانهای لفظی :find یا
آرگومانهای (پارامترهای) گریز دادهشده :find
%u تغییر مسیر خروجی به نمای سفارشی به جای نمایش منو
%U تغییر مسیر خروجی به نمای سفارشی مرتبنشده به جای نمایش منومحمول (Predicate) در %a در سیستمهای nix* برابر با "-name" و در Windows برابر با "-iname" است.
اگر هر دو %u و %U مشخص شده باشند، %U انتخاب میشود.
برخی ماکروها میتوانند به طور ضمنی اضافه شوند:
- اگر %s وجود نداشته باشد، به انتها الحاق میشود
- اگر هیچیک از %a، %A و %p وجود نداشته باشند، %a الحاق میشود
- اگر هیچیک از %s، %a، %A و %p وجود نداشته باشند، %s و %a به همین ترتیب به انتها الحاق میشوندماکروها بسته به قالب آرگومانهای :find معنای خود را کمی تغییر میدهند:
- اگر اولین آرگومان به یک دایرکتوری موجود اشاره کند، تمام آرگومانها به %s اختصاص مییابد در حالی که %a، %A و %p خالی میمانند
- در غیر این صورت:
- به %s یک نقطه (".") به معنای دایرکتوری جاری یا فهرستی از نامهای فایلهای انتخابشده (در صورت وجود) اختصاص مییابد
- به %a، %A و %p در صورتی که اولین آرگومان با خط تیره ("-") شروع شود، آرگومانهای لفظی اختصاص مییابد، در غیر این صورت %a یک نسخه گریز دادهشده از آرگومانها را به همراه یک محمول دریافت میکند و %p حاوی نسخه گریز دادهشده آرگومانها خواهد بوداز Windows Server 2003 به بعد دستور `where` در دسترس است. میتوان vifm را به روش زیر برای استفاده از آن پیکربندی کرد:
set findprg="where /R %s %A"
از آنجا که نحو این دستور نسبتاً محدود است، نمیتوان از دستور :find با انتخاب بیش از یک مورد استفاده کرد زیرا این دستور تمام مسیرهای دایرکتوری به جز آخرین مورد را نادیده میگیرد.هنگام استفاده از پورت find در Windows، گزینه دیگر این است که 'findprg' را به این شکل تنظیم کنید:
set findprg="find %s %a" 'followlinks' نوع: بولی پیشفرض: true دنبال کردن پیوندها با زدن l یا Enter. بدین معنا که به جای رفتار با پیوند به گونهای که گویی فایل مقصد است، به فایل مقصد هدایت میشود. این گزینه روی پیوندهای مربوط به دایرکتوریها تأثیری ندارد، چرا که همیشه وارد آنها میشود (از کلید gf برای دایرکتوریها استفاده کنید).
- 'fusehome'
-
نوع: رشته پیشفرض: "($XDG_DATA_HOME/vifm | $VIFM)/fuse/" دایرکتوریای که به عنوان دایرکتوری ریشه برای سوار کردنهای FUSE استفاده میشود. مقدار این گزینه میتواند شامل متغیرهای محیطی (به شکل "$envname") باشد که بسط داده خواهند شد (برای جلوگیری از بسط، یک اسلش در ابتدای آن قرار دهید). مقدار نهایی باید به یک مسیر مطلق بسط یابد. اگر این گزینه را تغییر دهید، vifm هیچ چیزی را مجدداً سوار نخواهد کرد. این تغییر تنها بر سوار کردنهای بعدی تأثیر میگذارد. برای اطلاعات بیشتر بخش «سوار کردنهای خودکار FUSE» را در زیر ببینید.
- 'gdefault' 'gd'
-
نوع: بولی پیشفرض: false هنگامی که فعال باشد، پرچم 'g' به طور پیشفرض برای دستور :substitute فعال است.
- 'grepprg'
-
نوع: رشته پیشفرض: "grep -n -H -I -r %i %a %s" قالب یک دستور خارجی را مشخص میکند که توسط دستور :grep فراخوانی میشود. این قالب از بسط ماکروهای مختص به یک گزینهٔ خاص *prg، و توالی %% برای درج نماد درصد به صورت لفظی پشتیبانی میکند. این گزینه باید شامل ماکروی %i برای تعیین محل قرارگیری رشتهٔ "-v" هنگام درخواست معکوس کردن نتایج، ماکروی %a یا %A برای تعیین محل قرارگیری آرگومانهای ارسالی به دستور :grep، و ماکروی %s برای تعیین محل فهرست فایلها جهت جستجو باشد. اگر برخی از این ماکروها استفاده نشوند، پس از یک فاصله به ترتیب زیر به صورت ضمنی به مقدار گزینهٔ 'grepprg' اضافه خواهند شد: %i، %a، %s. توجه داشته باشید در صورتی که نه %a و نه %A مشخص نشده باشند، ماکروی %a به صورت ضمنی اضافه میشود. ماکروی اختیاری %u یا %U میتواند به ترتیب برای وادار کردن بازهدایت به نمای سفارشی یا نمای سفارشی مرتبنشده استفاده شود (در صورت مشخص شدن هر دو، %U انتخاب میشود). برای شرح تفاوت بین %a و %A به گزینهٔ 'findprg' مراجعه کنید. مثالی از پیکربندی برای استفاده از ack (<http://beyondgrep.com>) به جای grep: set grepprg='ack -H -r %i %a %s'
یا The Silver Searcher (https://github.com/ggreer/the_silver_searcher):set grepprg='ag --line-numbers %i %a %s'
- 'histcursor'
- نوع: مجموعه
پیشفرض: startup,dirmark,direnter
موقعیتهایی را مشخص میکند که مکاننما باید بر اساس تاریخچهٔ دایرکتوری جابهجا شود:
- startup - هنگام بارگذاری فهرستهای فایل در حین راهاندازی
- dirmark - پس از رفتن به نشانهای که فایلی را مشخص نمیکند
- direnter - هنگام باز کردن دایرکتوری از روی یک فهرست فایلاین گزینه در صورت غیرفعال بودن 'autochpos' هیچ اثری ندارد.
توجه داشته باشید که این فهرست جامع نیست و موقعیتهای دیگری نیز وجود دارند که در آنها مکاننما به طور خودکار تعیین موقعیت میشود.
- 'history' 'hi'
- نوع: عدد
صحیح
پیشفرض: 15
حداکثر تعداد موارد ذخیرهشده در تمام تاریخچهها. - vifm-'hloptions'
- نوع: فهرست
رشته
پیشفرض: "filehi:onerow"
رفتار برجستهسازی را پیکربندی میکند.
item default
filehi:str onerowمورد "filehi" مشخص میکند که کدام ستونهای نما با توجه به نوع فایل و نام آن رنگآمیزی شوند:
- path - برجستهسازی ستونهایی که مسیر فایل، نام، ریشه یا پسوند را نمایش میدهند
- onerow - مشابه "path" و همچنین برجستهسازی تمام ستونهای سطر جاری
- allrows - برجستهسازی تمام ستونهای هر سطر - 'hlsearch' 'hls'
- نوع: بولی
پیشفرض: true
انتخاب خودکار فایلهایی که با جستجو مطابقت دارند. - 'iec'
- نوع: بولی
پیشفرض: false
استفاده از پسوندهای KiB، MiB، ... به جای K، M، ... هنگام نمایش اندازه در قالبی خوانا برای انسان. - 'ignorecase' 'ic'
- نوع: بولی
پیشفرض: false
نادیده گرفتن بزرگی و کوچکی حروف در الگوهای جستجو (دستورهای :substitute، / و ?)، فیلتر محلی (نه سایر فیلترها) و موارد دیگری که در شرح 'caseoptions' به تفصیل آمده است. - 'incsearch' 'is'
- نوع: بولی
پیشفرض: false
هنگامی که این گزینه تنظیم شده باشد، با هر بار تغییر الگوی جستجو، جستجو و بهروزرسانی نما برای فیلتر محلی با شروع از موقعیت اولیهٔ مکاننما انجام میشود. - 'iooptions'
- نوع: مجموعه
پیشفرض: datasync
جزئیات عملیات فایل را کنترل میکند. مقادیر زیر در دسترس هستند:
- datasync - همگامسازی دورهای عملیات نوشتن هنگام کپی کردن فایلها در صورتی که 'syscalls' تنظیم شده باشد. (این امر باعث میشود کپی کردن تا زمان نوشتن واقعی دادهها روی رسانه به طول انجامد، که کندتر از حد انتظار خواهد بود؛ با این حال، از قفل شدن سیستم به دلیل پر شدن حافظه با حافظهٔ موقت سیستمفایل جلوگیری میکند.)
- fastfilecloning - انجام کلونسازی سریع فایل (copy-on-write)، در صورت در دسترس بودن (در لینوکس و سیستمفایل btrfs در دسترس است). - 'laststatus' 'ls'
- نوع: بولی
پیشفرض: true
نمایان بودن نوار وضعیت را کنترل میکند. - 'lines'
- نوع: عدد
صحیح
پیشفرض: ارتفاع ترمینال هنگام راهاندازی
ارتفاع ترمینال بر حسب تعداد خطوط. - 'locateprg'
- نوع: رشته
پیشفرض: "locate %a"
قالب یک دستور خارجی را مشخص میکند که توسط دستور :locate فراخوانی میشود. این قالب از بسط ماکروهای مختص به یک گزینهٔ خاص *prg، و توالی %% برای درج نماد درصد به صورت لفظی پشتیبانی میکند. این گزینه باید شامل ماکروی %a برای تعیین محل قرارگیری آرگومانهای ارسالی به دستور :locate باشد. اگر این ماکرو استفاده نشود، پس از یک فاصله به صورت ضمنی به مقدار این گزینه اضافه خواهد شد.ماکروی اختیاری %u یا %U میتواند به ترتیب برای وادار کردن بازهدایت به نمای سفارشی یا نمای سفارشی مرتبنشده استفاده شود (در صورت مشخص شدن هر دو، %U انتخاب میشود).
- 'mediaprg'
- نوع: رشته
پیشفرض: مسیر اسکریپت همراه برنامه که از udevil، udisks و udisks2 پشتیبانی میکند
(استفاده از udisks2 نیازمند python با ماژول dbus نصبشده است)
در OS X: مسیر به یک اسکریپت python اشاره دارد که از diskutil استفاده میکند
{تنها برای nix*}
دستوری را که باید برای مدیریت دستگاههای رسانهای استفاده شود مشخص میکند. توسط دستور :media استفاده میشود.پارامترهای زیر را میتوان به این دستور ارسال کرد:
- list -- فهرست کردن رسانهها
- mount {device} -- سوار کردن یک دستگاه
- unmount {path} -- پیاده کردن نقطهٔ سوار شدن دادهشدهخروجی زیردستور `list` در جستجوی خطوطی که با یکی از پیشوندهای زیر آغاز میشوند تجزیه میشود:
- device= - مسیر دستگاه را مشخص میکند (مثلاً "/dev/sde")
- label= - برچسب اختیاری دستگاه را مشخص میکند (مثلاً "Memory card")
- info= - متن دلخواهی را برای نمایش در کنار دستگاه مشخص میکند (به
طور پیشفرض در صورت ارائهٔ برچسب، از "[label]" استفاده میشود)
- mount-point= - نقطهٔ سوار شدن را مشخص میکند (میتواند وجود نداشته باشد یا
بیش از یک بار ظاهر شود)تمام خطوط دیگر نادیده گرفته میشوند. هر `device=` بخش جدیدی را برای توصیف یک دستگاه آغاز میکند که باید شامل دو پیشوند احتمالی دیگر باشد.
فرض بر این است که زیردستور `list` همیشه با موفقیت انجام میشود، در حالی که کد خروج `mount` و `unmount` برای تعیین اینکه آیا عملیات با موفقیت انجام شده است یا خیر در نظر گرفته میشود..TP 'lsoptions' نوع: فهرست رشته
پیشفرض: ""
دامنه: محلینمای مشابه ls را پیکربندی میکند.
مورد کاربرد
columncount تعداد ستونهای ثابت برای نمایش یا 0
transposed پر کردن شبکهٔ نما بر پایهٔ ستونها به جای سطرها - 'lsview'
- نوع: بولی
پیشفرض: false
دامنه: محلی
هنگامی که این گزینه تنظیم شود، نمای دایرکتوری در چندین ستون با نامهای فایلی مشابه با خروجی دستور `ls -x` نمایش داده خواهد شد. برای مشاهدهٔ شرح قالب، بخش «ls-like view» در زیر را ببینید. این گزینه در صورت فعال بودن 'millerview' هیچ اثری ندارد. - 'milleroptions'
- نوع: فهرست
رشته
پیشفرض: "lsize:1,csize:1,rsize:1,rpreview:dirs"
دامنه: محلینمای miller را پیکربندی میکند.
مورد پیشفرض کاربرد
lsize:num 0 ستون چپ
csize:num 1 ستون میانی (غیرفعال نمیشود)
rsize:num 0 ستون راست
rpreview:str dirs ستون راست*size نسبت ستونها را مشخص میکند. هر نسبت در بازهٔ بین 0 تا 100 است و مقادیر برای تطابق با این حدود تنظیم میشوند. مقدار صفر ستون را غیرفعال میکند، اما ستون مرکزی (اصلی) قابل غیرفعال شدن نیست.
rpreview مشخص میکند چه اشیایی از فایلسیستم باید در ستون سمت راست پیشنمایش شوند و سه مقدار میپذیرد: dirs (فقط دایرکتوریها)، files (فقط فایلها) یا all. هیچکدام از مقادیر، پیشنمایش دایرکتوری والد ("..") را فعال نمیکند.
نمونهای از حالت دو ستونی که در ترکیب با دستور :view کاربردی است:
set milleroptions=lsize:1,csize:2
- 'millerview'
- نوع: بولی
پیشفرض: false
دامنه: محلی
هنگامی که این گزینه تنظیم شود، نمای دایرکتوری در چندین ستون آبشاری نمایش داده خواهد شد. 'lsview' را نادیده میگیرد. - 'mintimeoutlen'
- نوع: عدد
صحیح
پیشفرض: 150
کسری از 'timeoutlen' به میلیثانیه که میان بررسیهای متوالی ورودی در انتظار سپری میشود، که بر عملیاتهای ناهمگام گوناگون اثر میگذارد (تشخیص تغییرات اعمالشده توسط برنامههای خارجی، پایش کارهای پسزمینه، بازطراحی رابط کاربری). هیچ تضمین قطعی وجود ندارد، با این حال هرچه این مقدار بیشتر باشد، بار پردازنده (CPU) در حالت بیکار کمتر خواهد بود. - 'mouse'
- نوع: مجموعه
نویسه
پیشفرض: ""شامل توالیای از پرچمهای تکنویسهای است:
- a - تمام حالتهای پشتیبانیشده (کوتاهنوشتی برای بقیه و موارد اضافهشونده در آینده)
- c - حالت خط فرمان (شامل حالت پیمایش)
- m - حالت منو
- n - حالت عادی (normal)
- q - حالت نما (view)
- v - حالت دیداری (visual) - 'navoptions'
- نوع: فهرست
رشته
پیشفرض: "open:dirs"رفتار حالت پیمایش را پیکربندی میکند.
مورد پیشفرض
open:str dirsمورد "open" مشخص میکند چه اشیایی از فایلسیستم باید با فشردن Enter باز شوند و میتواند دو مقدار بپذیرد: dirs (فقط دایرکتوریها) یا all.
- 'number' 'nu'
- نوع: بولی
پیشفرض: false
دامنه: محلی
هنگامی که گزینهٔ 'lsview' خاموش باشد، شمارهٔ خط را در جلوی هر نام فایل چاپ میکند. از 'numberwidth' برای کنترل پهنای شمارهٔ خط استفاده کنید. همچنین 'relativenumber' را ببینید. - 'numberwidth' 'nuw'
- نوع: عدد
صحیح
پیشفرض: 4
دامنه: محلی
حداقل تعداد نویسهها برای فیلد شمارهٔ خط. - 'previewoptions'
- نوع: فهرست
رشته
پیشفرض: "graphicsdelay:50000"نحوهٔ انجام پیشنمایش را تنظیم میکند (در quick view، ستون miller view و حالت view).
مورد پیشفرض معنی
graphicsdelay:num 0 تأخیر پیش از رسم گرافیک (میکروثانیه)
hardgraphicsclear تنظیمنشده بازطراحی صفحه برای حذف گرافیک
maxtreedepth:num 0 حداکثر تعداد سطوح در درخت پیشنمایش
toptreestats تنظیمنشده نمایش تعداد فایلها پیش از درختدر صورتی که ترمینال پیش از رسم گرافیک نیازمند مهلت زمانی مشخصی باشد، graphicsdelay لازم است (در غیر این صورت گرافیک رسم نمیشود).
به نظر میرسد hardgraphicsclear برای خلاص شدن از گرافیک sixel در برخی پایانهها ضروری باشد، جایی که در غیر این صورت روی صفحه باقی میماند. این میتواند به دلیل پاکسازی و به دنبال آن بازطراحی مجدد، موجب چشمک زدن صفحه شود.
مقدار 0 برای maxtreedepth به معنای «نامحدود» است، 1 فقط دایرکتوری انتخابشده را نشان میدهد، 2 فرزندان آن را اضافه میکند و به همین ترتیب.
هنگامی که موردی در گزینه مشخص نشده باشد، از مقدار پیشفرض استفاده میشود.
- 'previewprg'
- نوع: رشته
پیشفرض: ""
دامنه: محلیدستور خارجی برای استفاده بهجای برنامههای پیشنمایشی که از طریق دستور :fileviewer پیکربندی شدهاند.
مثال:
" always show git log in preview of files inside some repository au DirEnter '~/git-repo/**/*' setl previewprg='git log --color -- %c 2>&1'
- 'quickview'
- نوع: بولی
پیشفرض: false
اینکه نمای سریع (:view) در حال حاضر فعال است یا خیر. - 'relativenumber' 'rnu'
- نوع: بولی
پیشفرض: false
دامنه: محلی
هنگامی که گزینهٔ 'lsview' خاموش باشد، شمارهٔ خط نسبی را در جلوی هر نام فایل چاپ میکند. از 'numberwidth' برای کنترل پهنای شمارهٔ خط استفاده کنید. ترکیبهای گوناگون 'number' و 'relativenumber' به چنین نتایجی میانجامند:
nonumber number
norelativenumber | first | 1 first
| second | 2 second
| third | 3 third
relativenumber | 1 first | 1 first
| 0 second |2 second
| 1 third | 1 third.TP 'rulerformat' 'ruf' نوع: رشته
پیشفرض: "%l/%S "
محتوای خطکش (ruler) را تعیین میکند. کمینه عرض آن ۱۳ نویسه است و راستچین میشود. ماکروهای زیر پشتیبانی میشوند:
%= - نقطه جداسازی بین نیمههای چپچین و راستچین خط
%l - شماره فایل
%L - تعداد کل فایلها در نما (شامل موارد فیلترشده)
%x - تعداد فایلهای حذفشده توسط فیلترها
%0- - نام قدیمی برای ماکروی %x
%P - درصد پیمایش در فهرست فایل (All، Top، xx% یا Bot)، همواره به طول ۳
%S - تعداد فایلهای نمایشدادهشده
%= - نقطه جداسازی بین موارد چپچین و راستچین
%% - نویسه درصد لفظی
%[ - مشخصکننده آغاز یک بلوک اختیاری
%] - مشخصکننده پایان یک بلوک اختیاریپس از علامت درصد میتواند کمینه عرض فیلد به صورت اختیاری بیاید. اگر میخواهید فیلد راستچین شود، قبل از کمینه عرض فیلد یک '-' اضافه کنید.
بلوکهای اختیاری نادیده گرفته میشوند مگر اینکه دستکم یکی از ماکروهای درون آنها به مقداری غیرخالی بسط یابد.
مثال:
set rulerformat='%2l-%S%[ +%x%]'
- 'runexec'
- نوع: بولی
پیشفرض: false
اجرای فایل اجرایی با فشردن کلید Enter، l یا کلید پیکان راست (Right Arrow). رفتار دو کلید آخر به مقدار گزینه 'lsview' بستگی دارد. - 'scrollbind' 'scb'
- نوع: بولی
پیشفرض: false
هنگامی که این گزینه تنظیم شود، vifm تلاش میکند اختلاف موقعیتهای پیمایش دو پنجره را ثابت نگه دارد. - 'scrolloff' 'so'
- نوع: عدد
صحیح
پیشفرض: 0
کمینه تعداد خطوط صفحه نمایش برای نگهداشتن در بالا و پایین مکاننما. اگر میخواهید خط مکاننما همیشه در وسط نما قرار گیرد (به جز در ابتدا یا انتهای فهرست فایلها)، این گزینه را روی مقدار بزرگی (مانند 999) تنظیم کنید. - 'sessionoptions' 'ssop'
- sessionoptions ssop
نوع: مجموعه
پیشفرض: tui,state,tabs,savedirs,dhistory
معادلی برای 'vifminfo' در نشستها (sessions) است و از همان مقادیر استفاده میکند. هنگامی که هر دو گزینه شامل مقدار یکسانی باشند، دادههای فایل نشست اولویت بالاتری دارند (دادههای vifminfo لزوماً بهطور کامل نادیده گرفته نمیشوند، بلکه همانطور که وضعیت نمونههای چندگانه هنگام خروج ادغام میشود، با وضعیت نشست ادغام میگردند). - 'shell' 'sh'
- نوع: رشته
پیشفرض: $SHELL یا "/bin/sh" یا "cmd" (در MS-Windows)
مسیر کامل به پوستهای که برای اجرای دستورهای خارجی استفاده میشود. در *nix میتوان یک آرگومان پوسته را نیز تعیین کرد. - 'shellcmdflag' 'shcf'
- نوع: رشته
پیشفرض: "-c" یا "/C" (برای cmd.exe در MS-Windows)
گزینه خط فرمانی که برای ارسال دستور به 'shell' استفاده میشود. این گزینه در زمینههایی کاربرد دارد که دستور از سوی کاربر میآید.توجه داشته باشید که استفاده از این گزینه برای تحمیل حالت تعاملی پوسته به احتمال زیاد یک ایده بسیار بد (BAD IDEA) است. بهطور کلی، میزبان تعاملی و پوسته فرزند تعاملی نمیتوانند یک نشست ترمینال مشترک داشته باشند. شما حتی نمیتوانید چنین پوستهای را در پسزمینه اجرا کنید. نوشتن یک پوشش (wrapper) را برای پوسته خود مد نظر قرار دهید که نامهای مستعار (aliases) و دستورها را بدون تعاملی کردن پوسته و در نهایت استفاده از آن به شیوهای نامتعارف، از پیش بارگذاری کند.
توجه داشته باشید که در صورت تنظیم 'shell' روی PowerShell، این گزینه به دلیل استفاده داخلی از `-encodedCommand` نادیده گرفته میشود.
- 'shortmess' 'shm'
- نوع: charset
پیشفرض: "p"
شامل توالیای از پرچمهای تکنویسهای است. هر پرچم کوتاهسازی برخی پیامهای نمایشیافته توسط vifm را در رابط کاربری متنی (TUI) فعال میکند. پرچمها:
- L - نمایش تنها آخرین دایرکتوری در خط برگه به جای مسیر کامل.
- M - کوتاهسازی عنوانها در پنجرههای تسهیمکنندههای ترمینال ایجادشده توسط vifm تا نام فایل به جای استفاده از مسیر کامل.
- T - قطع پیامهای نوار وضعیت از وسط در صورتی که برای جا شدن در خط فرمان بیش از حد طولانی باشند. "..." در وسط ظاهر خواهد شد.
- p - استفاده از کوتاهسازی با تیلدا در عنوانهای نما. - 'showtabline' 'stal'
- نوع: شمارشی
پیشفرض: multiple
مشخص میکند چه زمانی خط برگه باید نمایش داده شود. مقادیر ممکن:
- never - هرگز خط برگه را نمایش نده
- multiple - نمایش خط برگه تنها زمانی که دستکم دو برگه وجود دارد
- always - نمایش همیشگی خط برگههمچنین مقادیر 0، 1 و 2 به سبک Vim نیز پذیرفته میشوند و به ترتیب متناظر با "never"، "multiple" و "always" هستند.
- 'sizefmt'
- نوع: فهرست
رشته
پیشفرض: "units:iec"
نحوه قالببندی اندازه به شیوه کاربرپسند را پیکربندی میکند.
مورد مقدار معنی
units: iec استفاده از واحدهای ۱۰۲۴ بایتی (K یا KiB، وغیره).
گزینه 'iec' را ببینید.
si استفاده از واحدهای ۱۰۰۰ بایتی (KB، وغیره).
precision: i > 0 تعداد ارقام اعشاری مد نظر.
{تنظیمنشده} دقت ۱ برای بخش صحیح کمتر از ۱۰،
در غیر این صورت ۰ (ارائهدهنده رفتار قدیمی).
space {موجود} درج فاصله پیش از نماد واحدها.
این حالت پیشفرض است.
nospace {موجود} عدم درج فاصله پیش از نماد واحدها.اعداد به سمت دور از صفر گرد میشوند. صفرهای پایانی حذف میشوند.
مثال:
set sizefmt=units:iec,precision:2,nospace
- 'slowfs'
- نوع: فهرست
رشته
پیشفرض: ""
تنها برای *nix
فهرستی از ابتدای نام سیستمهای فایل سوارشده (ستون اول در /etc/mtab یا /proc/mounts) یا پیشوندهای مسیر برای سیستمهای فایل/دایرکتوریهایی که برای شما بیش از حد کُند کار میکنند. این گزینه میتواند برای بازداشتن vifm از ارسال برخی درخواستها به انواع خاصی از سیستمهای فایل که میتوانند مرور فایل را کُند کنند، استفاده شود. در حال حاضر این به معنای عدم بررسی تغییر دایرکتوری، صرفنظر از بررسی وجود مقصد پیوندهای نمادین، و فرض دایرکتوری بودن مقصد پیوند واقع بر روی سیستمفایل کُند است (امکان ورود به دایرکتوریها و رفتن به فایلها از طریق gf را فراهم میکند). اگر گزینه را روی "*" تنظیم کنید، به این معنی است که همه سیستمها کُند در نظر گرفته میشوند (مفید برای cygwin، جایی که در صورت وجود اتصالات شبکهای ممکن است همه این بررسیها vifm را بسیار کند کنند).مثال برای ریشه autofs در /mnt/autofs:
set slowfs+=/mnt/autofs
- 'smartcase' 'scs'
- نوع: بولی
پیشفرض: false
اگر یک الگو دستکم دارای یک نویسه بزرگ باشد، گزینه ignorecase را نادیده میگیرد (لغو میکند). تنها زمانی استفاده میشود که گزینه 'ignorecase' فعال باشد. - 'sort'
- نوع: فهرست
رشته
پیشفرض: +name در *nix و +iname در Windows
محدوده: محلی
فهرست کلیدهای مرتبسازی را تنظیم میکند (مورد نخست کلید اصلی، مورد دوم کلید ثانویه، و غیره است):
[+-]ext - پسوند فایلها و دایرکتوریها
[+-]fileext - پسوند فایلها فقط
[+-]name - نام (شامل پسوند)
[+-]iname - نام (شامل پسوند، با نادیدهگرفتن بزرگی و کوچکی حروف)
[+-]type - نوع فایل (dir/reg/exe/link/char/block/sock/fifo)
[+-]dir - گروهبندی دایرکتوری (دایرکتوری < فایل)
[+-]gid - شناسه گروه (فقط *nix)
[+-]gname - نام گروه (فقط *nix)
[+-]mode - نوع فایل مشتقشده از mode آن (فقط *nix)
[+-]perms - رشته مجوزها (فقط *nix)
[+-]uid - شناسه مالک (فقط *nix)
[+-]uname - نام مالک (فقط *nix)
[+-]nlinks - تعداد پیوندهای سخت (فقط *nix)
[+-]inode - شماره inode (فقط *nix)
[+-]size - اندازه
[+-]nitems - تعداد موارد در یک دایرکتوری (صفر برای فایلها)
[+-]groups - گروههای استخراجشده با عبارات باقاعده از 'sortgroups'
[+-]target - مقصد پیوند نمادین (برای سایر انواع فایل خالی است)
[+-]atime - زمان دسترسی (مانند خواندن، اجرا)
[+-]ctime - زمان تغییر (تغییر در فراداده، مانند mode)
[+-]mtime - زمان ویرایش (هنگامی که محتوای فایل تغییر میکند)نکته: برای اطلاعات بیشتر درباره کلیدهای زمانی، st_atime، st_ctime و st_mtime را در "man 2 stat" ببینید.
'+' به معنی مرتبسازی صعودی برای این کلید است، و '-' به معنی مرتبسازی نزولی است.
کلید "dir" در این رابطه تا حدی مشابه است اما به طور ضمنی افزوده میشود: هنگامی که "dir" مشخص نشده باشد، مرتبسازی به گونهای عمل میکند که گویی نخستین کلید در فهرست بوده است. به همین دلیل اگر کسی بخواهد الگوریتم مرتبسازی، دایرکتوریها و فایلها را با هم بیامیزد، "dir" باید به گزینه مرتبسازی الحاق شود، برای نمونه به این شکل:
set sort+=dir
یاset sort=-size,dir
مقدار این گزینه بررسی میشود تا شامل کلید dir و کلید مرتبسازی پیشفرض (name در *nix، و iname در Windows) باشد. در صورتی که یکی از آنها وجود نداشته باشد، چنین رخ میدهد:
- -
- کلید default در انتها افزوده میشود؛
این گزینه همچنین ستونهای نما را مطابق با کلید مرتبسازی اصلیِ تعیینشده تغییر میدهد، مگر اینکه گزینهٔ 'viewcolumns' خالی نباشد.
- 'sortnumbers'
- نوع: boolean
پیشفرض: false
دامنه: local
مرتبسازی طبیعی اعداد (شماره نسخهها) در داخل متن. - 'sortgroups'
- نوع: string
پیشفرض: ""
دامنه: local
فهرستی از عبارتهای باقاعدهٔ جداشده با ویرگول را برای مرتبسازی نوع گروهی تعیین میکند. برای درج عینی ویرگول، آن را دو بار بنویسید.این عبارتهای باقاعده برای استخراج زیررشتههایی از نام فایلها استفاده میشوند تا به عنوان کلید مرتبسازی عمل کنند. این در اصل روشی برای نادیده گرفتن بخشهای غیرمهم نام فایلها هنگام مرتبسازی بر اساس نام است.
هر عبارت باید حداقل شامل یک گروه باشد، در غیر این صورت مقدار آن همیشه خالی در نظر گرفته میشود. همچنین، تنها اولین تطابق عبارت باقاعده پردازش میشود.
گروه اول فهرست فایلها را به زیرگروهها تقسیم میکند، که هر یک سپس بر اساس زیررشتههای استخراجشده توسط دومین عبارت باقاعده مرتب میشوند و این روند به همین ترتیب به صورت بازگشتی ادامه مییابد.
مثال:
set sortgroups=-(todo|done).*
این پیکربندی، فایلهای دارای "-done" در نامشان و فایلهای دارای "-todo" را بهطور جداگانه گروهبندی میکند. در مرتبسازی صعودی، گروهِ شامل "-done" قبل از گروه دیگر ظاهر خواهد شد. - 'sortorder'
- نوع: enumeration
پیشفرض: ascending
ترتیب مرتبسازی را برای کلید اصلی تعیین میکند: ascending (صعودی)، descending (نزولی). - 'statusline' 'stl'
- نوع: string
پیشفرض: ""
محتوای خط وضعیت (خطی که درست بالای خط فرمان قرار دارد) را تعیین میکند. رشتهٔ خالی به معنی استفاده از قالب مشابه با نسخههای پیشین است. ماکروهای زیر پشتیبانی میشوند:
- %N - شکست خط (ارتفاع خط وضعیت را متناسب با آن افزایش میدهد)، بلوکهای %[ %] را نادیده میگیرد
- %t - نام فایل (با در نظر گرفتن مقدار گزینهٔ 'classify')
- %T - مقصد پیوند نمادین (برای سایر انواع فایل خالی است)
- %f - نام فایل نسبت به دایرکتوری جاری ('classify' را در نظر میگیرد)
- %A - ویژگیهای فایل (مجوزها در *nix یا مشخصهها در Windows)
- %o - مجوزهای فایل در قالب هشتهشتی (octal) در *nix (در Windows خالی است)
- %u - نام کاربری یا uid (اگر قابل حل نباشد)
- %g - نام گروه یا gid (اگر قابل حل نباشد)
- %s - اندازهٔ فایل در قالب خوانا برای انسان
- %E - اندازهٔ فایلهای انتخابشده در قالب خوانا برای انسان؛ مشابه با %s هنگامی که هیچ فایلی انتخاب نشده باشد، به جز اینکه در حالت visual هرگز اندازهٔ ../ را نشان نخواهد داد، چرا که نمیتواند انتخاب شود
- %d - تاریخ تغییر فایل (از گزینهٔ 'timefmt' استفاده میکند)
- %D - مسیر قاب دیگر برای چیدمان تکقابی
- %a - مقدار فضای خالی در دسترس در سیستمفایل جاری
- %c - اندازهٔ سیستمفایل جاری
- %z - نکات، ترفندها و راهنماییهای کوتاهی که پس از یک بازهٔ زمانی یکدقیقهای بهصورت تصادفی انتخاب میشوند
- %{<expr>} - ارزیابی عبارت دلخواه vifm یعنی '<expr>'، مانند '&sort' یا `expand('%d')`؛ یک `}` خام را میتوان به صورت `\}` درج کرد (توجه داشته باشید که برای درج لفظی اسلش نیازی به دو بار نوشتن آن نیست)
- %* - بازنشانی یا اعمال یکی از گروههای برجستهسازی User1..User20؛ بازنشانی زمانی رخ میدهد که فیلد عرض 0 باشد یا مشخص نشده باشد، و در صورتی که فیلد عرض در بازهٔ 1 تا 20 باشد یکی از گروهها انتخاب میشود
- تمام ماکروهای 'rulerformat'
در Windows،
مشخصههای
فایل شامل
پرچمهای
زیر هستند
(حروف بزرگ
به معنی
فعال بودن
پرچم است):
A - بایگانی (archive)
H - پنهان (hidden)
I - محتوا
نمایهسازی
نشده است (content isn't
indexed)
R -
فقطخواندنی
(readonly)
S - سیستمی (system)
C - فشردهشده
(compressed)
D - دایرکتوری
(directory)
E -
رمزنگاریشده
(encrypted)
P - نقطهٔ
بازتحلیل (reparse
point، مانند
پیوند
نمادین)
Z - فایل تنک (sparse
file)
set statusline=" %t%= %A %10u:%-7g %15s %20d %{&sort} "
مثال با رنگ:
highlight User1 ctermbg=yellow highlight User2 ctermbg=blue ctermfg=white cterm=bold set statusline="%1* %-26t %2* %= %1* %A %2* %7u:%-7g %1* %-5s %2* %d "
- 'suggestoptions'
- نوع: string list
پیشفرض:
زمان، مورد و چگونگی نمایش پیشنهادات را کنترل میکند. مقادیر زیر در دسترس هستند:
- normal - در حالت normal؛
- visual - در حالت visual؛
- view - در حالت view؛
- otherpane - استفاده از قاب دیگر برای نمایش پیشنهادات، در صورت در دسترس بودن؛
- delay[:num] - نمایش پیشنهادات پس از اندکی تأخیر (جهت جلوگیری از مزاحمت اگر صرفاً قصد فشردن سریع یک میانبر چندکلیدی را دارید)، num میزان تأخیر را برحسب میلیثانیه مشخص میکند (بهطور پیشفرض 500)، حداکثر تا 'timeoutlen'؛
- keys - شامل کلیدهای میانبر (دستورها و گزینشگرها)؛
- foldsubkeys - جمعکردن چند کلید با پیشوند مشترک؛
- marks - شامل نشانهها (marks)؛
- registers[:num] - شامل ثباتها (registers)، حداکثر num فایل (بهطور پیشفرض 5). - 'syncregs'
- نوع: string
پیشفرض: ""
شناسهٔ گروهی از نمونهها (instances) را مشخص میکند که ثباتها را میان یکدیگر به اشتراک میگذارند. هنگامی که چندین نمونه از vifm این گزینه را روی مقداری یکسان تنظیم کرده باشند، در عملیاتی که از ثباتها استفاده میکنند، بهطور خودکار محتوای ثباتهای خود را همگامسازی مینمایند. - 'syscalls'
- نوع: boolean
پیشفرض: false
در صورت غیرفعال بودن، vifm برای انجام عملیاتهای سیستمفایل به برنامههای خارجی متکی خواهد بود؛ در غیر این صورت بهجای آن از فراخوانهای سیستمی (syscalls) استفاده میشود (بسیار سریعتر است و از رهگیری پیشرفت پشتیبانی میکند). این گزینه در نهایت باید حذف شود. بیشتر سیستمهای شبه*nix تحت تأثیر قرار میگیرند. - 'tablabel'
- نوع: string
پیشفرض: ""
هنگامی که خالی نباشد و 'tabline' تنظیم نشده باشد، قالب بخش اصلی برچسب یک زبانهٔ منفرد را تعیین میکند.هنگامی که خالی باشد، برچسب زبانه برای زبانههای نامگذاریشده روی نام زبانه و برای زبانههای بدون نام روی عنوان نما (معمولاً مسیر جاری) تنظیم میشود.
ماکروهای زیر میتوانند در قالب ظاهر شوند (برای اطلاع از اینکه پرچم چیست، بخش زیر را ببینید): %C - پرچم زبانهٔ کنونی
- %N - شمارهٔ زبانه
- %T - پرچم حالت درختی (tree)
- %c - توضیحات نمای سفارشی
- %n - نام زبانه
- %p - مسیر نما (تغییردهندههای نام فایل را مدیریت میکند)
- %t - عنوان نما (تحت تأثیر پرچمهای 'shortmess')
- %% - نویسهٔ درصد واقعی
- %[ - تعیینکنندهٔ شروع یک بلوک اختیاری
- %] - تعیینکنندهٔ پایان یک بلوک اختیاری
- %*, %0* - بازنشانی برجستهسازی
- %1*-%20* - اعمال یکی از گروههای برجستهسازی User1..User20
ماکروهای پرچم نوع خاصی از ماکروها هستند که همیشه به مقداری خالی گسترش مییابند و هدف از آنها استفاده درون بلوکهای اختیاری برای کنترل نمایانی آنها است.
بلوکهای اختیاری نادیده گرفته میشوند، مگر اینکه حداقل یک ماکرو در درون آنها به مقداری غیرخالی گسترش یابد یا یک ماکروی پرچمِ فعال باشد.
" %[(%n)%] -- نام اختیاری زبانه
" %[ -- توضیحات اختیاری نما
" %[%T{tree}%] -- نشانگر حالت درختی
" %[{%c}%] -- توضیحات نمای سفارشی
" @ -- صرفاً یک جداکنندهٔ اضافی پیش از مسیر
' %]
" %p:t -- بخش پایانی (tail) مکان نما
set tablabel=%[(%n)%]%[%[%T{tree}%]%[{%c}%]@%]%p:t
- 'tabline' 'tal'
- نوع: رشته (string)
پیشفرض: ""
در صورت غیرخالی بودن، قالب خط زبانهها (tab line) را تعیین میکند. توجه داشته باشید که وقتی این گزینه غیرخالی باشد، کلیکهای ماوس پردازش نخواهند شد.ماکروهای زیر میتوانند در این قالب ظاهر شوند:
- %*, %0* - بازنشانی برجستهسازی
- %1*-%20* - اعمال یکی از گروههای برجستهسازی User1..User20
- 'tabprefix'
- نوع: رشته (string)
پیشفرض: "[%N:"
پیشوند برچسب یک زبانه را تعیین میکند. قالببندی آن همانند گزینهٔ 'tablabel' انجام میشود. - 'tabscope'
- نوع: شمارشی
(enumeration)
پیشفرض: global
سبک زبانهها را انتخاب میکند، که مشخص میسازد یک زبانهٔ منفرد شامل چه چیزهایی است. مقادیر ممکن:
- global - زبانه رابط کاربری کامل شامل هر دو نما و نحوهٔ چیدمان آنها را توصیف میکند
- pane - زبانه «درون» یک قاب (pane) قرار میگیرد و آن قاب و نمای سریع (quick view) را مدیریت میکند - 'tabstop' 'ts'
- نوع: عدد
صحیح (integer)
پیشفرض: مقدار برگرفته از کتابخانهٔ curses
تعداد فاصلههایی (spaces) که یک Tab در فایل معادل آن شمرده میشود. - 'tabsuffix'
- نوع: رشته (string)
پیشفرض: "]"
پسوند برچسب یک زبانه را تعیین میکند. قالببندی آن همانند گزینهٔ 'tablabel' انجام میشود. - 'timefmt'
- نوع: رشته (string)
پیشفرض: "%m/%d %H:%M"
قالب زمان در فهرست فایلها. برای جزئیات، "man 1 date" یا "man 3 strftime" را ببینید. - 'timeoutlen' 'tm'
- نوع: عدد
صحیح (integer)
پیشفرض: 1000
مدتزمان به میلیثانیه که در صورت مبهم بودن توالی کلیدهای تایپشده، برای یک کلید نگاشتشده انتظار کشیده میشود. - 'title'
- نوع: بولی (boolean)
پیشفرض: true در صورت امکان بازیابی عنوان، در غیر این صورت false
در صورت فعال بودن، عنوان ترمینال یا پنجرهٔ مالتیپلکسر ترمینال با توجه به مکان فعلی بهروزرسانی میشود. از آنجا که همهٔ ترمینالها از تنظیم عنوان پشتیبانی نمیکنند، این گزینه تنها در صورتی کار میکند که مقدار `$TERM` با یکی از شرایط زیر مطابقت داشته باشد:
- برابر با "xterm" باشد یا با "xterm-" شروع شود
- برابر با "rxvt" باشد یا با "rxvt-" شروع شود
- برابر با "screen" باشد یا با "screen-" شروع شود
- برابر با "aterm" باشد
- برابر با "Eterm" باشد - 'trash'
- نوع: بولی (boolean)
پیشفرض: true
استفاده از دایرکتوری سطل زباله. بخش «Trash directory» در زیر را ببینید. - 'trashdir'
- نوع: رشته (string)
پیشفرض:
در *nix:
"%r/.vifm-Trash-%u,$XDG_DATA_HOME/vifm/Trash,%r/.vifm-Trash"
یا
"%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash"
در Windows:
"%r/.vifm-Trash,$XDG_DATA_HOME/vifm/Trash"
یا
"%r/.vifm-Trash,$VIFM/vifm/Trash"
فهرستی از مشخصات مسیر دایرکتوری سطل زباله که با کاما از یکدیگر جدا شدهاند. هر مورد از فهرست، یا یک مسیر مطلق به دایرکتوری سطل زباله را مشخص میکند یا در صورتی که با "%r/" شروع شود، مسیری نسبی نسبت به ریشهٔ نقطهٔ اتصال (mount point) را تعیین مینماید. مقدار این گزینه میتواند حاوی متغیرهای محیطی (به فرم "$envname") باشد که گسترش خواهند یافت (برای جلوگیری از گسترش، قبل از $ یک اسلش قرار دهید). متغیرهای محیطی هنگام تنظیم گزینه گسترش مییابند.در *nix، اگر عنصری به "%u" ختم شود، این نشانه با شناسهٔ کاربری واقعی (real user ID) جایگزین میشود و مجوزها به گونهای تنظیم میگردند که تنها مالک آن قادر به استفاده از آن باشد.
توجه داشته باشید که حتی این پیکربندی هنگام ترکیب با "%r/" کاملاً امن نیست و به طور کلی نگهداری فایلها در دایرکتوری خانگی (home) ایمنتر است، اما این امر مستلزم هزینهٔ کپی کردن فایلها بین پارتیشنها خواهد بود.هنگامی که فایل جدیدی برش داده (حذف) میشود، vifm هر یک از عناصر این گزینه را به ترتیب ظاهر شدنشان پیمایش میکند و از اولین دایرکتوری سطل زبالهای که توانست بسازد یا از قبل قابل نوشتن بود، استفاده مینماید.
مقدار پیشفرض تلاش میکند از دایرکتوری سطل زباله به ازای هر نقطهٔ اتصال استفاده کند و در صورت شکست، به دایرکتوری مشترک سطل زباله بازگردد.
در صورتی که دایرکتوری وجود نداشته باشد، برای ایجاد آن تلاش خواهد کرد. بخش «Trash directory» در زیر را ببینید.
- 'tuioptions' 'to'
- نوع:
مجموعهنویسه
(charset)
پیشفرض: "psv"
هر پرچم جنبهای از ظاهر TUI را پیکربندی میکند. پرچمها عبارتند از:
p - در صورت درج شدن:
* فهرست فایلها درون یک قاب، فاصلهگذاری اضافی به اندازهٔ یک نویسه در سمتهای چپ و راست دریافت میکند؛
* نمای سریع (quick view) و حالت نما (view mode) فاصلهگذاری به اندازهٔ یک نویسه دریافت میکنند.
s - در صورت درج شدن، حاشیههای چپ و راست (حاشیههای جانبی؛ از این رو نویسهٔ "s") نمایان خواهند بود.
u - استفاده از نویسههای یونیکد در TUI (حذف سهنقطه به شکل نویسهٔ یونیکد به جای "...").
v - تغییر پهنای حاشیهٔ میانی عمودی برای هماندازه کردن ابعاد نماها.عنوان هر قاب شامل مسیر دایرکتوری فهرستشده است. اگر بیش از حد طولانی باشد، مسیر برای قاب فعال از سمت چپ و برای قاب دیگر از سمت راست کوتاه (truncate) میشود. این رفتار را میتوان با موارد زیر تغییر داد:
l - کوتاه کردن همیشه از سمت چپ انجام میشود.
r - کوتاه کردن همیشه از سمت راست انجام میشود. - 'uioptions'
- نوع: مجموعه
(set)
پیشفرض:
تنظیم رفتار UI. مقادیر زیر در دسترس هستند:
- iodetails - نمایش خودکار پنجرهٔ جزئیات پیشرفت I/O به جای نمایش پیشرفت در نوار وضعیت تا زمانی که کاربر کلید "i" را برای مشاهدهٔ پنجره فشار دهد..TP 'undolevels' 'ul' نوع: عدد صحیح
پیشفرض: 100
حداکثر تعداد تغییراتی که میتوان واگرد (undo) کرد. توجه داشته باشید که در اینجا عملیات روی هر فایل مستقل به عنوان یک واحد در نظر گرفته میشود، نه کل یک عملیات؛ یعنی حذف 101 فایل از حد مجاز پیشفرض فراتر خواهد رفت. - 'vicmd'
- نوع: رشته
پیشفرض: "vim"
دستوری که برای ویرایش فایلها در زمینههای گوناگون به کار میرود. وجود علامت امپرسند (&) در انتها (صرفنظر از اینکه فاصلهای قبل از آن باشد یا نه) به معنای اجرای دستور در پسزمینه است.پرچم پسزمینه در شرایط خاصی که vifm منتظر پایان کار ویرایشگر میماند نادیده گرفته میشود. چنین شرایطی شامل هر دستوری است که ویرایشگری را برای تغییر فهرست نام فایلها یا یک دستور فراخوانی میکند، که :rename یک نمونه از آن است. همچنین در چنین مواردی `-f` برای جلوگیری از چندشاخهشدن (forking) ضمیمه میشود، بنابراین دستور باید بتواند این پرچم را مدیریت کند.
علاوه بر این، آرگومانهای `+{num}` و `+'call cursor()'` در صورتی که مکان مشخص باشد، برای قرار دادن مکاننما در محل مورد نظر استفاده میشوند.
- 'viewcolumns'
- نوع: رشته
پیشفرض: ""
دامنه: محلی
رشته قالبی شامل فهرست ستونها در نما. هنگامی که این گزینه خالی باشد، ستونهای نما برای نمایش، بهطور خودکار بر پایه کلیدهای مرتبسازی (گزینه 'sort' را ببینید) انتخاب میشوند. در صورت فعال بودن 'lsview'، مقدار این گزینه نادیده گرفته میشود. برای شرح این قالب، بخش «نمای ستونی» (Column view) را در ادامه ببینید.نمونهای از تنظیم گزینهها برای هر دو قاب (به دستور :windo توجه کنید):
windo set viewcolumns=-{name}..,6{size},11{perms} - 'vixcmd'
- نوع: رشته
پیشفرض: مقدار 'vicmd'
مشابه 'vicmd' است، اما هنگام اجرا در یک محیط گرافیکی، نسبت به آن اولویت دارد. - 'vifminfo'
- نوع: مجموعه
پیشفرض: bookmarks,bmarks
آنچه را که در فایل $VIFM/vifminfo ذخیره خواهد شد کنترل میکند.
bmarks - نشانکهای نامگذاریشده (دستور :bmark را ببینید)
bookmarks - نشانهها (marks)، بهجز موارد خاص مانند '< و '>
cs - طرح رنگ اصلی
dirstack - پشته دایرکتوری (پشته قبلی را بازنویسی میکند، مگر اینکه پشته نمونه جاری خالی باشد)
registers - محتوای ثباتها
savedirs - آخرین دایرکتوری بازدیدشده
state - فیلترهای نام فایل و نقطهدار، و وضعیت ادغام با تسهیمکنندههای ترمینال (terminal multiplexers)
tabs - زبانههای سراسری یا قاب
tui - وضعیت رابط کاربری (مرتبسازی، تعداد پنجرهها، وضعیت نمای سریع، نمای فعال)
chistory - تاریخچه خط فرمان
dhistory - تاریخچه دایرکتوری
ehistory - تاریخچه ثبات عبارت (توضیحات مربوط به Ctrl+R = را در حالت خط فرمان ببینید)
fhistory - تاریخچه فیلتر محلی (توضیحات مربوط به دستور "=" در حالت عادی را ببینید)
mchistory - تاریخچه منوها در خط فرمان
phistory - تاریخچه اعلانها (prompt)
shistory - تاریخچه جستجو (دستورهای / و ?)
commands - دستورهای تعریفشده توسط کاربر (توضیحات :command را ببینید) (منسوخ)
filetypes - برنامهها و نمایشدهندههای مرتبط (منسوخ)
options - تمام گزینههایی که میتوان با دستور :set تعیین کرد (منسوخ) - 'vimhelp'
- نوع: بولی
پیشفرض: false
استفاده از قالب راهنمای vim. - 'wildinc'
- نوع: رشته
پیشفرض: ""
فهرستی از الگوهای تطبیق (globs) جداشده با کاما که مشخص میکند چه مواردی باید بهصورت افزایشی (incrementally) تکمیل شوند. در حال حاضر، این فقط میتواند دستورهای :command باشد که با علامت دونقطه در ابتدای نامشان مطابقت داده میشوند. برای چنین دستورهایی، تکمیل خودکار همیشه فعال است و حتی اگر تنها یک مورد تکمیلی وجود داشته باشد نیز نمایش داده میشود. مثالها:" for all :commands set wildinc=:* " only for these two set wildinc=:wingo,:bmgo
برای اطلاعات بیشتر درباره نحو، بخشهای «الگوها» (Patterns) و «Globs» را ببینید. - 'wildmenu' 'wmnu'
- نوع: بولی
پیشفرض: false
کنترل میکند که آیا موارد منطبق احتمالی برای تکمیل خودکار در بالای خط فرمان نمایش داده شوند یا خیر. - 'wildstyle'
- نوع: شمارشی
پیشفرض: bar
سبک نمایش منوی تکمیل (wild menu) را مشخص میکند. مقادیر ممکن:
- bar - تکخطی با مکاننمای چپ به راست
- popup - چندخطی با مکاننمای بالا به پایین - 'wordchars'
- نوع: فهرست
رشته
پیشفرض: "1-8,14-31,33-255" (یعنی تمام نویسههای غیرفاصلهای)
مشخص میکند که کدام نویسهها در حالت خط فرمان باید به عنوان بخشی از یک کلمه در نظر گرفته شوند. مقدار این گزینه، فهرستی از محدودهها است که با کاما از هم جدا شدهاند. اگر هر دو نقطه پایانی یک محدوده یکسان باشند، ذکر یک نقطه کافی است (مثلاً "a" = "a-a"). هر دو نقطه پایانی شامل محدوده میشوند. دو قالب پذیرفته میشود: نویسهای که خود را نشان میدهد، یا عددی که نویسه را بر اساس جدول ASCII کدگذاری میکند. در صورت وجود نویسههای مبهم (خط تیره، کاما، رقم) از فرم عددی استفاده کنید. نویسههای مجاز در محدوده 0 تا 255 هستند. هر نویسه یونیکد با کد بزرگتر از 255 بخشی از یک کلمه محسوب میشود.این گزینه بر کلیدهای Alt-D، Alt-B و Alt-F اثر میگذارد، اما بر Ctrl-W بیاثر است. این تفاوت عامدانه است تا دو حالت کاربردی زیر را ممکن سازد:
- جابهجایی با WORDS و حذف با words.
- جابهجایی با words و حذف با WORDS.برای دستیابی به حالت دوم از نگاشت زیر استفاده کنید:
cnoremap <c-w> <a-b><a-d>
همچنین برای اختصارات (abbreviations) نیز استفاده میشود. - 'wrap'
- نوع: بولی
پیشفرض: true
کنترل میکند که آیا متن در نمای سریع (quick view) سطرشکنی (wrap) شود یا خیر. - 'wrapscan' 'ws'
- نوع: بولی
پیشفرض: true
جستجوها پس از رسیدن به انتهای فهرست، دوباره از ابتدا از سر گرفته میشوند. یک نگاشت کاربر مانند `nnoremap lhs rhs` جایگزینی سمت چپ (LHS) با سمت راست (RHS) را در جریان ورودی تعریف میکند. یک نگاشت معمولی (بدون "nore" در نام دستورِ :command) توالیهای شناختهشده در RHS را بسط میدهد، در حالی که نگاشت "*noremap" همواره RHS را طوری تفسیر میکند که گویی هیچ نگاشت کاربری تعریف نشده است و هر کلید معنی توکار (builtin) خود را دارد. در بیشتر موارد بهتر است از گونهٔ noremap استفاده کنید و اگر RHS شما شامل LHS باشد، تنها گونهٔ noremap کار خواهد کرد؛ چرا که بازگشت (recursion) در یک نگاشت مجاز نیست.بهمنظور تعریف یک نگاشت، حالتی را که میخواهید آن را فعال کنید مشخص کرده و از یک دستور مناسب "*noremap" استفاده نمایید (برای مثال، :nnoremap برای نگاشت در حالت عادی یا normal mode). نیازی نیست RHS خود را به حالتی که نگاشت در آن شروع شده است محدود کند و میتواند چندین حالت را در بر بگیرد.
آرگومانهای نگاشت
پیش از سمت چپ (LHS) نگاشتها میتوان از آرگومانهایی استفاده کرد که به شکل توالیهای ویژه هستند:
- <silent>
- بهروزرسانیهای رابط کاربری (UI) را تا زمانی که RHS بهطور کامل پردازش شود به تعویق میاندازد.
- <wait>
- در مواردی
که یک نگاشت
توکار با یک
نگاشت
تعریفشده
توسط کاربر
تداخل
ایجاد کند
(برای مثال،
کلید توکار
`t` با نگاشت
کاربرِ `ta` که
تا نیمه
تایپ شده
است)، نگاشت
توکار را
نادیده
گرفته و
برعکس
رفتار
پیشفرض (که
فعالسازی
نگاشت
توکار پس از
تأخیر
تعیینشده
توسط 'timeoutlen'
است)،
بهطور
نامحدود
منتظر
ورودی
میماند.
مثال:
nnoremap <wait> tw :set wrap!<cr> nnoremap <wait> tn :set number!<cr> nnoremap <wait> tr :set relativenumber!<cr>
توالیهای ویژه
از آنجا که وارد کردن نویسههای ویژه آسان نیست، چندین توالی ویژه وجود دارد که میتوان بهجای آنها استفاده کرد. این توالیها عبارتند از:
- <cr>
- کلید Enter.
- <esc>
- کلید Escape.
- <space>
- کلید Space.
- <lt>
- نویسهٔ کوچکتری (<).
- <nop>
- روشی برای غیرفعال کردن یک نگاشت فراهم میکند (از طریق نگاشت آن به <nop>).
- <bs>
- کلید Backspace (توضیحات تداخل کلیدها در زیر را ببینید).
- <tab> <s-tab>
- کلیدهای Tabulation و Shift+Tabulation.
- <home> <end>
- کلیدهای Home/End.
- <left> <right> <up> <down>
- کلیدهای جهتنما.
- <pageup> <pagedown>
- کلیدهای PageUp/PageDown.
- <del> <delete>
- کلید Delete. کدهای <del> و <delete> متفاوت هستند، اما <delete> متداولتر است.
- <insert>
- کلید Insert.
- <s-home> <s-end>
<s-left> <s-right> <s-up> <s-down>
<s-pageup> <s-pagedown>
<s-delete> <s-insert>
- <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_>
- کلید Control + یک کلید دیگر (توضیحات تداخل کلیدها در زیر را ببینید).
- <c-@> {تنها در *nix}
-
کلیدهای Control + Space. - <a-a>,<a-b>,...,<a-z>
<m-a>,<m-b>,...,<m-z>
<a-0>,<a-1>,...,<a-9> {تنها در *nix}
<m-0>,<m-1>,...,<m-9> {تنها در *nix}
- <a-s-a>,<a-s-b>,...,<a-s-z> {تنها در *nix}
<s-a-a>,<s-a-b>,...,<s-a-z> {تنها در *nix}
<m-s-a>,<m-s-b>,...,<m-s-z> {تنها در *nix}
<s-m-a>,<s-m-b>,...,<s-m-z> {تنها در *nix}
- <a-c-a>,<a-c-b>,...,<a-c-z> {تنها در *nix}
<m-c-a>,<m-c-b>,...,<m-c-z> {تنها در *nix}
- <f0> - <f63>
- کلیدهای تابعی (Function keys). این کلیدها با کلیدهایی مانند <c-f1> نیز مطابقت دارند و میتوانند بهجای آنها استفاده شوند.
- <c-f1> - <c-f12>
-
کلیدهای تابعی به همراه فشرده شدن کلید Control. - <a-f1> - <a-f12>, <m-f1> - <m-f12>
-
کلیدهای تابعی به همراه فشرده شدن کلید Alt. - <s-f1> - <s-f12>
-
کلیدهای تابعی به همراه فشرده شدن کلید Shift.
توجه داشته باشید که کارکرد کلیدهای تابعی و نحوهٔ عملکرد آنها ممکن است به ترمینال و رکورد terminfo متناظر بستگی داشته باشد.
توجه داشته باشید که بهدلیل شیوهٔ پردازش ورودی توسط ترمینالها، چندین کلید صفحهکلید ممکن است به یک کد کلید واحد نگاشت شوند؛ برای نمونه:
- <cr> و <c-m>؛
- <tab> و <c-i>؛
- <c-h> و <bs> و <del>؛
- و غیره.
در بیشتر مواقع آنها بهصورت سازگار تعریف شدهاند و رفتار غیرمنتظرهای ایجاد نمیکنند، اما در محیطهای مختلف با <c-h> و <bs> به شکلهای متفاوتی رفتار میشود (اگرچه همیشه با یکدیگر مطابقت دارند)؛ به همین دلیل است که آنها در vifm به کلیدهای متفاوتی اختصاص یافتهاند. در نتیجه، اگر <c-h> یا <bs> را نگاشت میکنید، مطمئن شوید که نگاشت را برای دیگری نیز تکرار کنید تا در تمام محیطها کار کند. روش دیگر این است که نگاشت خود را در یک شکل ارائه داده و یکی از موارد زیر را اضافه نمایید:
" if mappings with <c-h> in the LHS work map <c-h> <bs> " if mappings with <bs> in the LHS work map <bs> <c-h>
همچنین گاهی ممکن است هیچکدام کار نکنند و این کلید <del> باشد که با کلید backspace شما تطابق دارد (به نام آن توجه نکنید).
فاصلههای خالی (Whitespace)
برنامهٔ vifm نویسههای فاصلهٔ خالی (whitespace) را در ابتدا و انتهای دستورها حذف میکند. به همین دلیل ممکن است بخواهید در انتهای rhs نگاشتها از <space> استفاده کنید. برای مثال:
cmap <f1> man<space>
هنگامی که کلید <f1> را در حالت خط فرمان (command line mode) فشار دهید، عبارت "man " را در خط ورودی قرار خواهد داد. عبارتهای پشتیبانیشده زیرمجموعهای از مواردی هستند که VimL ارائه میدهد.
خلاصهٔ نحو عبارتها، از کمترین به بیشترین اولویت:
expr1 expr2
expr2 || expr2 .. OR منطقی
expr2 expr3
expr3 && expr3 .. AND منطقی
expr3 expr4
expr4 == expr4 برابر
expr4 != expr4 نابرابر
expr4 > expr4 بزرگتر
از
expr4 >= expr4 بزرگتر
یا مساوی
expr4 < expr4 کوچکتر
از
expr4 <= expr4 کوچکتر
یا مساوی
expr4 expr5
expr5 + expr5 .. جمع عددی
expr5 - expr5 .. تفریق
عددی
expr5 expr6
expr6 . expr6 .. الحاق
رشته
expr6 expr7
- expr6 منفی
یگانی
+ expr6 مثبت
یگانی
! expr6 NOT منطقی
expr7 number ثابت
عددی
"string" ثابت
رشتهای، \
خاص است
'string' ثابت
رشتهای، '
تکرار
میشود
&option مقدار
گزینه
$VAR متغیر
محیطی
g:var متغیر
سراسری
v:var متغیر
توکار
(فقطخواندنی)
function(expr1, ...)
فراخوانی
تابع
(expr1) عبارت تو
در تو
«..» نشان میدهد که عملیات در این سطح میتوانند زنجیرهای شوند.
expr1
-----
expr2 || expr2
آرگومانها پیش از ارزیابی به عدد تبدیل میشوند.
اگر حداقل یکی از آرگومانها غیرصفر باشد، نتیجه غیرصفر خواهد بود.
این عملگر راستهمبند و با ارزیابی اتصال کوتاه (short-circuiting) است، بنابراین زیرعبارتها از چپ به راست ارزیابی میشوند تا زمانی که نتیجهٔ کل عبارت تعیین شود (یعنی تا نخستین مقدار غیرصفر) یا عبارت پایان یابد.
expr2
-----
expr3 && expr3
آرگومانها پیش از ارزیابی به عدد تبدیل میشوند.
نتیجه تنها در صورتی غیرصفر است که هر دو آرگومان غیرصفر باشند.
این عملگر راستهمبند و با ارزیابی اتصال کوتاه (short-circuiting) است، بنابراین زیرعبارتها از چپ به راست ارزیابی میشوند تا زمانی که نتیجهٔ کل عبارت تعیین شود (یعنی تا نخستین صفر) یا عبارت پایان یابد.
expr3
-----
expr4 {cmp} expr4
دو عبارت expr4 را مقایسه میکند، که در صورت ارزیابی به نادرست (false) مقدار 0 و در صورت ارزیابی به درست (true) مقدار 1 حاصل میشود.
برابر ==
نابرابر !=
بزرگتر از >
بزرگتر یا
مساوی >=
کوچکتر از <
کوچکتر یا
مساوی <=
مثالها:
'a' == 'a' == 1 'a' > 'b' == 1 'a' == 'b' == 0 '2' > 'b' == 0 2 > 'b' == 1 2 > '1b' == 1 2 > '9b' == 0 -1 == -'1' == 1 0 == '--1' == 1
expr4
-----
expr5 + expr5 .. جمع عددی
expr5 - expr5 .. تفریق
عددی
مثالها:
1 + 3 - 3 == 1 1 + '2' == 3
expr5
-----
expr6 . expr6 .. الحاق
رشته
مثالها:
'a' . 'b' == 'ab' 'aaa' . '' . 'c' == 'aaac'
expr6
-----
- expr6 منفی
یگانی
+ expr6 مثبت
یگانی
! expr6 NOT منطقی
برای '-'
علامت عدد
تغییر
میکند.
برای '+' عدد
بدون تغییر
میماند.
برای '!' مقدار
غیرصفر
تبدیل به
صفر
میشود، و
صفر تبدیل
به یک
میشود.
یک رشته (String) ابتدا به یک عدد (Number) تبدیل خواهد شد.
این عملیات میتوانند تکرار شده و ترکیب شوند. مثالها:
--9 == 9 ---9 == -9 -+9 == 9 !-9 == 0 !'' == 1 !'x' == 0 !!9 == 1
expr7
-----
number ثابت
عددی
-----
عدد دهدهی. مثالها:
0 == 0 0000 == 0 01 == 1 123 == 123 10000 == 10000
string (رشته)
------
"string" ثابت
رشتهای
توجه داشته باشید که از نقلقول دوتایی (double quotes) استفاده شده است.
یک ثابت
رشتهای
این
نویسههای
خاص را
میپذیرد:
\b پسبر <bs>
\e اسکیپ <esc>
\n خط جدید
\r بازگشت به
ابتدای سطر
<cr>
\t تب <tab>
\\ بکاسلش
\" نقلقول
دوتایی
مثالها:
"\"Hello,\tWorld!\"" "Hi,\nthere!"
literal-string (رشتهٔ
لفظی)
--------------
'string' ثابت
رشتهای
توجه داشته باشید که از نقلقول تکی (single quotes) استفاده شده است.
این رشته همانگونه که هست در نظر گرفته میشود. هیچ بکاسلشی حذف نمیشود و معنای خاصی ندارد. تنها استثنا این است که دو نقلقول تکی متوالی بهجای یک نقلقول تکی عمل میکنند.
مثالها:
'All\slashes\are\saved.' 'This string contains doubled single quotes ''here'''
option (گزینه)
------
&option مقدار
گزینه (در
صورت وجود،
مقدار محلی
ترجیح داده
میشود) &g:option
مقدار
گزینهٔ
سراسری &l:option
مقدار
گزینهٔ
محلی
مثالها:
echo 'Terminal size: '.&columns.'x'.&lines if &columns > 100
هر نام گزینهٔ معتبری میتواند در اینجا استفاده شود (توجه داشته باشید که «all» در «:set all» یک شبهگزینه است). بخش «:set options» در بالا را ببینید.
environment variable (متغیر
محیطی)
--------------------
$VAR متغیر
محیطی
مقدار رشتهای (String) هر متغیر محیطی. هنگامی که تعریف نشده باشد، نتیجه یک رشتهٔ خالی است.
مثالها:
'This is my $PATH env: ' . $PATH 'vifmrc at ' . $MYVIFMRC . ' is used.'
global variable (متغیر
سراسری)
---------------
g:var متغیر
سراسری
یک ذخیرهساز نوعدار داده برای استفاده در اسکریپتنویسی. میتواند بهصورت پویا (از طریق :let و :unlet) ایجاد یا حذف شود و در عبارتها مورد استفاده قرار گیرد.
builtin variable (متغیر
توکار)
----------------
v:var متغیر
توکار
اطلاعات ارائهشده توسط vifm برای استفاده در اسکریپتنویسی. این متغیرها از پیش تعریفشده و فقطخواندنی هستند، اما لزوماً ثابت نیستند.
v:count
تعداد
ارسالشده
به دستور :،
بهطور
پیشفرض 0
است.
میتواند
در
نگاشتها
برای ارسال
تعداد به
دستوری
دیگر به کار
رود.
v:count1
مشابه v:count،
اما بهطور
پیشفرض 1
است.
v:jobcount
تعداد
کارهای (jobs)
فعال
(همانطور
که در منوی :jobs
قابل
مشاهده است).
v:session
نام نشست (session)
فعلی یا یک
رشتهٔ خالی.
v:servername
در زیر
ببینید.
v:version
نسخهٔ
برنامه
بهصورت یک
عدد صحیح.
نسخهٔ `x.y.z`
تبدیل به
عدد `x*100*100 + y*100 + z`
میشود،
مثالها:
- v0.14 (یعنی v0.14.0)
برابر با 1400
است (صفرهای
ابتدایی
حذف
میشوند)
- v1.0.2 برابر با 10002
است
کاندیداهای
انتشار،
انتشارهای
نهایی
نیستند؛
آنها
شمارهٔ
انتشار
مربوطه را
گزارش
میکنند.
function call
(فراخوانی
تابع)
-------------
function(expr1, ...)
فراخوانی
تابع
بخش «توابع (Functions)» را در ادامه ببینید.
مثالها:
"'" . filetype('.') . "'"
filetype('.') == 'reg'
expression nesting (تو در
تویی
عبارتها)
------------------
(expr1) عبارت تو
در تو
هر عبارت دیگر با پیچیدگی دلخواه را گروهبندی کرده و ترتیب اعمال عملگرها را تعیین میکند.
کاربرد نتیجه توضیحات
chooseopt({opt}) String
پارامترهای
choose
ارائهشده
هنگام
راهاندازی
را پرسوجو
میکند.
escape({string}, {chars})
String مقدار {string} را
پس از گریز
دادن {chars} در آن
بازمیگرداند.
executable({expr}) Integer بررسی
میکند که
آیا دستور {expr}
در دسترس
است یا خیر.
expand({expr}) String
کلیدواژههای
ویژه را در {expr}
بسط میدهد.
extcached({cache}, {path}, {extcmd})
String خروجی {extcmd} را
بر اساس
ترکیب {cache} و
{path} ذخیره (کَش)
میکند.
filereadable({path}) Integer بررسی
میکند که
آیا {expr} به یک
غیردایرکتوریِ
قابل
خواندن
اشاره دارد
یا خیر.
filetype({file} [, {resolve}])
String نوع فایل
را از
موقعیت/مسیر
بازمیگرداند.
fnameescape({expr}) String
کاراکترهای
{expr} را برای
استفاده در
یک :command گریز
میدهد.
getpanetype() String نوع قاب
جاری را
بازمیگرداند.
has({property}) Integer بررسی
میکند که
آیا نمونه،
ویژگی {property} را
دارد یا خیر.
input({prompt} [, {initial} [, {completion}]])
String از کاربر
یک ورودی در
خط فرمان
درخواست
میکند.
layoutis({type}) Integer بررسی
میکند که
آیا چیدمان
از نوع {type} است
یا خیر.
paneisat({loc}) Integer بررسی
میکند که
آیا قاب
جاری در {loc}
قرار دارد
یا خیر.
selected() Integer تعداد
فایلهای
انتخابشدهٔ
کنونی را
بازمیگرداند.
system({command}) String دستور
پوسته را
اجرا کرده و
خروجی آن را
بازمیگرداند.
tabpagenr([{arg}]) Integer شمارهٔ
زبانهٔ
جاری یا آخر
را
بازمیگرداند.
term({command}) String مانند
()system، اما برای
دستورهای
تعاملی.
chooseopt({opt})
مقادیر
گزینههای
مربوط به
انتخاب
فایل را
بازیابی
میکند. {opt}
میتواند
یکی از
موارد زیر
باشد:
files آرگومان --choose-files
یا یک رشتهٔ
خالی را
بازمیگرداند
dir آرگومان --choose-dir
یا یک رشتهٔ
خالی را
بازمیگرداند
cmd آرگومان --on-choose
یا یک رشتهٔ
خالی را
بازمیگرداند
delimiter آرگومان
--delimiter یا مقدار
پیشفرض آن
(\n) را
بازمیگرداند
escape({string},{chars})
تمام رخدادهای {chars} در {string} را با افزودن بکاسلش (``) به ابتدای آنها گریز میدهد (escape میکند). توجه داشته باشید که خود بکاسلش گریز داده نمیشود مگر اینکه در {chars} آمده باشد.
executable({expr})
اگر {expr} یک مسیر مطلق یا نسبی باشد، بررسی میکند که آیا مقصد مسیر وجود دارد و به یک فایل اجرایی اشاره میکند یا خیر؛ در غیر این صورت بررسی میکند که آیا دستوری با نام {expr} در دایرکتوریهای فهرستشده در $PATH موجود است یا خیر. پسوندهای اجرایی گوناگون را در Windows بررسی میکند. یک مقدار بولی که نتیجهٔ بررسی را توصیف میکند بازمیگرداند.
مثال:
" در صورت وجود و نصب بودن اسکریپت نمایشگر پیشفرض سفارشی در دایرکتوری
" از پیش تعریفشدهٔ سیستم از آن استفاده کن، در غیر این صورت در جای دیگر جستجو کن
if executable('/usr/local/bin/defviewer')
fileview * /usr/local/bin/defviewer %c
else
if executable('defviewer')
fileview * defviewer %c
endif
endif
expand({expr})
متغیرهای محیطی و ماکروها را در {expr} (به همین ترتیب) بسط میدهد. یک رشته بازمیگرداند. بخش «ماکروهای دستور» (Command macros) در بالا را ببینید.
مثالها:
" علامت درصد
:echo expand('%%')
" آخرین بخش از نام دایرکتوری در قاب دیگر
:echo expand('%D:t')
" متغیر محیطی $PATH (مشابه با `:echo $PATH`)
:echo expand('$PATH')
" مسیر کامل به فایل جاری با بکاسلشها
:echo expand('%c:p:gs!/!\!')
extcached({cache}, {path}, {extcmd})
مقدار دستور خارجی {extcmd} را ذخیره (کَش) میکند و بر اساس پایش تاریخ تغییر {path}، در صورت نیاز آن را بهطور خودکار بهروزرسانی میکند. کَش زمانی که فایل یا فرادادههای (مِتادیتا) آن بهروزرسانی شوند باطل میشود. یک مسیر منفرد میتواند چندین کَش مرتبط با خود داشته باشد.
مقدار {path} نرمالسازی میشود، اما پیوندهای نمادین در آن حل (resolve) نمیشوند.
مثال:
" نمایش تعداد و اندازهٔ بلوکهایی که واقعاً توسط یک فایل یا دایرکتوری استفاده شدهاند
set statusline+=" Uses: %{ extcached('uses',
\ expand('%c'),
\ expand('stat --format=%%bx%%B %c')) }"
filereadable({path})
بررسی میکند که آیا {path} وجود دارد و به یک مدخل غیردایرکتوری اشاره میکند و مجوزهای آن اجازهٔ خواندن میدهند یا خیر. یک مقدار بولی که نتیجهٔ بررسی را توصیف میکند بازمیگرداند.
filetype({file} [, {resolve}])
نوع یک مدخل در نما یا فایلی که مسیر آن مشخص شده است را بررسی میکند.
پارامتر {file}
میتواند
به یکی از
اشکال زیر
باشد:
- '.' برای
دریافت نوع
فایل زیر
مکاننما
در قاب فعال
- مقدار عددی
در مبنای ۱
برای
دریافت نوع
فایل در
شماره خط
مشخصشده
(تنها در
صورتی که
نویسهای
جز "+-0123456789" وجود
نداشته
باشد)
- یک مسیر
(افزودن "./"
به ابتدا
جهت الزام
به تفسیر یک
عدد یا '.' به
عنوان
مسیر)
پارامتر اختیاری {resolve} به عنوان یک مقدار بولی در نظر گرفته میشود و مشخص میکند که آیا پیوندهای نمادین باید حل (resolve) شوند یا خیر.
نتیجه یک
رشته است که
نوع فایل را
نشان
میدهد و
یکی از
موارد
فهرست زیر
است:
exe فایلهای
اجرایی
reg فایلهای
عادی
link پیوندهای
نمادین
broken پیوندهای
نمادین
شکسته (تنها
هنگام حل
پیوند ظاهر
میشود)
dir
دایرکتوریها
char
دستگاههای
نویسهای (character
devices)
block
دستگاههای
بلوکی (block devices)
fifo لولهها (pipes)
sock سوکتهای
دامنهٔ *nix
? نوع فایل
ناشناخته
(در حالت
عادی نباید
رخ دهد) یا
غیرفایل
(مدخلهای
شبهفایل
در نمای
مقایسه)
در صورت نامعتبر بودن آرگومان، نتیجه میتواند یک رشتهٔ خالی نیز باشد.
fnameescape({expr})
پارامتر را گریز میدهد تا برای استفاده به عنوان آرگومان یک :command مناسب شود. فهرست نویسههای گریز داده شده شامل % است که دو برابر (تکرار) میشود.
مثال کاربرد:
" رفتن به تازهترین فایل تغییریافته در دایرکتوری جاری
execute 'goto' fnameescape(system('ls -t | head -1'))
getpanetype()
رشتهای
را که نوع
قاب جاری را
توصیف
میکند
بازیابی
میکند.
مقادیر
بازگشتی
ممکن:
regular فهرست
فایلهای
عادی یک
دایرکتوری
custom فهرست
فایل
سفارشی (%u)
very-custom فهرست
فایل بسیار
سفارشی (%U)
tree نمای
درختی
compare نمای
مقایسه
has({property})
امکان
بررسی
پارامترهای
داخلی از
طریق
اسکریپتها
را فراهم
میکند،
مثلاً برای
تشخیص
محیطی که
برنامه در
آن در حال
اجرا است.
اگر ویژگی
درست/موجود
باشد،
مقدار 1
بازگردانده
میشود؛ در
غیر این
صورت 0
بازگردانده
میشود. در
حال حاضر
ویژگیهای
زیر
پشتیبانی
میشوند (هر
مورد دیگری
مقدار 0
خواهد داد):
unix اجرا در
محیط شبه*nix
(شامل Cygwin)
win اجرا روی
ویندوز
#* آیا یک
گردانندهٔ
(handler) خاص Lua وجود
دارد یا
خیر
مثال کاربرد:
" نادیده گرفتن کاربر/گروه در ویندوز
if !has('win')
let $RIGHTS = '%10u:%-7g '
endif
execute 'set' 'statusline=" %t%= %A '.$RIGHTS.'%15E %20d "'
input({prompt} [, {initial} [, {completion}]])
اعلان خط فرمانی (prompt) برای دریافت ورودی کاربر ایجاد میکند. مقدار اولیه میتواند به عنوان یک پارامتر اختیاری دوم ارائه شود؛ در غیر این صورت از یک رشتهٔ خالی استفاده میشود.
پارامتر
اختیاری
سوم نوع
تکمیل
خودکار (completion)
را مشخص
میکند که
میتواند
یکی از
موارد زیر
باشد:
dir مسیرهای
دایرکتوریها
file مسیرهای
فایلها و
دایرکتوریها
"" (رشتهٔ
خالی،
پیشفرض)
بدون تکمیل
خودکار
توجه داشته باشید که این رفتار با Vim تفاوت دارد؛ در Vim اجرای نگاشتی مانند
nnoremap j :echo input('text: ')<cr>input
شما را در
حالت اعلان
در حالی که
"input" در آن
تایپ شده
باقی
میگذارد. Vifm
منتظر خروج
از اعلان
میماند و
سپس به
اجرای
نگاشت
ادامه
میدهد.
مثال کاربرد:
nnoremap ,m : let $DIR_NAME = input('mkdir: ', '', 'dir')
\| if $DIR_NAME != ''
\| execute 'mkdir' fnameescape($DIR_NAME)
\| endif<cr>
layoutis({type})
بررسی
میکند که
آیا چیدمان
واسط
کاربری
جاری {type} است
یا خیر، که
در آن {type}
میتواند
موارد زیر
باشد:
only حالت
تکقابی
split حالت
دوقابی
(تقسیم
عمودی یا
افقی)
vsplit تقسیم
عمودی
(قابهای چپ
و راست)
hsplit تقسیم
افقی
(قابهای
بالا و
پایین)
مثال کاربرد:
" تقسیم عمودی خودکار پیش از فعالسازی پیشنمایش
:nnoremap w :if layoutis('only') | vsplit | endif | view!<cr>
paneisat({loc})
بررسی
میکند که
آیا موقعیت
قاب فعال در
چیدمان
جاری با یکی
از
مکانهای
زیر مطابقت
دارد یا خیر:
top قاب به
لبهٔ
بالایی
میرسد
bottom قاب به
لبهٔ
پایینی
میرسد
left قاب به
لبهٔ چپ
میرسد
right قاب به
لبهٔ راست
میرسد
selected()
تعداد فایلهای انتخابشده در قاب فعال را بازیابی میکند.
system({command})
دستور را در پوسته اجرا میکند و خروجی آن را بازمیگرداند (جریانهای خروجی استاندارد و خطای استانداردِ پیوستهشده به هم). تمام نویسههای خط جدید پایانی حذف میشوند تا الحاق آسان به خروجی دستور ممکن شود. کلید Ctrl-C باید دستور را متوقف کند.
از این تابع برای استفاده از خروجی دستورهای خارجی که به تعامل کاربر نیازی ندارند استفاده کنید، و از ()term برای دستورهای تعاملی که از ترمینال استفاده میکنند و توانایی مدیریت بازهدایت جریان را دارند بهره بگیرید.
مثال کاربرد:
" دستوری برای ورود به دایرکتوری .git/ در یک مخزن git (هنگام اجرا در داخل آن)
command! cdgit :execute 'cd' fnameescape(system('git rev-parse --git-dir'))
tabpagenr([{arg}])
هنگامی که بدون آرگومان فراخوانی شود، شمارهٔ صفحهٔ زبانهٔ جاری را در مبنای یک بازمیگرداند.
هنگامی که با "$" به عنوان آرگومان فراخوانی شود، شمارهٔ آخرین صفحهٔ زبانه را در مبنای یک بازمیگرداند، که همان تعداد زبانهها است.
term({command})
مشابه با تابع ()system است، با این تفاوت که واسط کاربری در حین اجرای دستور موقتاً خاموش (متوقف) میشود، که تضمین میکند برنامههای تعاملی خارجی بر نحوهٔ استفادهٔ vifm از ترمینال تأثیر نخواهند گذاشت.
مثال کاربرد:
" دستوری برای تغییر دایرکتوری با انتخاب آن از طریق fzf
command! fzfcd :execute 'cd'
\ fnameescape(term('find -type d | fzf 2> /dev/tty'))
هنگام
پیمایش به
یک مسیر از
درون یک
منو، مکان
نهایی بسته
به اینکه
مسیر دارای
یک اسلش
انتهایی
باشد یا
خیر، تفاوت
دارد.
فایلها
معمولاً
اسلش
انتهایی
ندارند،
بنابراین
«file/» کار
نخواهد کرد.
در مورد
دایرکتوریها
دو گزینه
وجود دارد:
پیمایش به
دایرکتوری
یا رفتن به
درون آن.
برای فراهم
کردن هر دو
کاربرد،
عمل اول
برای «dir» و
عمل دوم
برای «dir/»
انجام
میشود.
دستورهای منو
:range پیمایش به یک خط از منو.
- :chistory
- :chi[story]
- نمایش منوی منوهای ذخیرهشده. برای کلیدهای کنترلی بخش «منوها و کادرهای محاوره» و همچنین بخش «تاریخچه منوها» را ببینید.
- :colder
- :col[der]
- بارگذاری یک منوی پیمایش قدیمیتر در صورت وجود. همچنین بخش «تاریخچه منوها» را ببینید.
- :cnewer
- :cnew[er]
- بارگذاری یک منوی پیمایش جدیدتر در صورت وجود. همچنین بخش «تاریخچه منوها» را ببینید.
- :find
- :fin[d]
- رفتار آن مطابق با دستور غیرمنویی :find است، با این تفاوت که هیچ بازهای پذیرفته نمیشود. اگر نمای فعال پیش از ورود به حالت منو شامل گزینش بود، این دستور آن را در نظر میگیرد.
- :grep
- :gr[ep]
- رفتار آن مطابق با دستور غیرمنویی :grep است، با این تفاوت که هیچ بازهای پذیرفته نمیشود. اگر نمای فعال پیش از ورود به حالت منو شامل گزینش بود، این دستور آن را در نظر میگیرد.
:exi[t][!]
:q[uit][!]
:x[it][!]
- :noh[lsearch]
- بازنشانی برجستهسازی انطباقهای جستجو.
- :w[rite] {path}
- نوشتن تمام خطوط منو در فایل مشخصشده توسط {path}.
کلیدهای مشترک تمام منوها و کادرهای محاوره
- j, Ctrl-N
- حرکت مکاننما به سمت پایین.
- k, Ctrl-P
- حرکت مکاننما به سمت بالا.
- Enter
- انتخاب و معمولاً بستن منو/کادر محاوره.
- Ctrl-L
- بازترسیم
منو/کادر
محاوره.
Escape, Ctrl-C
ZZ, ZQ
q
- کلیدهای مشترک تمام منوها
Ctrl-B, Ctrl-F
Ctrl-D, Ctrl-U
Ctrl-E, Ctrl-Y
/, ?
n, N
[count]G, [count]gg
H, M, L
zb, zt, zz
- [count]zh
- پیمایش افقی موارد منو به تعداد [count] نویسه (بهطور پیشفرض ۱) به سمت راست.
- [count]zl
- پیمایش افقی موارد منو به تعداد [count] نویسه (بهطور پیشفرض ۱) به سمت چپ.
- zH
- پیمایش افقی موارد منو به اندازه نصف عرض صفحه به سمت راست.
- zL
- پیمایش افقی موارد منو به اندازه نصف عرض صفحه به سمت چپ.
- :
- ورود به حالت خط فرمان برای منوها.
- b
- تفسیر محتوای منو بهعنوان فهرستی از مسیرها و استفاده از آن برای ایجاد نمای سفارشی بهجای قاب فعال قبلی. بخش «نماهای سفارشی» را در زیر ببینید.
- B
- مشابه بالا، اما ایجاد یک نمای مرتبنشده.
- v
- بارگذاری محتوای منو در فهرست quickfix یک ویرایشگر (با فرض سازگاری با Vim)، یا اگر فهرست فاقد جداکننده پس از نام فایلها (دونقطه) باشد، باز کردن هر خط بهعنوان یک نام فایل.
منوهای پیمایش
این مورد
برای
منوهای زیر
اعمال
میشود:
- :bmarks, :bmgo
- :find
- :grep
- :locate
- منوی کاربر
با پیمایش
(ماکروی %M)
- gf
- پیمایش نمای فعال قبلی به مورد انتخابشده فعلی. بهجز برای منوی :grep، از حالت منو خارج میشود. فشردن Enter یا l نیز همین اثر را دارد.
- e
- باز کردن مسیر انتخابشده در یک ویرایشگر؛ در حالت منو باقی میماند.
- c
- خروج از منو با حفظ گزینش فایل و درج نام فایل پس از :! در حالت خط فرمان. در :bmarks و :bmgo کاری انجام نمیدهد.
توجه داشته باشید که هر یک از این منوها میتواند کلیدهای دیگری نیز داشته باشد، بخشهای زیر را ببینید.
منوهای
تاریخچه (:history *)
==========================
- منوی تاریخچه خط فرمان
- Enter, l
- اجرای مورد بهعنوان یک دستور خط فرمان، عبارت جستجو یا فیلتر محلی.
- c
- خروج از منو با حفظ گزینش فایل و درج مورد در خط فرمان از نوع مناسب.
منوی تاریخچه دایرکتوری
- Enter, l
- پیمایش به درون دایرکتوری انتخابشده.
- منوی تاریخچه دستورهای منو
- Enter, l
- اجرای دستور بدون خروج از منو.
- c
- درج مورد منو در خط فرمان جهت ویرایش.
منوهای
دیگر
===========
منوی Apropos (:apropos)
- Enter, l
- اجرای man روی موضوع مشخصشده. منو بهطور خودکار بسته نخواهد شد تا امکان مشاهده چندین صفحه بهصورت تکتک فراهم باشد.
منوی نشانکها (:bmarks, :bmgo).TP Enter, l پیمایش به نشانک انتخابشده.
- dd
- حذف نشانک زیر مکاننما.
برای کلیدهای "gf" و "e" به بالا مراجعه کنید.
منوی اختصارات حالت خط فرمان (:cabbrev)
- dd
- حذف اختصار زیر مکاننما.
منوی طرح رنگ (:colorscheme)
- Enter, l
- اعمال طرح رنگ انتخابشده، گویی ":colorscheme <name>" در خط فرمان اجرا شده است.
منوی دستورها (:command)
- Enter, l
- اجرای دستور با آرگومانهای خالی (ماکروی %a).
- dd
- حذف دستور زیر مکاننما.
- c
- خروج از منو با حفظ فایلهای انتخابشده و درج سمت راست دستور انتخابشده در خط فرمان.
منوی پشته دایرکتوری (:dirs)
- Enter, l
- چرخش پشته برای قرار دادن جفت دایرکتوری انتخابشده در بالا.
منوی فایل (:file)
دستورهای برگرفته از vifmrc یا تایپشده در خط فرمان، بالای یک خط خالی (در صورت وجود) نمایش داده میشوند. تمام دستورهای زیر خط خالی از فایلهای .desktop میآیند.
دستورهایی که به عنوان دردسترس شناسایی شدهاند دارای "[present]" در سمت چپ خود هستند.
- Enter, l
- اجرای دستور انتخابشده (صرفنظر از اینکه دردسترس بودنش شناسایی شده باشد یا خیر).
- c
- خروج از منو با حفظ فایلهای انتخابشده و درج دستور پس از :! در حالت خط فرمان.
منوی جستجوی متنی (:grep)
- Enter, l
- باز کردن فایل در ویرایشگر تعیینشده توسط 'vicmd' در شماره خط مشخصشده. منو بهطور خودکار بسته نخواهد شد تا امکان مشاهده بیش از یک نتیجه فراهم باشد.
برای کلیدهای "gf"، "e" و "c" به بالا مراجعه کنید.
منوی کارها (:jobs)
- dd
- درخواست لغو کار زیر مکاننما. کار از فهرست حذف نخواهد شد، بلکه به عنوان لغوشده علامتگذاری میشود (در صورتی که درخواست لغو با موفقیت ثبت شده باشد). اگر کار از قبل متوقف شده باشد، پیامی نمایان خواهد شد. توجه داشته باشید که در Windows، لغو برنامههای خارجی به این شکل ممکن است کار نکند، زیرا پوسته والد آنها هیچ پنجرهای ندارد.
- e
- نمایش خطاهای کار انتخابشده در صورت وجود هرگونه خطای جمعآوریشده. آنها در منوی جدیدی نمایش داده میشوند، اما میتوانید با فشردن h به منوی کارها بازگردید.
- r
- بارگذاری مجدد فهرست کارها.
منوی نشانها (:marks)
منوی رسانه (:media)
- Enter, l
- رفتار برای
انواع
مختلف
خطها
متفاوت است:
- سوار کردن یک دستگاه سوارنشده
- پیمایش به نخستین نقطه اتصال یک دستگاه سوارشده
- پیمایش به یک نقطه اتصال
- انجام ندادن هیچ کاری برای "not mounted" یا یک خط خالی - r
- بارگذاری مجدد فهرست.
- m
- سوار کردن/پیاده کردن دستگاه (مکاننما باید روی خطوط زیر اطلاعات دستگاه قرار داشته باشد).
- [
- قرار دادن مکاننما روی دستگاه قبلی.
- ]
- قرار دادن مکاننما روی دستگاه بعدی.
منوی تاریخچه منوها (:chistory)
- Enter, l
- بارگذاری منوی انتخابشده.
منوی افزونهها (:plugins)
- e
- نمایش پیامهای گزارش لاگ افزونه انتخابشده در صورت وجود. آنها در یک منوی جدید نمایش داده میشوند، اما میتوانید با فشردن h به منوی افزونهها بازگردید.
- gf
- پیمایش نمای فعال قبلی به مکان افزونه انتخابشده. از حالت منو خارج میشود.
منوی سطل زباله (:lstrash)
منوی سطلهای زباله (:trashes)
- Enter, l
- پیمایش به درون دایرکتوری سطل زباله فعلی.
- dd
- شروع خالی کردن سطل زباله انتخابشده در پسزمینه.
منوی فهرست واگرد (:undolist)
- r
- بازنشانی وضعیت واگرد به گروه زیر مکاننما.
منوی کاربر بدون پیمایش (ماکروی %m)
- c
- خروج از منو با حفظ فایلهای انتخابشده و درج کل خط پس از :! در حالت خط فرمان.
منوی
درایوها (:volumes)
تنها برای
MS-Windows
- Enter, l
- پیمایش به ریشه درایو انتخابشده.
عملیات
ویژه
محاورهها
==========================
محاوره ویژگیها (مجوزها یا خصوصیات)
- h, Space
- علامت زدن/برداشتن علامت.
- q
- بستن محاوره.
- r
- (تنها *nix) تنظیم/لغو تنظیم همه بیتهای خواندن.
- w
- (تنها *nix) تنظیم/لغو تنظیم همه بیتهای نوشتن.
- x
- (تنها *nix) تنظیم/لغو تنظیم همه بیتهای اجرا.
- s
- (تنها *nix) تنظیم/لغو تنظیم همه بیتهای ویژه (SetUID، SetGID، Sticky).
- e
- (تنها *nix) تنظیم/لغو تنظیم حالت بازگشتی (تنها برای دایرکتوریها).
وضعیتهای ممکن مورد:.IP - 2 * - پرچم علامتخورده.
- X - فایلهای انتخابشده دارای مقادیر متناقض برای این پرچم هستند.
- d (*nix تنها) - (فقط برای پرچمهای اجرا) به معنای آرگومان u-x+X، g-x+X یا o-x+X برای برنامه chmod است. اگر در OS X نیستید و میخواهید بیت مجوز اجرا را از همه فایلها حذف کنید، اما آن را برای دایرکتوریها نگه دارید، تمام پرچمهای اجرا را روی 'd' تنظیم کرده و پرچم 'Set Recursively' را علامت بزنید.
کادر محاورهای Fileinfo (Ctrl-G)
- Enter, q
- بستن کادر محاورهای.
کادر محاورهای Sort (:sort)
همچنین به ازای هر کلید مرتبسازی یک میانبر وجود دارد (روی کادر محاورهای نمایش داده شده است).
تاریخچه منوها (MENUS HISTORY)
منوها معمولاً برای ارائه نتایج عملیات (مانند یافتن یا grep کردن فایلها) استفاده میشوند. پس از بسته شدن، میتوان آنها را با تکرار یک دستور مجدداً ایجاد کرد، اما این کار ممکن است ناخوشایند (نیازمند تغییر دایرکتوری، یافتن دستور و احتمالاً یافتن موقعیت در منو) و برای اجرای مجدد عملیات زمانبر باشد. برای ممکن ساختن ارجاع به منوهای قدیمیتر، vifm تا ۲۵ منوی آخر از این دست را ذخیره کرده و راههایی را برای فراخوانی مجدد آنها با استفاده از مجموعه دستورات آشنای Vim فراهم میکند.
همانطور که در بالا اشاره شد، این مورد برای همه منوها صدق نمیکند، زیرا مواردی مانند :version یا :commands صرفاً به دادههای داخلی متکی هستند و نیازی به ذخیره شدن ندارند. تنها منوهایی که از منابع خارجی مشتق شدهاند و از ناوبری پشتیبانی میکنند (مانند از طریق gf) به خاطر سپرده میشوند.
پیمایش در تاریخچه
باز کردن مجدد آخرین منوی دیدهشده از نوع مرتبط، با اجرای دستور :copen انجام میشود. پس از باز شدن، میتوان از :colder برای مشاهده منوهای قدیمیتر و از :cnewer برای مشاهده منوهای جدیدتر استفاده کرد.
بستن منو پس از حرکت در تاریخچه، موقعیت را به گونهای ذخیره میکند که اجرای مجدد :copen آخرین منوی مشاهدهشده را باز کرده و به کاربر اجازه میدهد به کاوش در تاریخچه در هر دو جهت ادامه دهد.
تاریخچه همیشه شامل منوهایی است که از قدیمیترین به جدیدترین مرتب شدهاند. پس از باز کردن بیش از ۲۵ منو، قدیمیترین منو احتمالاً فراموش میشود. این امر تضمینشده نیست، چرا که پس از مشاهده یک منوی قدیمیتر، ورودی جدید جایگزین تمامی موارد جدیدتر میشود. به عنوان مثال، فرض کنید تاریخچه به این شکل است:
1. :find 1 2. :find 2 ... 23. :find 23 (current element) 24. :find 24 25. :find 25
اجرای `:find 11` منجر به موارد زیر میشود:
1. :find 1 2. :find 2 ... 23. :find 23 24. :find 26 (current element) 25. None
جهت
راحتی، :colder و :cnewer
را میتوان
در هر زمانی
که در یک منو
هستید
استفاده
کرد، نه فقط
پس از :copen.
دستور :cnewer
تنها در
صورتی کار
خواهد کرد
که منوی
فعلی
نتواند
ذخیره شود و
شما قبلاً
در تاریخچه
منوها به
عقب رفته
باشید.
رفتار :colder به
این صورت
است:
- اگر منوی
فعلی قابل
اندوختن (stash)
باشد،
مانند
توالی
دستورات :quit،
:copen، :colder عمل
میکند
(منوی فعلی
به همان
شیوهای که
در بالا
توضیح داده
شد اندوخته
میشود)
- اگر منوی
فعلی قابل
اندوختن
نباشد،
مانند
توالی
دستورات :quit،
:copen عمل
میکند
مشاهده تاریخچه
به منظور اجتناب از پیمایش تکتک منوها برای یافتن مورد منطبق، میتوان از دستور :chistory برای دریافت نمایی کلی از منوهای ذخیرهشده، جستجوی احتمالی برای یکی از آنها و سپس باز کردنش استفاده کرد. این دستور در حالت منو نیز در دسترس است.
مباحث مرتبط
دستورها: :chistory, :copen دستورهای منو: :chistory, :colder, :cnewer
نماهای سفارشی (CUSTOM VIEWS)
تعریف
بهطور معمول، نماهای فایل فهرستی از فایلهای یک دایرکتوری واحد را نمایش میدهند، اما گاهی اوقات پر کردن آنها با فایلهایی از مکانهای نامرتبط مفید است. هدف اصلی نماهای سفارشی در واقع همین مورد است.
نحوه نمایش
نماهای سفارشی همچنان با دایرکتوریای که پیش از بارگذاری فهرست سفارشی در آن قرار داشتند، مرتبط هستند. مسیر آن دایرکتوری (دایرکتوری اصلی) در عنوان نمای سفارشی قابل مشاهده است.
فایلهای موجود در یک دایرکتوری باید نامهای متفاوتی داشته باشند، اما نماهای سفارشی از این محدودیت رها هستند، بنابراین دیدن نام فایلها بهتنهایی ممکن است کمی گیجکننده باشد. به منظور مشخص ساختن منشأ فایلها، از مسیرهای نسبی نسبت به دایرکتوری اصلی نما استفاده میشود، و در صورتی که این امر ممکن نباشد، مسیرهای کامل نمایش داده میشوند.
نماهای سفارشی بهطور معمول فاقد فایلهای ناموجود هستند.
ناوبری/خروج
ناوبری در نماهای سفارشی تا حدودی با نماهای عادی تفاوت دارد.
gf - مشابه gf روی پیوندهای نمادین عمل کرده و به مکان واقعی فایل میرود.
h - به نزدیکترین گره والد در نمای درختی میرود یا به نمای سفارشی خاتمه داده و به دایرکتوری اصلی بازمیگردد.
gh - به نمای سفارشی خاتمه داده و به دایرکتوری اصلی بازمیگردد.
رفتن به دایرکتوری والد از روشهای دیگر (چه با باز کردن ورودی ".." یا اجرای `:cd ..`) نیز باعث خاتمه کار و بازگشت به مکان اصلی میشود.
تمامی روشهای دیگر تغییر مکان (مانند نشانهها، بوکمارکها، :cd، :sync) نیز باعث خاتمه یافتن نمای سفارشی میشوند.
تاریخچه
فهرست سفارشی فقط تا زمانی که مرئی است وجود دارد؛ به محض خروج از آن، دیگر نمیتوان به آن بازگشت، بنابراین هیچ اثری از آن در هیچ تاریخچهای بر جای نمیماند.
فیلترها
تنها فیلتر محلی روی محتویات نما تأثیر میگذارد. این امر عمدی است. فرض بر این است که اگر کاربری فهرست خاصی را بارگذاری میکند، دقیقاً همان فهرست باید نمایش داده شود (به جز مسیرهای ناموجود، که نادیده گرفته میشوند).
جستجو
اگرچه نام دایرکتوریها در فهرست قابل مشاهده است، اما قابل جستجو نیستند. تنها نام فایلها در نظر گرفته میشوند (ممکن است در آینده تغییر کند، زیرا جستجو در تمام خطوط کاملاً معقول به نظر میرسد).
مرتبسازی
برخلاف جستجو، مرتبسازی بر اساس نام روی کل بخش مرئی مسیر فایل اعمال میشود.
برجستهسازی
کل نام فایل به عنوان یک موجودیت واحد برجسته میشود، حتی اگر اجزای دایرکتوری وجود داشته باشند.
بهروزرسانیها
بارگذاریهای مجدد ممکن است رخ دهند، هرچند به دلیل پراکنده بودن فایلها در مکانهای مختلف خودکار نیستند. در هنگام بارگذاری مجدد، فایلهای ناموجود حذف شده و متادیتای تمام فایلهای دیگر بهروزرسانی میشود.
هنگامی که نمای سفارشی فایلی را فراموش کند، حتی در صورت ایجاد مجدد، آن را بازنخواهد گرداند. بنابراین، عدم مشاهده فایلی که قبلاً تحت تأثیر عملیاتی قرار گرفته که بعداً لغو (undo) شده، امری طبیعی است.
عملیات
تمامی عملیاتی که فایلها را اضافه میکنند برای نماهای سفارشی ممنوع هستند. برای مثال، انتقال/رونوشت/قراردادن فایلها در یک نمای سفارشی کار نمیکند، زیرا آنجا یک مکان واقعی در سیستم فایل نیست.
از سوی دیگر، عملیاتی که از فایلهای یک نمای سفارشی به عنوان منبع استفاده میکنند (مانند yanking، رونوشت، انتقال فایل از یک نمای سفارشی، حذف) و عملیاتی که نامها را تغییر میدهند، همگی مجاز هستند. انواع
دستور :compare
میتواند
بسته به
آرگومانها
چهار
نتیجهٔ
مختلف
تولید کند:
- یک نمای
مقایسه تکی
("ofone" و یکی از
"listall" یا "listdups")؛
- یک نمای
سفارشی تکی
("ofone" و "listunique")؛
- دو نمای
مقایسه ("ofboth"
و یکی از "listall"
یا "listdups")؛
- دو نمای
سفارشی ("ofboth"
و "listunique").
دو مورد اول، فایلهای یک درخت سیستم فایل تکی را نمایش میدهند. در اینجا موارد تکراری فایلهایی هستند که دستکم یک نسخه در همان درخت دارند. دو نوع عملیات دیگر دو درخت را مقایسه میکنند که در آنها موارد تکراری فایلهایی هستند که در هر دو درخت یافت میشوند.
فهرستهای فایلهای یکتا در نماهای سفارشی ارائه میشوند زیرا با توجه به تضمین متمایز بودن شناسه تمام فایلها، هیچ گروهبندی فایلی برای حفظ کردن وجود ندارد. بخش «نماهای سفارشی» (Custom views) را ببینید.
ایجاد
آرگومانهای ارسالی به :compare هفت دستهبندی را تشکیل میدهند که هر یک پیشوند مخصوص خود را داشته و مسئول ویژگی خاصی از عملیات است.
کدام
فایلها
مقایسه
شوند:
- ofboth - فایلهای
دو قاب را در
برابر
یکدیگر
مقایسه
میکند؛
- ofone - فایلهای
همان
دایرکتوری
را مقایسه
میکند.
چگونگی
مقایسه
فایلها:
- byname - تنها بر
اساس نام
آنها؛
- bysize - تنها بر
اساس
اندازه
آنها؛
- bycontents - بر اساس
دادههای
موجود در
آنها
(ترکیبی از
اندازه و
هشِ قطعه
کوچکی از
محتوا
بهعنوان
تقریب اول
استفاده
میشود،
بنابراین
نگران
فایلهای
بزرگ
نباشید؛
فایلهای
غیرمعمولی
مانند pipeها
خالی فرض
میشوند).
کدام
فایلها
نمایش داده
شوند:
- listall - همه
فایلها؛
- listunique - تنها
فایلهای
یکتا؛
- listdups - تنها
فایلهای
تکراری.
چگونگی
گروهبندی
نتایج (در
صورت مشخص
شدن "ofone"
بیاثر است):
- groupids - فایلهای
یکسان
همواره در
خروجی کنار
یکدیگر
قرار
میگیرند؛
- grouppaths - اولویت
با ترتیب
سیستم فایل
است (این
مورد
همچنین
امکان
نمایش
فایلهای
همنام را
بهعنوان
عدمتطابق
فراهم
میکند).
کدام
فایلها
نادیده
گرفته شوند:
- skipempty - نادیده
گرفتن
فایلهای
خالی.
تنظیمات
جزئی
مقایسه:
- withicase -
نادیدهگرفتن
بزرگی و
کوچکی حروف
هنگام
مقایسه
نام/مسیر
فایلها؛
- withrcase - رعایت
بزرگی و
کوچکی حروف
هنگام
مقایسه
نام/مسیر
فایلها.
کدام
نتایج نشان
داده شوند
(برای
مقایسه در
یک قاب
منفرد
بیاثر است):
- showidentical - کنترل
نمایش
فایلهای
یکسان؛
- showdifferent - کنترل
نمایش
فایلهای
تغییریافته؛
- showuniqueleft - کنترل
نمایش
فایلهای
یکتای
بالا/چپ؛
- showuniqueright - کنترل
نمایش
فایلهای
یکتای
پایین/راست.
هر آرگومان میتواند چندین بار تکرار شود؛ راستترین آرگومان در گروه، رفتار را تعیین میکند. همه آرگومانها به جای جایگزینی رفتار پیشفرض، آن را تغییر میدهند.
هنگامی که هیچیک از "withicase" و "withrcase" مشخص نشده باشد، حساسیت به بزرگی و کوچکی حروف به سیستمعامل در حال اجرا و سیستم فایلی که فایلها روی آن قرار دارند بستگی دارد.
خروج
مقایسه دو نما موجب ورود آنها به یک وضعیت ویژه میشود که بر بستر نماهای سفارشی پیادهسازی شده است. هر دو نما زمانی این وضعیت را ترک میکنند که یکی از آنها از حالت سفارشی خارج شود. نماهای سفارشی با تغییر مکان یا در نتیجه دستوری مانند :regular پایان مییابند؛ رفتن به دایرکتوری والد (مانند کلید h یا دستور `:cd ..`) بدون تغییر مکان، نما را به وضعیت عادی بازمیگرداند. برای جزئیات بیشتر بخش «نماهای سفارشی» (Custom views) را ببینید.
مثالها
رفتارهای پیشفرض با احتمالاً رایجترین کاربرد یعنی مقایسه فایلها در دو درخت با گروهبندی بر اساس مسیرها همخوانی دارند، بنابراین موارد زیر معادل یکدیگرند:
:compare :compare bycontents grouppaths :compare bycontents listall ofboth grouppaths :compare showidentical showdifferent showuniqueleft showuniqueright
کاربرد دیگر، یافتن موارد تکراری در زیردرخت فعلی است:
:compare listdups ofone
دستور زیر فایلهایی را که در هر قاب یکتا هستند فهرست میکند:
:compare listunique
ظاهر
نما نمیتواند به نمای مشابه ls تغییر حالت دهد، زیرا قادر به نمایش دادههای مشابه diff نیست.
نماهای مقایسه دارای ستون دومی هستند که شناسه (id) فایل را نمایش میدهد؛ فایلهایی با شناسه یکسان، برابر در نظر گرفته میشوند. پیکربندی ستونهای نما از پیشتعریفشده است.
نوار وضعیت تنها نتیجه اولیه مقایسه را نشان میدهد و ممکن است بهروز نباشد.
رفتار
هنگامی که
دو نما در
برابر
یکدیگر
مقایسه
میشوند،
تغییرات
زیر در
رفتار عادی
اعمال
میگردد:
- نماها
بهصورت
همگام
پیمایش
میشوند
(گویی 'scrollbind'
تنظیم شده
است)؛
-
مکاننماهای
نماها
همگامسازی
میشوند؛
- پالایش
محلی (local filtering)
غیرفعال
میشود
(نتایج آن
معنادار
نخواهد
بود)؛
- کلید zd
گروههای
فایلهای
یکسان
مجاور را
مستثنی
میکند، 1zd
رفتار
معمول را
ارائه
میدهد؛
- مرتبسازی
بهطور
دائم
غیرفعال
میشود
(ترتیب ثابت
است)؛
- فایلهای
حذفشده،
جفتهای
متقابل خود
را پنهان
میکنند؛
- خروج از یکی
از نماها
بلافاصله
به دیگری
پایان
میدهد؛
- تغییر نام
فایلها
مسدود
نمیشود،
اما لحاظ
نخواهد شد و
ممکن است
نیازمند
بازتولید
مقایسه
باشد؛
- مدخلهایی
که
نشاندهنده
عدم وجود
فایل معادل
هستند،
نامهای
خالی دارند
و
میتوانند
به همان شکل
تطبیق داده
شوند؛
- هنگامی که
فایلهای
یکتای هر دو
نما فهرست
میشوند،
نماهای
سفارشی
میتوانند
خالی
باشند؛ این
نبودِ
فایلهای
یکتا
بهروشنی
بیان
میشود.
یک نمای مقایسه تکی نیز ویژگیهای مشابهی دارد (مواردی که برای یک قاب منفرد قابل اعمال هستند).
فایلها
به این شیوه
گردآوری
میشوند:
- بهصورت
بازگشتی با
شروع از
مکان فعلی
نما؛
- فایلهای
نقطهدار (dot files)
در صورتی که
نما در لحظه
مقایسه
آنها را
پنهان کرده
باشد
مستثنی
میشوند،
فیلترهای
نام فایل
نیز رعایت
میشوند
بنابراین
در نهایت
آنچه را
میبینید
مقایسه
میکنید؛
-
دایرکتوریها
لحاظ
نمیشوند؛
- پیوندهای
نمادین به
دایرکتوریها
نادیده
گرفته
میشوند. در
هنگام
راهاندازی،
vifm چندین
متغیر را که
در طول اجرا
به کار
میروند
تعیین
میکند. این
متغیرها به
ترتیبی که
در زیر آمده
است تعیین
میشوند.
در
سیستمهای
nix* متغیر $HOME
معمولاً
موجود است و
به همان
صورت
استفاده
میشود. در
سیستمهای
Windows، دستور vifm
تلاش
میکند تا
دایرکتوری
خانگی صحیح
را به ترتیب
زیر پیدا
کند:
- متغیر $HOME؛
- متغیر $USERPROFILE
(تنها در Windows)؛
- ترکیبی از
متغیرهای $HOMEDRIVE
و $HOMEPATH (تنها در
Windows).
دستور vifm با
بررسی
مکانهای
زیر تلاش
میکند تا
دایرکتوری
پیکربندی
صحیح را
پیدا کند:
- متغیر $VIFM؛
- دایرکتوری
والد فایل
اجرایی
(تنها در Windows)؛
- دایرکتوری
$HOME/.vifm؛
- دایرکتوری
$APPDATA/Vifm (تنها در
Windows)؛
- دایرکتوری
$XDG_CONFIG_HOME/vifm؛
- دایرکتوری
$HOME/.config/vifm.
دستور vifm با
بررسی
مکانهای
زیر تلاش
میکند تا
فایل
پیکربندی
صحیح را
پیدا کند:
- متغیر $MYVIFMRC؛
- فایل vifmrc در
دایرکتوری
والد فایل
اجرایی
(تنها در Windows)؛
- فایل $VIFM/vifmrc.
پیکربندی (Configure)
برای توضیحات دربارهٔ $VIFM و $MYVIFMRC، بخش «راهاندازی (Startup)» در بالا را ببینید.
فایل vifmrc حاوی دستوراتی است که هنگام راهاندازی vifm اجرا خواهند شد. دو نوع از این فایل وجود دارد: سراسری و محلی. فایل سراسری در {prefix}/etc/vifm/vifmrc قرار دارد؛ برای الگوریتم جستجوی مورد استفاده جهت یافتن vifmrc محلی، به توضیحات متغیر $MYVIFMRC مراجعه کنید. فایل vifmrc سراسری پیش از فایل محلی بارگذاری میشود تا فایل محلی بتواند هر آنچه را که بهصورت سراسری پیکربندی شده است، بازتعریف کند.
از vifmrc برای اعمال تنظیمات، نگاشتها (mappings)، نوع فایلها (filetypes) و غیره استفاده کنید. برای استفاده از دستورهای چندخطی، پیش از هر خط بعدی یک اسلش قرار دهید (فاصلههای خالی قبل از اسلش نادیده گرفته میشوند، اما تمام فاصلههای انتهای خطوط حفظ میشوند). برای مثال:
set
\smartcase
معادل "setsmartcase" است. در حالی که
set<space here>
\ smartcase
معادل "set smartcase" خواهد بود.
فایل $VIFM/vifminfo حاوی وضعیت عمومی برنامه است. شما میتوانید با تنظیم گزینهٔ 'vifminfo' تعیین کنید چه مواردی در vifminfo ذخیره شوند. vifm همواره هنگام خروج این فایل را مینویسد، مگر اینکه گزینهٔ 'vifminfo' خالی باشد. نشانها (marks)، بوکمارکها (bookmarks)، دستورها، تاریخچهها، نوع فایلها (filetypes)، نمایشدهندههای فایل (fileviewers) و ثباتها (registers) در این فایل با پیکربندی vifm (که اولویت بالاتری دارد) ادغام میشوند.
بهطور کلی، پیکربندی زمان اجرا (runtime) هنگام ادغام اولویت بیشتری دارد، اما استثناهایی وجود دارد:
- پشتهٔ دایرکتوری (directory stack) ذخیرهشده در فایل رونویسی نمیشود، مگر اینکه چیزی در نمونهٔ vifm که ادغام را انجام میدهد تغییر کرده باشد؛
- هر نشان یا بوکمارک با یک برچسب زمان (timestamp) علامتگذاری میشود، تا مقدار جدیدتر توسط مقدار قدیمیتر رونویسی نشود؛ بنابراین بدون در نظر گرفتن اینکه از کجا آمده باشد، مقدار جدیدتر اولویت دارد؛
- تمام تاریخچهها هنگام ذخیرهسازی با برچسب زمان علامتگذاری میشوند؛ این بدان معناست که آخرین نمونهای که خارج میشود، موارد خود را در بالای فهرست قرار میدهد؛
- تبها (tabs) تنها در صورتی ادغام میشوند که هر دوی نمونهٔ فعلی و وضعیت ذخیرهشده دقیقاً شامل یک تب از هر نوعی باشند.
دایرکتوری $VIFM/scripts میتواند حاوی اسکریپتهای شل (shell scripts) باشد. vifm متغیر محیطی PATH خود را ویرایش میکند تا به کاربر اجازه دهد آن اسکریپتها را بدون مشخص کردن مسیر کامل اجرا کند. تمام زیردایرکتوریهای $VIFM/scripts نیز به PATH اضافه خواهند شد. اسکریپت موجود در یک زیردایرکتوری بر اسکریپت همنام در تمام دایرکتوریهای والد خود اولویت دارد و آن را میپوشاند.
دایرکتوریهای $VIFM/colors/ و {prefix}/etc/vifm/colors/ حاوی طرحهای رنگی (color schemes) هستند. طرحهای رنگی موجود به همین ترتیب جستجو میشوند؛ بنابراین در صورت تداخل نام، طرح موجود در $VIFM/colors/ اولویت خواهد داشت.
هر طرح رنگی باید پسوند ".vifm" داشته باشد. قبلاً اینگونه نبود و به همین دلیل، قوانین زیر هنگام جستجو اعمال میشوند:
- اگر هیچ فایلی با پسوند .vifm وجود نداشته باشد، تمام فایلهای عادی فهرست میشوند؛
- در غیر این صورت، تنها فایلهای دارای پسوند .vifm فهرست میشوند (و پسوند آنها حذف میشود).
نشستها (Sessions)
نشستها (Sessions) روشی برای داشتن چندین پیکربندی ماندگار زمان اجرا فراهم میکنند. میتوانید آنها را به عنوان فایلهای vifminfo سطح دوم در نظر بگیرید که علاوه بر فایل سطح اولِ مورد استفاده توسط تمام نشستها وجود دارند. به عبارت دیگر، آنها جایگزینی برای فایل vifminfo که بدون نشستها وجود دارد نیستند، بلکه مکملی برای آن به شمار میروند. میتوان گزینهٔ 'vifminfo' را خالی کرد و صرفاً به نشستها متکی شد، اما در عمل ممکن است فرد بخواهد وضعیتی را میان نمونهها در نشستهای مختلف به اشتراک بگذارد یا برای کارهایی که به یک نشست مستقل نیاز ندارند، وضعیتی «خارج از نشست» داشته باشد.
این امر به ساختاری دوسطحی میانجامد که در آن دادههای فایلهای نشست اولویت بالاتری نسبت به دادههای فایلهای vifminfo دارند (در مواردی که این موضوع منطقی باشد) و از همان قوانینی پیروی میکنند که ادغام فایل vifminfo بر آن استوار است. علاوه بر این، موارد تاریخچه از فایلهای نشست هرگز پیش از موارد تاریخچه از فایل vifminfo مرتب نمیشوند.
قالب (Format)
نشستها قالبی مشابه فایلهای vifminfo دارند، از دنبالهای از دستورهای خط فرمان تشکیل نشدهاند و قرار نیست از طریق دستور :source فراخوانی و اجرا شوند.
ذخیرهسازی و نامگذاری (Storage and naming)
دایرکتوری `$VIFM/sessions/` به عنوان محلی برای ذخیرهٔ نشستها عمل میکند. در نتیجه، نامها باید نامهای معتبر فایل باشند. ساختار این محل ذخیره مسطح (flat) است؛ به این معنی که هیچ زیردایرکتوریای وجود ندارد و به همین دلیل نام نشستها نمیتواند شامل اسلش باشد.
الگوی استفاده (Usage model)
برخلاف Vim، دستور vifm مدیریت اولیهٔ نشستها را خودکارسازی میکند. شما میتوانید با استفاده از امکانات داخلی، یک نشست را شروع کنید، بین نشستها جابهجا شوید (switch)، آنها را متوقف کرده یا حذف کنید.
نشست فعلی همزمان با ذخیره شدن vifminfo (در هنگام خروج عادی یا صراحتاً با دستور :write) و دقیقاً پیش از جابهجایی به نشستی دیگر ذخیره میشود. برای جلوگیری از ذخیرهسازی در این موارد، پیش از ادامه، از دستور :session برای جدا شدن (detach) از یک نشست (بدون ذخیره کردن) استفاده کنید.
موضوعات مرتبط (Related topics)
دستورها:
:session، :delsession
گزینهها:
'sessionoptions'
متغیرها: v:session
برنامه vifm
دارای
پشتیبانی
درونی از
سوار کردن (mount)
خودکار
سیستمفایلهای
FUSE است. این
ویژگی با
استفاده از
سازوکار
وابستگی
فایلها
پیادهسازی
شده است.
برای
فعالسازی
اتصالات
خودکار،
باید از یک
خط
برنامهی
قالببندیشدهی
ویژه در
دستورهای filetype
یا filextype
استفاده
کرد. این
خطوط از
ماکروهای
ویژهای
بهره
میبرند که
با
ماکروهای
دستورهای
غیرمرتبط
با FUSE تفاوت
دارند. در
حال حاضر سه
قالب
پشتیبانی
میشود:
1) FUSE_MOUNT از این قالب باید در مواردی استفاده شود که تمام اطلاعات لازم برای سوار کردن همهٔ فایلهای یک نوع بخصوص یکسان باشد؛ برای نمونه، سوار کردن فایلهای tar نیازی به گزینههای مختص به هر فایل ندارد.
خط قالب:
FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND]
نمونه دستور filetype:
:filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
2) FUSE_MOUNT2 این قالب امکان استفاده از فایلهایی با قالببندی ویژه را برای انجام سوار کردن فراهم میکند و برای سوار کردن سیستمهای دوردست، برای نمونه سیستمفایلهای دوردست از طریق ftp یا ssh، مفید است.
خط قالب:
FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]
نمونه دستور filetype:
:filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
محتوای نمونه فایل:
root@127.0.0.1:/
3) FUSE_MOUNT3
این قالب معادل FUSE_MOUNT است، اما مرحلهٔ پیاده کردن (unmount) را نادیده میگیرد. این قابلیت برای مواردی که نیازی به پیادهسازی نیست، مانند استفاده از AVFS، کاربرد دارد.
نمونه دستور :filetype:
:filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz,*.deb
\ {Mount with avfs}
\ FUSE_MOUNT3|mount-avfs %DESTINATION_DIR %SOURCE_FILE
نمونه اسکریپت کمکی `mount-avfs`:
#!/bin/sh dest=$1 file=$2 rmdir "$dest" ln -s "$HOME/.avfs$file#/" "$dest"
همهٔ
ماکروهای %
در زمان
اجرا توسط vifm
بسط داده
میشوند و
معانی زیر
را دارند:
- ماکروی %SOURCE_FILE
با مسیر
کامل فایل
انتخابشده
جایگزین
میشود؛
- ماکروی %DESTINATION_DIR
با مسیر
کامل
دایرکتوری
سوار کردن
جایگزین
میشود که vifm
آن را بر
اساس مقدار
گزینهٔ 'fusehome'
میسازد؛
- مقدار %PARAM از
خط اول فایل
(تمام خط) پر
میشود،
هرچند در
آینده ممکن
است به تمام
محتوای
فایل تغییر
یابد؛
- ماکروی %FOREGROUND
بدین
معناست که
میخواهید
دستور mount را
بهصورت یک
دستور عادی
اجرا کنید
(جهت فراهم
کردن ورودی
برای
برقراری
ارتباط
تعاملی با
برنامهٔ
سوارکننده
الزامی
است).
ماکروی %FOREGROUND اختیاری است. سایر ماکروها اجباری نیستند، اما دستورهای mount احتمالاً بدون آنها کار نخواهند کرد.
ماکروی %CLEAR نام منسوخشدهٔ %FOREGROUND است که هنوز پشتیبانی میشود، اما ممکن است در آینده حذف شود. استفاده از آن توصیه نمیشود.
برخلاف ماکروها در بخشهای دیگر، این ماکروها تنها در صورتی شناسایی میشوند که در انتهای یک دستور بیایند یا پس از آنها یک فاصله قرار گیرد. همچنین راهی برای گریز دادن (escape) کاراکتر % وجود ندارد. اینها محدودیتهایی تاریخی هستند که ممکن است در آینده برطرف شوند.
سیستمفایلهای سوارشدهٔ FUSE در دو حالت بهطور خودکار پیاده (unmount) خواهند شد:
- هنگامی که vifm بسته شود (با ZZ، :q و غیره یا زمانی که توسط یک سیگنال متوقف شود)؛
- هنگامی که صراحتاً نقطهٔ سوار کردن را با رفتن به دایرکتوری والد آن ترک کنید (با h، فشردن Enter روی "../" یا ":cd ..") و قاب دیگر در همان دایرکتوری یا زیردایرکتوریهای آن نباشد.
ظاهر نما (View look)
برنامه vifm از نمایش فهرست فایلها به دو شیوهٔ مختلف پشتیبانی میکند:
- در حالت جدولی، که در آن میتوان چندین ستون را با استفاده از گزینهٔ 'viewcolumns' تنظیم کرد (برای جزئیات به بخش «نمای ستونی» در ادامه مراجعه کنید)؛
- به شیوهٔ فهرست چندستونی که ظاهری تقریباً شبیه به خروجی دستور `ls -x` دارد (برای جزئیات به بخش «نمای شبیه به ls» در ادامه مراجعه کنید).
این ظاهر برای هر نما بهصورت محلی عمل میکند و میتوان آن را با تغییر دادن مقدار گزینهٔ بولی 'lsview' برگزید.
بسته به ظاهر نما، عملکرد برخی از کلیدها جهت حرکت طبیعیتر مکاننما تغییر میکند. این موضوع عمدتاً به h، j، k، l و سایر کلیدهای ناوبری مشابه مربوط میشود.
همچنین اگر برخی از گزینهها بر نمایش نما در ظاهرِ انتخابی تأثیری نداشته باشند، نادیده گرفته میشوند؛ برای نمونه مقدار 'viewcolumns' هنگامی که 'lsview' فعال باشد.
نمای شبیه به ls (ls-like view)
هنگامی که این ظاهر نما با فعال کردن گزینهٔ 'lsview' روشن شود، vifm فایلها را در چندین ستون نمایش میدهد. تعداد ستونها به طول طولانیترین نام فایل موجود در دایرکتوری جاری نما بستگی دارد. کل فهرست فایلها هنگام تغییر دایرکتوری، یا تغییر اندازهٔ ترمینال یا نما، بهطور خودکار بازآرایی (reflow) میشود.
این نما شبیه به خروجی دستور `ls -x` است، بنابراین فایلها از چپ به راست در سطرها فهرست میشوند.
در این حالت دستورهای دستکاری فایل (مانند d) بر خلاف کارکردشان در Vim، بهصورت خطبهخط عمل نمیکنند، چرا که چنین عملیاتی برای وظایف مدیریت فایل غیرمعمول خواهد بود. بدین ترتیب، برای نمونه، dd تنها فایل جاری را حذف میکند.
بهطور پیشفرض نما بهصورت سطری پر میشود، اما از 'lsoptions' میتوان برای پر کردن ستونی استفاده کرد.
توجه
داشته
باشید که
نمای درختی
(tree-view) و نمای
مقایسهای
(compare view) مانع از
نمایش نمای
شبیه به ls
میشوند.
ستونهای
نما با
فهرستی از
توصیفهای
ستون که با
کاما از هم
جدا
شدهاند
توصیف
میشوند،
که هر یک
دارای قالب
زیر است:
[ '-' | '*' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type | literal '}' '.'{0,3}
که در آن fw به
معنی عرض
کامل (full width)، tw به
معنی عرض
متن (text width)، خط
عمودی
نشاندهنده
«یا»ی
منطقی،
براکتها
نشاندهنده
بخشهای
اختیاری، و
آکولادها
بیانگر
بازه تکرار
برای نماد
ماقبل خود
هستند.
بنابراین
این ساختار
اساساً از
چهار بخش
تشکیل شده
است:
1.
مشخصکننده
اختیاری
ترازبندی
2.
مشخصکننده
اختیاری
عرض
3. نام اجباری
ستون
4.
مشخصکننده
اختیاری
برش
مشخصکننده ترازبندی
یک علامت منفی یا ستاره اختیاری بهعنوان نخستین نماد رشته است.
نوع ترازبندی متن درون یک ستون را مشخص میکند. از سه نوع پشتیبانی میشود:
- چپچین
set viewcolumns=-{name} - راستچین
(پیشفرض)
set viewcolumns={name} - تراز میانی
مانند تراز چپ است، اما هنگامی که متن از ستون بزرگتر باشد، از وسط بریده میشود (به طوری که ابتدا و انتهای فیلد همیشه قابل مشاهده است).
set viewcolumns=^{name} - تراز پویا
مانند تراز چپ است، اما هنگامی که متن از ستون بزرگتر باشد، ترازبندی در سمت راست انجام میشود (به طوری که بخشی از فیلد همیشه قابل مشاهده است).
set viewcolumns=*{name}
مشخصکننده عرض
یک عدد است که در پی آن یک علامت درصد میآید، دو عدد که با یک نقطه از هم جدا شدهاند (عدد دوم باید کمتر یا مساوی عدد اول باشد) یا یک عدد تکی.
عرض ستون و واحدهای آن را مشخص میکند. سه نوع اندازه وجود دارد:
- اندازه
مطلق - عرض
ستون بر حسب
نویسهها
مشخص
میشود
set viewcolumns=-100{name},20.15{ext}منجر به دو ستون با طولهای 100 و 20 و یک فضای رزروشده پنجنویسهای در سمت چپ ستون دوم میشود.
- اندازه
نسبی
(درصدی) - عرض
ستون بر حسب
درصدی از
عرض نما
مشخص
میشود
set viewcolumns=-80%{name},15%{ext},5%{mtime}منجر به سه ستون با طولهای 80/100، 15/100 و 5/100 از عرض نما میشود.
- اندازه
خودکار
(پیشفرض) -
عرض ستون
بهطور
خودکار
تعیین
میشود
set viewcolumns=-{name},{ext},{mtime}منجر به سه ستون با طول یکسوم عرض نما میشود. هیچ تنظیم اندازهای بر اساس محتوا انجام نمیگیرد، چرا که سرعت رندر را کاهش میدهد.
ستونهایی با انواع اندازهبندی مختلف را میتوان آزادانه در یک نما ترکیب کرد. اگرچه گاهی اوقات در صورتی که فضای کافی برای نمایش آنها وجود نداشته باشد، برخی ستونها ممکن است به صورت ناقص دیده شوند یا کاملاً ناپدید گردند.
محتویات ستون
این بخش معمولاً یک کلید مرتبسازی است که در آکولاد محصور شده است، مانند:
{name},{ext},{mtime}
انواع {name} و {iname} یکسان هستند و هر دو برای سازگاری با گزینه 'sort' حضور دارند.
انواع ستونهای زیر کلیدهای مرتبسازی متناظر ندارند:
- {root} - نمایش نام بدون پسوند (بهعنوان مکمل برای {ext})
- {fileroot} - نمایش نام بدون پسوند برای هر چیزی بهجز دایرکتوریها و پیوندهای نمادین به دایرکتوریها (بهعنوان مکمل برای {fileext})
آکولادهای خالی ({}) با ستون ثانویه پیشفرض برای کلید مرتبسازی اولیه جایگزین میشوند. بنابراین پس از دستور بعدی، نما تقریباً بهگونهای نمایش داده میشود که گویی 'viewcolumns' خالی بوده است، اما برای نامهای طولانی فایل علامت سهنقطه اضافه میشود:
set viewcolumns=-{name}..,6{}.
آخرین نوع مقدار ستون، یک رشته مستقیم (literal) است. این مقدار مستقیم بهازای هر ردیف بهعنوان مقدار ستون استفاده میشود. ساختار آن به صورت "{#literal}" است، مثالها:
" double-character pseudo-padding on both sides
set viewcolumns='2{#},*{name}..,{},2{#}'
" pseudo-border between columns
set viewcolumns='*{name}..,{#|},6{}'
" pseudo-border with padding between columns
set viewcolumns='*{name}..,{# | },6{}'
این قابلیت میتواند برای رسم جداکنندههای ستون استفاده شود. توجه داشته باشید که برای راحتی، مقادیر متنی مستقیم پیشفرضهای متفاوتی دارند: کوتاهسازی و اندازه مطلق تعیینشده بهطور خودکار، که معمولاً همان چیزی است که برای آنها نیاز دارید. هنگام استفاده از فاصلهها، خطوط عمودی و سایر نمادهای ویژه بهعنوان بخشی از مقادیر مستقیم، حتماً آنها را نقلقولگذاری (کوتیشن) یا اسکیپ کنید.
مشخصکننده برش
بین یک تا سه نقطه پس از آکولاد بسته در قالب ستون است.
نوع کوتاهسازی متن را در صورتی که در ستون جا نشود مشخص میکند. در حال حاضر از سه نوع پشتیبانی میشود:
- کوتاهسازی
- متن کوتاه
و بریده
میشود
set viewcolumns=-{name}.منجر به کوتاهسازی نامهایی میشود که برای جا شدن در نما بیش از حد طولانی هستند.
- افزودن
سهنقطه -
در صورت
نیاز
سهنقطه در
سمت چپ یا
راست
افزوده
میشود
set viewcolumns=-{name}..منجر به این میشود که در انتهای نامهای بیش از حد طولانی، سهنقطه درج گردد.
- هیچکدام
(پیشفرض) -
متن
میتواند
از مرزهای
ستون فراتر
رود
set viewcolumns=-{name}...,{ext}منجر به این میشود که نامهای طولانی فایل بتوانند تا حدی روی ستون ext نوشته شوند.
- بهعنوان طرح رنگی اصلی؛
- بهعنوان طرح رنگی محلی برای یک قاب (pane).
هر دو نوع با استفاده از دستور :colorscheme اما با ساختارهای متفاوت تنظیم میشوند:
- :colorscheme color_scheme_name - برای طرح رنگی اصلی؛
- :colorscheme color_scheme_name directory - برای طرحهای رنگی محلی.
ظاهر بخشهای مختلف TUI (واسط کاربری متنی) به این صورت تعیین میشود:
- عناصر Border، TabLine، TabLineSel، TopLineSel، TopLine، CmdLine، ErrorMsg، StatusLine، JobLine، SuggestBox، WildBox و WildMenu همیشه توسط طرح رنگی اصلی تعیین میشوند؛
- عناصر CurrLine، Selected، Directory، Link، BrokenLink، Socket، Device، Executable، Fifo، CmpMismatch، CmpUnmatched، CmpBlank، Win، AuxWin و OtherWin توسط طرح رنگی اصلی و مجموعهای از طرحهای رنگی محلی (که میتواند خالی باشد) تعیین میشوند.
ممکن است مجموعهای از طرحهای رنگی محلی وجود داشته باشد، زیرا آنها بر اساس ساختار سیستمفایل بهصورت سلسلهمراتبی مرتب شدهاند. برای مثال، با داشتن ساختار سیستمفایل زیر:
~ `-- bin | `-- myدو طرح رنگی:
# ~/.config/vifm/colors/for_bin.vifm highlight Win cterm=none ctermfg=white ctermbg=red highlight CurrLine cterm=none ctermfg=red ctermbg=black # ~/.config/vifm/colors/for_bin_my.vifm highlight CurrLine cterm=none ctermfg=green ctermbg=blackو این سه دستور در فایل vifmrc:
colorscheme Default colorscheme for_bin ~/bin colorscheme for_bin_my ~/bin/myفهرست فایلها برای هر سطح به این صورت خواهد بود:
- ~/ - طرح رنگی Default
پسزمینه مشکی
مکاننما با پسزمینه آبی - ~/bin/ - ترکیبی از
طرحهای
رنگی Default و for_bin
پسزمینه قرمز
مکاننما با پسزمینه مشکی و پیشزمینه قرمز - ~/bin/my/ - ترکیبی
از طرحهای
رنگی Default، for_bin و
for_bin_my
پسزمینه قرمز
مکاننما با پسزمینه مشکی و پیشزمینه سبز
دایرکتوری سطل زباله (Trash directory)
برنامه vifm از دایرکتوری سطل زباله پشتیبانی میکند که بهعنوان حافظه موقت برای فایلهای حذفشده یا فایلهایی که برش داده شدهاند (cut) استفاده میشود. استفاده از سطل زباله با گزینه 'trash' کنترل میشود و مسیر دقیق سطل زباله را میتوان با گزینه 'trashdir' تعیین کرد. دایرکتوری سطل زباله در vifm بهطور پیشفرض با سطل زباله سراسری سیستم تفاوت دارد، زیرا ممکن است میان مدیر فایلهای مختلف در نحوه ذخیره فایلهای حذفشده ناسازگاری وجود داشته باشد. با این حال میتوان 'trashdir' را روی "~/.local/share/Trash" تنظیم کرد تا از یک دایرکتوری سطل زباله «استاندارد» استفاده شود.
دو سناریو برای استفاده از سطل زباله در vifm وجود دارد:
- 1.
- بهعنوان مکانی برای نگهداری فایلهایی که با "d" برش خوردهاند و ممکن است در جای دیگری از سیستمفایل درج (paste) شوند.
- 2.
- بهعنوان ذخیرهگاهی برای فایلهایی که حذف شدهاند اما هنوز پاکسازی نهایی (purge) نشدهاند.
سناریوی اول از عملیات حذف ("d") برای انتقال فایلها به سطل زباله و از عملیات درج ("p") برای بازیابی فایلها از دایرکتوری سطل زباله استفاده میکند. توجه داشته باشید که این عملیات، فایلها را به دایرکتوری سطل زباله و از آن منتقل میکنند، که در صورت وجود پارتیشنهای مجزا یا درایوهای ریموت مونتشده بهصورت محلی، میتواند عملیاتی طولانیمدت باشد.
سناریوی دوم از عملیات حذف ("d") برای انتقال فایلها به دایرکتوری سطل زباله و از دستور خط فرمانی :empty برای پاکسازی نهایی تمامی فایلهای حذفشده قبلی استفاده میکند.
عملیات حذف و درج به ثباتها (registers) وابسته هستند که میتوانند به فایلهای درون دایرکتوری سطل زباله اشاره کنند. در حالت عادی، هیچ فایل ناموجودی در ثباتها قرار ندارد، اما vifm تغییرات درون دایرکتوری سطل زباله را ردیابی نمیکند؛ بنابراین در صورتی که دایرکتوری سطل زباله توسط عملیاتی غیر از موارد مشخصشده برای آن دستکاری شود، نباید انتظار داشت مقدار ثباتها کاملاً دقیق باشد. با این حال، این مسئله مشکلی در عملیات ایجاد نخواهد کرد، زیرا آنها فایلهای ناموجود را نادیده میگیرند.
تداخل نامها (Name conflicts)
هنگام کپی، جابهجایی یا ایجاد پیوندهای نمادین، ممکن است Vifm با یک تداخل نام مواجه شود: فایلی با همان نام از قبل در دایرکتوری مقصد وجود دارد. در این موارد Vifm پنجره گفتوگویی را نمایش میدهد و نحوه حل تداخل را جویا میشود.
کنشهای دردسترس:
- overwrite
جایگزین
کردن فایل
موجود با
فایل
ورودی.
- overwrite all
اعمال کنش overwrite
روی تمام
تداخلهای
بعدی در طول
همان
عملیات،
بدون پرسش
دوباره.
- skip
صرفنظر
کردن از کپی
یا
جابهجایی
فایلی که
باعث تداخل
شده است.
- skip all
صرفنظر
کردن از
تمام
فایلهای
تداخلی
بعدی بدون
اعلان.
- rename
وارد کردن
یک نام جدید
برای فایل
ورودی.
فشردن Enter
بدون تایپ
کردن نام
جدید، نام
قبلی را نگه
میدارد و
باعث نمایش
مجدد پنجره
گفتوگو
میشود.
- merge
برای
دایرکتوریها:
تنها کپی
کردن
فایلهای
ناموجود از
دایرکتوری
مبدأ به
دایرکتوری
موجود.
- merge all
اعمال کنش merge
روی تمام
تداخلهای
دایرکتوری
بعدی.
- append
اگر اندازه
فایل مقصد
کوتاهتر
باشد،
بایتهای
پایانیِ
ناموجود از
فایل مبدأ
به آن الحاق
میشوند.
مثال: اگر
اندازه
مبدأ 1000 بایت
و اندازه
مقصد 300 بایت
باشد، 700
بایت
پایانی
مبدأ الحاق
میشود. این
کنش
برای
ازسرگیری
عملیات کپی
متوقفشده
در نظر
گرفته شده
است.
نکات:
- پنجره
گفتوگوی
تداخل برای
دستورهای
:put، p، P، al و rl
ظاهر
میشود.
- گزینههای
حل تداخل
تنها روی
عملیات
فعلی اعمال
میشوند.
برای
فعالسازی
قابلیت
رونوشت
هنگام
نوشتن (copy-on-write) در
BTRFS روی
لینوکس،
پرچم "fastfilecloning"
از گزینهٔ
'iooptions' را تنظیم
کنید.
کپی کردن فایل درون یک سامانهٔ فایل XFS بهطور پیشفرض از reflinkها استفاده میکند. هر فایلی که از سامانهٔ فایل دیگری کپی شود، حتی اگر دارای فهرستی منطبق از extentهای XFS باشد، بدون reflink کپی خواهد شد. هنگام استفاده از برنامههای خارجی، تضمینی برای استفاده از reflink وجود ندارد. این رفتار روی لینوکس مشاهده شده است و لزوماً در سایر محیطها برقرار نیست.
کلاینت-سرور (Client-Server)
برنامهٔ vifm از اجرای از راه دور دستورهای حالت خط فرمان، تغییر دایرکتوریها از راه دور و ارزیابی عبارت پشتیبانی میکند. این کار با استفاده از آرگومانهای خط فرمان --remote و --remote-expr امکانپذیر است.
برای اجرای یک دستور از راه دور، آرگومان --remote را با -c <command> یا +<command> ترکیب کنید. به عنوان مثال:
vifm --remote -c 'cd /' vifm --remote '+cd /'
برای تغییر دایرکتوری بدون استفاده از دستورهای حالت خط فرمان، میتوان مسیرها را بلافاصله پس از آرگومان --remote مشخص کرد، مانند این:
vifm --remote / vifm --remote ~ vifm --remote /usr/bin /tmp
ارزیابی عبارت از راه دور میتواند برای استعلام اطلاعات دربارهٔ یک نمونه (instance)، به عنوان مثال مکان آن، مفید باشد:
vifm --remote-expr 'expand("%d")'
اگر چندین نمونهٔ در حال اجرا وجود داشته باشد، هدف میتواند با گزینهٔ --server-name مشخص شود (در غیر این صورت، اولین مورد از نظر ترتیب الفبایی استفاده میشود):
vifm --server-name work --remote ~/work/project
فهرست نامهای نمونههای در حال اجرا را میتوان از طریق گزینهٔ --server-list به دست آورد. نام نمونهٔ فعلی از طریق v:servername در دسترس است.
- v:servername
- نام سرورِ نمونهٔ vifm در حال اجرا. در صورت غیرفعال بودن قابلیت کلاینت-سرور، خالی است.
تغییر نام خارجی (External Renaming)
هنگامی که ویرایشگری برای ویرایش فهرست نام فایلها اجرا میشود، محتوای فایل موقت دارای قالب زیر است:
- 1.
- ترتیب خطوط با ترتیب فایلها در نما (view) مطابقت دارد.
- 2.
- خطوطی که با "#" شروع میشوند، توضیح (comment) هستند و نادیده گرفته میشوند.
- 3.
- بکاسلشِ تکی در ابتدای یک خط نادیده گرفته میشود، بنابراین فایلی که با یک بکاسلش شروع شود بهصورت "\#name" ظاهر خواهد شد.
اگر عملیاتی به دلیل وجود مشکلاتی در نام فایلها رد شد، بار بعد موارد زیر را به همین ترتیب خواهید دید:
- 1.
- آخرین خطا (در توضیحات).
- 2.
- نامهای اصلی فایلها (در توضیحات).
- 3.
- فهرست نامهای جدید که ناموفق بودند.
توجه داشته باشید که پلاگین Vim فهرست نامهای اصلی را استخراج کرده و آنها را در یک تقسیم عمودی (vertical split) نمایش میدهد.
میتوانید با حذف تمام خطوط غیرتوضیحی از بافر، تغییر نام را لغو کنید. این کار همچنین اطلاعات مربوط به ویرایشهای قبلی را پاک میکند.
استفاده از ماوس (Using mouse)
نکته: <ScrollWheelDown> در سیستمهای ۳۲ بیتی *nix در دسترس نیست، زیرا ncurses در آنجا از آن پشتیبانی نمیکند (محدودیت پیادهسازی).
نکته: این موارد در حال حاضر در نگاشتها (mappings) در دسترس نیستند.
حالت عادی (Normal Mode)
event position change action
cursor window
<LeftMouse> yes yes <cr> if cursor wasn't move
<LeftRelease> no yes
<MiddleMouse> no yes <c-e>
<MiddleRelease> no yes
<RightMouse> yes yes :file
<RightRelease> no yes
<ScrollWheelUp> no yes <c-y> or :tabprevious
<ScrollWheelDown> no yes <c-e> or :tabnext
کلیک کردن روی یا پیمایش بر روی یک قاب (pane) غیرفعال (شامل عنوان آن)، آن را فعال میکند و کار دیگری انجام نمیدهد. زبانهها هنگام قرار گرفتن ماوس روی آنها پیمایش میشوند.
کلیک کردن روی ستون میلر سمت چپ به دایرکتوری والد میرود و کلیک روی ستون سمت راست، مدخل فعلی را باز میکند.
حالت دیداری (Visual Mode)
event position selection action
cursor
<LeftMouse> yes update <cr> if cursor wasn't move
<LeftRelease> no
<MiddleMouse> no update <c-e>
<MiddleRelease> no
<RightMouse> no
<RightRelease> no
<ScrollWheelUp> no update <c-y>
<ScrollWheelDown> no update <c-e>
حالت خط فرمان (Command-line Mode)
event position action
cursor
<LeftMouse> yes
<LeftRelease> no
<MiddleMouse> no <c-n>
<MiddleRelease> no
<RightMouse> no
<RightRelease> no
<ScrollWheelUp> no <c-p>
<ScrollWheelDown> no <c-n>
حالت منو (Menu Mode)
event position action
cursor
<LeftMouse> yes <cr> if cursor wasn't moved
<LeftRelease> no
<MiddleMouse> no <c-e>
<MiddleRelease> no
<RightMouse> no
<RightRelease> no
<ScrollWheelUp> no <c-y>
<ScrollWheelDown> no <c-e>
حالت نما (view Mode)
event action
<ScrollWheelUp> k
<ScrollWheelDown> j
کلیک کردن یا پیمایش بر روی یک قاب غیرفعال (شامل عنوان آن)، در صورتی که حالت view برای بررسی یک فایل فعال نشده باشد، آن را جدا (detach) میکند.
افزونهای برای استفاده از vifm در vim به عنوان انتخابگر فایل.
دستورها:
:EditVifm انتخاب یک
یا چند فایل
برای باز
کردن در
بافر فعلی.
:Vifm نام
مستعار
برای :EditVifm.
:SplitVifm تقسیم
افقی بافر و
انتخاب یک
یا چند فایل
برای باز
کردن.
:VsplitVifm تقسیم
عمودی بافر
و انتخاب یک
یا چند فایل
برای باز
کردن.
:DiffVifm انتخاب یک
یا چند فایل
برای
مقایسه با
فایل فعلی
توسط
:vert diffsplit.
:TabVifm انتخاب یک
یا چند فایل
برای باز
کردن در
زبانهها
(تبها).
هر دستور تا دو آرگومان میپذیرد: دایرکتوری قاب چپ و دایرکتوری قاب راست. پس از بررسی آرگومانها، فرآیند vifm در یک حالت ویژهٔ «انتخابگر فایل» (file-picker) اجرا میشود. برای انتخاب فایلها کافی است آنها را با فشردن کلیدهای l، i یا Enter یا با اجرای دستور :edit باز کنید. اگر هیچ فایلی انتخاب نشده باشد، فایل زیر مکاننما باز میشود؛ در غیر این صورت تمام موارد انتخابشده به افزونه فرستاده شده و در vim باز میشوند.
این افزونه تنها دو تنظیم دارد: یک متغیر رشتهای به نام g:vifm_term تا کاربر بتواند دستور اجرای ترمینال گرافیکی را مشخص کند. بهطور پیشفرض مقدار آن برابر با 'xterm -e' است؛ و یک متغیر رشتهای دیگر به نام g:vifm_exec که بهطور پیشفرض برابر با "vifm" است و مسیر فایل اجرایی vifm را مشخص میکند. برای ارسال آرگومانها به vifm از g:vifm_exec_args استفاده کنید که بهطور پیشفرض خالی است.
برای استفاده از افزونه، فایل vifm.vim را در دایرکتوری سراسری vim/plugin سیستم یا درون ~/.vim/plugin کپی کنید.
اگر ترجیح میدهید از افزونه استفاده نکنید و آن فایل در دایرکتوری سراسری افزونههای سیستم قرار دارد، خط زیر را:
let loaded_vifm=1
به فایل ~/.vimrc خود اضافه کنید.
فهرست منوها (INDEX OF MENUS)
نگاشتها
(Mappings):
:amap, :anoremap
نگاشتها
در حالت
ناوبری
:cmap, :cnoremap
نگاشتها
در حالت خط
فرمان
:dmap, :dnoremap
نگاشتها
در حالت
گفتوگو
:mmap, :mnoremap
نگاشتها
در حالت منو
:nmap, :nnoremap
نگاشتها
در حالت
عادی
:qmap, :qnoremap
نگاشتها
در حالت
نمایش
:vmap, :vnoremap
نگاشتها
در حالت
بصری
بسطهای
حالت خط
فرمان:
:cabbrev, :cnoreabbrev
کوتاهنوشتهای
خط فرمان
:command دستورهای
کاربر
وابستگیهای
برنامه:
:file
برنامههای
تعیینشده
برای نوع
فایل
:filetype
وابستگیهای
برنامه
برای یک
فایل
:fileviewer
وابستگیهای
نمایشدهنده
برای یک
فایل
:filextype
وابستگیهای
برنامههای
گرافیکی
برای یک
فایل
دستورهای
خارجی:
:apropos نتایج
اجرای 'aproposprg'
:find نتایج
اجرای 'findprg'
:grep نتایج
اجرای 'grepprg'
:locate نتایج
اجرای 'locateprg'
نشانها و
بوکمارکها:
:bmarks
بوکمارکها
(نشانهای
برچسبمانند)
:marks نشانها
موارد
مشابه
تاریخچه:
:chistory تاریخچهٔ
منوهای
ناوبری
:dirs پشتهٔ
دایرکتوریها
:history
تاریخچههای
نماها و
اعلانها
:undolist تاریخچهٔ
واگردانی/بازانجام
دایرکتوریهای
زبالهدان
و محتوای
آنها:
:lstrash فایلهای
درون
دایرکتوریهای
زبالهدان
:trashes
دایرکتوریهای
زبالهدان
غیرخالی
قابل
استفاده
درایوها و
حجمها:
:media مدیریت
رسانه
:volumes فهرست
حجمها
سایر
وضعیتهای
داخلی:
:colorscheme طرحهای
رنگی
:display, :registers محتوای
ثباتها
:jobs کارهای
فعلی و
فرآیندهای
پسزمینه
:plugins
افزونهها
:version, :vifm اطلاعات
نسخه و زمان
اجرا
ماکروهایی
که منو
ایجاد
میکنند:
%m خروجی
دریافتشده
از یک دستور
%M مشابه %m،
اما همراه
با ناوبری
به
فایلها
رزرو شده (RESERVED)
نامهای دستورهای زیر رزرو شدهاند و نباید برای دستورهای کاربر استفاده شوند:
g[lobal]
v[global]
محیط (ENVIRONMENT)
- VIFM
- به دایرکتوری اصلی پیکربندی اشاره دارد (معمولاً ~/.config/vifm/).
- MYVIFMRC
- به فایل اصلی پیکربندی اشاره دارد (معمولاً ~/.config/vifm/vifmrc).
این متغیرهای محیطی درون vifm معتبر هستند و همچنین میتوان با مقداردهی برخی از آنها پیش از اجرای vifm، آن را پیکربندی کرد.
هنگامی که $MYVIFMRC تنظیم نشده باشد، به صورت $VIFM/vifmrc ساخته میشود (استثنا برای Windows: فایل vifmrc در همان دایرکتوری vifm.exe اولویت بالاتری نسبت به $VIFM/vifmrc دارد).
برای جزئیات بیشتر به بخش «Startup» در بالا مراجعه کنید.
- VIFM_FUSE_FILE
- هنگام
اجرای
دستورهای
خارجی، این
متغیر روی
مسیر کامل
فایلی
تنظیم
میشود که
برای آغاز
سوار کردن FUSE
از
نزدیکترین
نقطهٔ
اتصال به
سمت بالای
دایرکتوری
قاب فعلی
استفاده
شده است.
این متغیر
خارج از
نقطهٔ
اتصال FUSE
تنظیم
نمیشود.
زمانی که vifm
درون
مالتیپلکسر
ترمینال
استفاده
میشود،
سعی میکند
این متغیر
را نیز
تنظیم کند
(بهخودیخود
به این روش
کار
نمیکند).
vifm-convert-dircolors(1), vifm-pause(1)
وبسایت: https://vifm.info
پرسش و پاسخ: https://q2a.vifm.info
ویکی: https://wiki.vifm.info
نویسنده (AUTHOR)
Vifm در ابتدا
توسط ksteen <ksteen@users.sourceforge.net>
ساخته شد.
در حال حاضر
توسط xaizek <xaizek@posteo.net>
توسعه داده
میشود.
| 31 May 2026 | vifm 0.14.4 |