1VIFM(1) General Commands Manual VIFM(1)
2
3
4
6 vifm - vi file manager
7
9 vifm [OPTION]...
10 vifm [OPTION]... path
11 vifm [OPTION]... path path
12
14 Vifm is an ncurses based file manager with vi like keybindings. If you
15 use vi, vifm gives you complete keyboard control over your files with‐
16 out having to learn a new set of commands.
17
19 vifm starts in the current directory unless it is given a different
20 directory on the command line or 'vifminfo' option includes "savedirs"
21 (in which case last visited directories are used as defaults).
22
23 - Read list of files from standard input stream and compose custom
24 view out of them (see "Custom views" section). Current working
25 directory is used as a base for relative paths.
26
27 <path> Starts Vifm in the specified path.
28
29 <path> <path>
30 Starts Vifm in the specified paths.
31
32 Specifying two directories triggers split view even when vifm was in
33 single-view mode on finishing previous run. To suppress this behaviour
34 :only command can be put in the vifmrc file.
35
36 When only one path argument is found on command-line, the left/top pane
37 is automatically set as the current view.
38
39 Paths to files are also allowed in case you want vifm to start with
40 some archive opened.
41
42 --select <path>
43 Open parent directory of the given path and select specified
44 file in it.
45
46 -f Makes vifm instead of opening files write selection to
47 $VIFM/vimfiles and quit.
48
49 --choose-files <path>|-
50 Sets output file to write selection into on exit instead of
51 opening files. "-" means standard output. Use empty value to
52 disable it.
53
54 --choose-dir <path>|-
55 Sets output file to write last visited directory into on exit.
56 "-" means standard output. Use empty value to disable it.
57
58 --delimiter <delimiter>
59 Sets separator for list of file paths written out by vifm.
60 Empty value means null character. Default is new line charac‐
61 ter.
62
63 --on-choose <command>
64 Sets command to be executed on selected files instead of opening
65 them. The command may use any of macros described in "Command
66 macros" section below. The command is executed once for whole
67 selection.
68
69 --logging[=<startup log path>]
70 Log some operational details $VIFM/log. If the optional startup
71 log path is specified and permissions allow to open it for writ‐
72 ing, then logging of early initialization (before value of $VIFM
73 is determined) is put there.
74
75 --server-list
76 List available server names and exit.
77
78 --server-name <name>
79 Name of target or this instance (sequential numbers are appended
80 on name conflict).
81
82 --remote
83 Sends the rest of the command line to another instance of vifm,
84 --server-name is treated just like any other argument and should
85 precede --remote on the command line. When there is no server,
86 quits silently. There is no limit on how many arguments can be
87 processed. One can combine --remote with -c <command> or +<com‐
88 mand> to execute commands in already running instance of vifm.
89 See also "Client-Server" section below.
90
91 --remote-expr
92 passes expression to vifm server and prints result. See also
93 "Client-Server" section below.
94
95 -c <command> or +<command>
96 Run command-line mode <command> on startup. Commands in such
97 arguments are executed in the order they appear in command line.
98 Commands with spaces or special symbols must be enclosed in dou‐
99 ble or single quotes or all special symbols should be escaped
100 (the exact syntax strongly depends on shell). "+" argument is
101 equivalent to "$" and thus picks last item of of the view.
102
103 --help, -h
104 Show a brief command summary and exit vifm.
105
106 --version, -v
107 Show version information and quit.
108
109 --no-configs
110 Skip reading vifmrc and vifminfo.
111
112
113 See "Startup" section below for the explanations on $VIFM.
114
116 Ctrl-C or Escape
117 cancel most operations (see "Cancellation" section below), clear
118 all selected files.
119
120 Ctrl-L clear and redraw the screen.
121
123 The basic vi key bindings are used to move through the files and pop-up
124 windows.
125
126 k, gk, or Ctrl-P
127 move cursor up one line.
128
129 j, gj or Ctrl-N
130 move cursor down one line.
131
132 h when 'lsview' is off move up one directory (moves to parent
133 directory node in tree view), otherwise move left one file.
134
135 l when 'lsview' is off move into a directory or launch a file,
136 otherwise move right one file. See "Selection" section below.
137
138 gg move to the first line of the file list.
139
140 G move to the last line in the file list.
141
142 gh go up one directory regardless of view representation (regular,
143 ls-like). Also can be used to leave custom views including tree
144 view.
145
146 gl or Enter
147 enter directory or launch a file. See "Selection" section
148 below.
149
150 H move to the first file in the window.
151
152 M move to the file in the middle of the window.
153
154 L move to the last file in the window.
155
156 Ctrl-F or Page Down
157 move forward one page.
158
159 Ctrl-B or Page Up
160 move back one page.
161
162 Ctrl-D jump back one half page.
163
164 Ctrl-U jump forward one half page.
165
166 n% move to the file that is n percent from the top of the list (for
167 example 25%).
168
169 0 or ^ move cursor to the first column. See 'lsview' option descrip‐
170 tion.
171
172 $ move cursor to the last column. See 'lsview' option descrip‐
173 tion.
174
175 Space switch file lists.
176
177 gt switch to the next tab (wrapping around).
178
179 {n}gt switch to the tab number {n} (wrapping around).
180
181 gT switch to the previous tab (wrapping around).
182
183 {n}gT switch to {n}-th previous tab.
184
186 Most movement commands also accept a count, 12j would move down 12
187 files.
188
189 [count]%
190 move to percent of the file list.
191
192 [count]j
193 move down [count] files.
194
195 [count]k
196 move up [count] files.
197
198 [count]G or [count]gg
199 move to list position [count].
200
201 [count]h
202 go up [count] directories.
203
205 zt redraw pane with file in top of list.
206
207 zz redraw pane with file in center of list.
208
209 zb redraw pane with file in bottom of list.
210
211 Ctrl-E scroll pane one line down.
212
213 Ctrl-Y scroll pane one line up.
214
216 Second character can be entered with or without Control key.
217
218 Ctrl-W H
219 move the pane to the far left.
220
221 Ctrl-W J
222 move the pane to the very bottom.
223
224 Ctrl-W K
225 move the pane to the very top.
226
227 Ctrl-W L
228 move the pane to the far right.
229
230
231 Ctrl-W h
232 switch to the left pane.
233
234 Ctrl-W j
235 switch to the pane below.
236
237 Ctrl-W k
238 switch to the pane above.
239
240 Ctrl-W l
241 switch to the right pane.
242
243
244 Ctrl-W b
245 switch to bottom-right window.
246
247 Ctrl-W t
248 switch to top-left window.
249
250
251 Ctrl-W p
252 switch to previous window.
253
254 Ctrl-W w
255 switch to other pane.
256
257
258 Ctrl-W o
259 leave only one pane.
260
261 Ctrl-W s
262 split window horizontally.
263
264 Ctrl-W v
265 split window vertically.
266
267
268 Ctrl-W x
269 exchange panes.
270
271 Ctrl-W z
272 quit preview pane or view modes.
273
274
275 Ctrl-W -
276 decrease size of the view by count.
277
278 Ctrl-W +
279 increase size of the view by count.
280
281 Ctrl-W <
282 decrease size of the view by count.
283
284 Ctrl-W >
285 increase size of the view by count.
286
287
288 Ctrl-W |
289 set current view size to count.
290
291 Ctrl-W _
292 set current view size to count.
293
294 Ctrl-W =
295 make size of two views equal.
296
297 For Ctrl-W +, Ctrl-W -, Ctrl-W <, Ctrl-W >, Ctrl-W | and Ctrl-W _ com‐
298 mands count can be given before and/or after Ctrl-W. The resulting
299 count is a multiplication of those two. So "2 Ctrl-W 2 -" decreases
300 window size by 4 lines or columns.
301
302 Ctrl-W | and Ctrl-W _ maximise current view by default.
303
305 Marks are set the same way as they are in vi.
306
307 You can use these characters for marks [a-z][A-Z][0-9].
308
309 m[a-z][A-Z][0-9]
310 set a mark for the file at the current cursor position.
311
312 '[a-z][A-Z][0-9]
313 navigate to the file set for the mark.
314
315
316 There are also several special marks that can't be set manually:
317
318 - ' (single quote) - previously visited directory of the view, thus
319 hitting '' allows switching between two last locations
320
321 - < - the first file of the last visually selected block
322
323 - > - the last file of the last visually selected block
324
326 /regular expression pattern
327 search for files matching regular expression in forward direc‐
328 tion and advance cursor to next match.
329
330 / perform forward search with top item of search pattern history.
331
332 ?regular expression pattern
333 search for files matching regular expression in backward direc‐
334 tion and advance cursor to previous match.
335
336 ? perform backward search with top item of search pattern history.
337
338 Trailing slash for directories is taken into account, so /\/ searches
339 for directories and symbolic links to directories. At the moment //
340 works too, but this can change in the future, so consider escaping the
341 slash if not typing pattern by hand.
342
343 Matches are automatically selected if 'hlsearch' is set. Enabling
344 'incsearch' makes search interactive. 'ignorecase' and 'smartcase'
345 options affect case sensitivity of search queries as well as local fil‐
346 ter and other things detailed in the description of 'caseoptions'.
347
348
349 [count]n
350 go to the next file matching last search pattern. Takes last
351 search direction into account.
352
353 [count]N
354 go to the previous file matching last search pattern. Takes
355 last search direction into account.
356
357 If 'hlsearch' option is set, hitting n/N to perform search and go to
358 the first matching item resets current selection in normal mode. It is
359 not the case if search was already performed on files in the directory,
360 thus selection is not reset after clearing selection with escape key
361 and hitting n/N key again.
362
363 Note: vifm uses extended regular expressions for / and ?.
364
365
366 [count]f[character]
367 search forward for file with [character] as first character in
368 name. Search wraps around the end of the list.
369
370 [count]F[character]
371 search backward for file with [character] as first character in
372 name. Search wraps around the end of the list.
373
374 [count];
375 find the next match of f or F.
376
377 [count],
378 find the previous match of f or F.
379
380 Note: f, F, ; and , wrap around list beginning and end when they are
381 used alone and they don't wrap when they are used as selectors.
382
384 There are three basic file filters:
385
386 - dot files filter (does not affect "." and ".." special directories,
387 whose appearance is controlled by the 'dotdirs' option), see 'dot‐
388 files' option;
389
390 - permanent filter;
391
392 - local filter (see description of the "=" normal mode command).
393
394 Permanent filter essentially allows defining a group of files names
395 which are not desirable to be seen by default, like temporary or backup
396 files, which might be created alongside normal ones. Just like you
397 don't usually need to see hidden dot files (files starting with a dot).
398 Local filter on the other hand is for temporary immediate filtering of
399 file list at hand, to get rid of uninterested files in the view or to
400 make it possible to use % range in a :command.
401
402 For the purposes of more deterministic editing permanent filter is
403 split into two parts:
404
405 - one edited explicitly via :filter command;
406
407 - another one which is edited implicitly via zf shortcut.
408
409 Files are tested against both parts and a match counts if at least one
410 of the parts matched.
411
412
413 Each file list has its own copy of each filter.
414
415 Filtered files are not checked in / search or :commands.
416
417 Files and directories are filtered separately. This is done by append‐
418 ing a slash to a directory name before testing whether it matches the
419 filter. Examples:
420
421
422 " filter directories which names end with '.files'
423 :filter /^.*\.files\/$/
424
425 " filter files which names end with '.d'
426 :filter {*.d}
427
428 " filter files and directories which names end with '.o'
429 :filter /^.*\.o\/?$/
430
431 Note: vifm uses extended regular expressions.
432
433 The basic vim folding key bindings are used for managing filters.
434
435
436 za toggle visibility of dot files.
437
438 zo show dot files.
439
440 zm hide dot files.
441
442 zf add selected files to permanent filter.
443
444 zO reset permanent filter.
445
446 zR save and reset all filters.
447
448 zr clear local filter.
449
450 zM restore all filters (undoes last zR).
451
452 zd exclude selection or current file from a custom view. Does
453 nothing for regular view. For tree view excluding directory
454 excludes that sub-tree. For compare views zd hides group of
455 adjacent identical files, count can be specified as 1 to exclude
456 just single file or selected items instead. Files excluded this
457 way are not counted as filtered out and can't be returned unless
458 view is reloaded.
459
460 =regular expression pattern
461 filter out files that don't match regular expression. Whether
462 view is updated as regular expression is changed depends on the
463 value of the 'incsearch' option. This kind of filter is auto‐
464 matically reset when directory is changed.
465
467 [count]:
468 enter command line mode. [count] generates range.
469
470 q: open external editor to prompt for command-line command. See
471 "Command line editing" section for details.
472
473 q/ open external editor to prompt for search pattern to be searched
474 in forward direction. See "Command line editing" section for
475 details.
476
477 q? open external editor to prompt for search pattern to be searched
478 in backward direction. See "Command line editing" section for
479 details.
480
481 q= open external editor to prompt for filter pattern. See "Command
482 line editing" section for details. Unlike other q{x} commands
483 this one doesn't work in Visual mode.
484
485 [count]!! and [count]!<selector>
486 enter command line mode with entered ! command. [count] modi‐
487 fies range.
488
489 Ctrl-O go backwards through directory history of current view. Nonex‐
490 istent directories are automatically skipped.
491
492 Ctrl-I if 'cpoptions' contains "t" flag, <tab> and <c-i> switch active
493 pane just like <space> does, otherwise it goes forward through
494 directory history of current view. Nonexistent directories are
495 automatically skipped.
496
497 Ctrl-G show a dialog with detailed information about current file. See
498 "Menus and dialogs" section for controls.
499
500 Shift-Tab
501 enter view mode (works only after activating view pane with
502 :view command).
503
504 ga calculate directory size. Uses cached directory sizes when pos‐
505 sible for better performance. As a special case calculating
506 size of ".." entry results in calculation of size of current
507 directory.
508
509 gA like ga, but force update. Ignores old values of directory
510 sizes.
511
512 If file under cursor is selected, each selected item is processed, oth‐
513 erwise only current file is updated.
514
515 gf find link destination (like l with 'followlinks' off, but also
516 finds directories). On Windows additionally follows .lnk-files.
517
518 gF Same as gf, but resolves final path of the chain of symbolic
519 links.
520
521 gr only for MS-Windows
522 same as l key, but tries to run program with administrative
523 privileges.
524
525 av go to visual mode into selection amending state preserving cur‐
526 rent selection.
527
528 gv go to visual mode restoring last selection.
529
530 [reg]gs
531 when no register is specified, restore last t selection (similar
532 to what gv does for visual mode selection). If register is
533 present, then all files listed in that register and which are
534 visible in current view are selected.
535
536 gu<selector>
537 make names of selected files lowercase.
538
539 [count]guu and [count]gugu
540 make names of [count] files starting from the current one lower‐
541 case. Without [count] only current file is affected.
542
543 gU<selector>
544 make names of selected files uppercase.
545
546 [count]gUU and [count]gUgU
547 make names of [count] files starting from the current one upper‐
548 case. Without [count] only current file is affected.
549
550 e explore file in the current pane.
551
552 i handle file (even if it's an executable and 'runexec' option is
553 set).
554
555 cw change word is used to rename a file or files.
556
557 cW change WORD is used to change only name of file (without exten‐
558 sion).
559
560 cl change link target.
561
562 co only for *nix
563 change file owner.
564
565 cg only for *nix
566 change file group.
567
568 [count]cp
569 change file attributes (permission on *nix and properties on
570 Windows). If [count] is specified, it's treated as numerical
571 argument for non-recursive `chmod` command (of the form
572 [0-7]{3,4}). See "Menus and dialogs" section for controls.
573
574 [count]C
575 clone file [count] times.
576
577 [count]dd or d[count]selector
578 move selected file or files to trash directory (if 'trash'
579 option is set, otherwise delete). See "Trash directory" section
580 below.
581
582 [count]DD or D[count]selector
583 like dd and d<selector>, but omitting trash directory (even when
584 'trash' option is set).
585
586 Y, [count]yy or y[count]selector
587 yank selected files.
588
589 p copy yanked files to the current directory or move the files to
590 the current directory if they were deleted with dd or :d[elete]
591 or if the files were yanked from trash directory. See "Trash
592 directory" section below.
593
594 P move the last yanked files. The advantage of using P instead of
595 d followed by p is that P moves files only once. This isn't
596 important in case you're moving files in the same file system
597 where your home directory is, but using P to move files on some
598 other file system (or file systems, in case you want to move
599 files from fs1 to fs2 and your home is on fs3) can save your
600 time.
601
602 al put symbolic links with absolute paths.
603
604 rl put symbolic links with relative paths.
605
606 t select or unselect (tag) the current file.
607
608 u undo last change.
609
610 Ctrl-R redo last change.
611
612 dp in compare view of "ofboth grouppaths" kind, makes corresponding
613 entry of the other pane equal to the current one. The semantics
614 is as follows:
615 - nothing done for identical entries
616 - if file is missing in current view, its pair gets removed
617 - if file is missing or differs in other view, it's replaced
618 - file pairs are defined by matching relative paths
619 File removal obeys 'trash' option. When the option is enabled,
620 the operation can be undone/redone (although results won't be
621 visible automatically).
622 Unlike in Vim, this operation is performed on a single line
623 rather than a set of adjacent changes.
624
625 do same as dp, but applies changes in the opposite direction.
626
627 v or V enter visual mode, clears current selection.
628
629 [count]Ctrl-A
630 increment first number in file name by [count] (1 by default).
631
632 [count]Ctrl-X
633 decrement first number in file name by [count] (1 by default).
634
635 ZQ same as :quit!.
636
637 ZZ same as :quit.
638
639 . repeat last command-line command (not normal mode command) of
640 this run (does nothing right after startup or :restart command).
641 The command doesn't depend on command-line history and can be
642 used with completely disabled history.
643
644 ( go to previous group. Groups are defined by primary sorting
645 key. For name and iname members of each group have same first
646 letter, for all other sorting keys vifm uses size, uid, ...
647
648 ) go to next group. See ( key description above.
649
650 { speeds up navigation to closest previous entry of the opposite
651 type by moving to the first file backwards when cursor is on a
652 directory and to the first directory backwards when cursor is on
653 a file. This is essentially a special case of ( that is locked
654 on "dirs".
655
656 } same as {, but in forward direction.
657
658 [c go to previous mismatched entry in directory comparison view or
659 do nothing.
660
661 ]c go to next mismatched entry in directory comparison view or do
662 nothing.
663
664 [d go to previous directory entry or do nothing.
665
666 ]d go to next directory entry or do nothing.
667
668 [r same as :siblprev.
669
670 ]r same as :siblnext.
671
672 [R same as :siblprev!.
673
674 ]R same as :siblnext!.
675
676 [s go to previous selected entry or do nothing.
677
678 ]s go to next selected entry or do nothing.
679
680 [z go to first sibling of current entry.
681
682 ]z go to last sibling of current entry.
683
684 zj go to next directory sibling of current entry or do nothing.
685
686 zk go to previous directory sibling of current entry or do nothing.
687
689 You can use count with commands like yy.
690
691 [count]yy
692 yank count files starting from current cursor position downward.
693
694 Or you can use count with motions passed to y, d or D.
695
696 d[count]j
697 delete (count + 1) files starting from current cursor position
698 upward.
699
701 vifm supports multiple registers for temporary storing list of yanked
702 or deleted files.
703
704 Registers should be specified by hitting double quote key followed by a
705 register name. Count is specified after register name. By default
706 commands use unnamed register, which has double quote as its name.
707
708 Though all commands accept registers, most of commands ignores them
709 (for example H or Ctrl-U). Other commands can fill register or append
710 new files to it.
711
712 Presently vifm supports ", _, a-z and A-Z characters as register names.
713
714 As mentioned above " is unnamed register and has special meaning of the
715 default register. Every time when you use named registers (a-z and A-
716 Z) unnamed register is updated to contain same list of files as the
717 last used register.
718
719 _ is black hole register. It can be used for writing, but its list is
720 always empty.
721
722 Registers with names from a to z and from A to Z are named ones. Low‐
723 ercase registers are cleared before adding new files, while uppercase
724 aren't and should be used to append new files to the existing file list
725 of appropriate lowercase register (A for a, B for b, ...).
726
727 Registers can be changed on :empty command if they contain files under
728 trash directory (see "Trash directory" section below).
729
730 Registers do not contain one file more than once.
731
732 Example:
733
734 "a2yy
735
736 puts names of two files to register a (and to the unnamed register),
737
738 "Ad
739
740 removes one file and append its name to register a (and to the unnamed
741 register),
742
743 p or "ap or "Ap
744
745 inserts previously yanked and deleted files into current directory.
746
748 y, d, D, !, gu and gU commands accept selectors. You can combine them
749 with any of selectors below to quickly remove or yank several files.
750
751 Most of selectors are like vi motions: j, k, gg, G, H, L, M, %, f, F,
752 ;, comma, ', ^, 0 and $. But there are some additional ones.
753
754 a all files in current view.
755
756 s selected files.
757
758 S all files except selected.
759
760 Examples:
761
762 - dj - delete file under cursor and one below;
763
764 - d2j - delete file under cursor and two below;
765
766 - y6gg - yank all files from cursor position to 6th file in the list.
767
768 When you pass a count to whole command and its selector they are multi‐
769 plied. So:
770
771 - 2d2j - delete file under cursor and four below;
772
773 - 2dj - delete file under cursor and two below;
774
775 - 2y6gg - yank all files from cursor position to 12th file in the
776 list.
777
779 Visual mode has two generic operating submodes:
780
781 - plain selection as it is in Vim;
782
783 - selection editing submode.
784
785 Both modes select files in range from cursor position at which visual
786 mode was entered to current cursor position (let's call it "selection
787 region"). Each of two borders can be adjusted by swapping them via "o"
788 or "O" keys and updating cursor position with regular cursor motion
789 keys. Obviously, once initial cursor position is altered this way,
790 real start position becomes unavailable.
791
792 Plain Vim-like visual mode starts with cleared selection, which is not
793 restored on rejecting selection ("Escape", "Ctrl-C", "v", "V"). Con‐
794 trary to it, selection editing doesn't clear previously selected files
795 and restores them after reject. Accepting selection by performing an
796 operation on selected items (e.g. yanking them via "y") moves cursor to
797 the top of current selection region (not to the top most selected file
798 of the view).
799
800 In turn, selection editing supports three types of editing (look at
801 statusbar to know which one is currently active):
802
803 - append - amend selection by selecting elements in selection region;
804
805 - remove - amend selection by deselecting elements in selection
806 region;
807
808 - invert - amend selection by inverting selection of elements in
809 selection region.
810
811 No matter how you activate selection editing it starts in "append".
812 One can switch type of operation (in the order given above) via "Ctrl-
813 G" key.
814
815 Almost all normal mode keys work in visual mode, but instead of accept‐
816 ing selectors they operate on selected items.
817
818 Enter save selection and go back to normal mode not moving cursor.
819
820 av leave visual mode if in amending mode (restores previous selec‐
821 tion), otherwise switch to amending selection mode.
822
823 gv restore previous visual selection.
824
825 v, V, Ctrl-C or Escape
826 leave visual mode if not in amending mode, otherwise switch to
827 normal visual selection.
828
829 Ctrl-G switch type of amending by round robin scheme: append -> remove
830 -> invert.
831
832 : enter command line mode. Selection is cleared on leaving the
833 mode.
834
835 o switch active selection bound.
836
837 O switch active selection bound.
838
839 gu, u make names of selected files lowercase.
840
841 gU, U make names of selected files uppercase.
842
844 This mode tries to imitate the less program. List of builtin shortcuts
845 can be found below. Shortcuts can be customized using :qmap, :qnoremap
846 and :qunmap command-line commands.
847
848 Shift-Tab, Tab, q, Q, ZZ
849 return to normal mode.
850
851 [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter
852 scroll forward one line (or [count] lines).
853
854 [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P
855 scroll backward one line (or [count] lines).
856
857 [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space
858 scroll forward one window (or [count] lines).
859
860 [count]b, [count]Ctrl-B, [count]Alt-V
861 scroll backward one window (or [count] lines).
862
863 [count]z
864 scroll forward one window (and set window to [count]).
865
866 [count]w
867 scroll backward one window (and set window to [count]).
868
869 [count]Alt-Space
870 scroll forward one window, but don't stop at end-of-file.
871
872 [count]d, [count]Ctrl-D
873 scroll forward one half-window (and set half-window to [count]).
874
875 [count]u, [count]Ctrl-U
876 scroll backward one half-window (and set half-window to
877 [count]).
878
879 r, Ctrl-R, Ctrl-L
880 repaint screen.
881
882 R reload view preserving scroll position.
883
884 F toggle automatic forwarding. Roughly equivalent to periodic
885 file reload and scrolling to the bottom. The behaviour is simi‐
886 lar to `tail -F` or F key in less.
887
888 [count]/pattern
889 search forward for ([count]‐th) matching line.
890
891 [count]?pattern
892 search backward for ([count]‐th) matching line.
893
894 [count]n
895 repeat previous search (for [count]‐th occurrence).
896
897 [count]N
898 repeat previous search in reverse direction (for [count]‐th
899 occurrence).
900
901 [count]g, [count]<, [count]Alt-<
902 scroll to the first line of the file (or line [count]).
903
904 [count]G, [count]>, [count]Alt->
905 scroll to the last line of the file (or line [count]).
906
907 [count]p, [count]%
908 scroll to the beginning of the file (or N percent into file).
909
910 v invoke an editor to edit the current file being viewed. The
911 command for editing is taken from the 'vicmd'/'vixcmd' option
912 value and extended with middle line number prepended by a plus
913 sign and name of the current file.
914
915 All "Ctrl-W x" keys work the same was as in Normal mode. Active mode
916 is automatically changed on navigating among windows. When less-like
917 mode activated on file preview is left using one by "Ctrl-W x" keys,
918 its state is stored until another file is displayed using preview (it's
919 possible to leave the mode, hide preview pane, do something else, then
920 get back to the file and show preview pane again with previously stored
921 state in it).
922
924 These keys are available in all submodes of the command line mode: com‐
925 mand, search, prompt and filtering.
926
927 Down, Up, Left, Right, Home, End and Delete are extended keys and they
928 are not available if vifm is compiled with --disable-extended-keys
929 option.
930
931 Esc, Ctrl-C
932 leave command line mode, cancels input. Cancelled input is
933 saved into appropriate history and can be recalled later.
934
935 Ctrl-M, Enter
936 execute command and leave command line mode.
937
938 Ctrl-I, Tab
939 complete command or its argument.
940
941 Shift-Tab
942 complete in reverse order.
943
944 Ctrl-_ stop completion and return original input.
945
946 Ctrl-B, Left
947 move cursor to the left.
948
949 Ctrl-F, Right
950 move cursor to the right.
951
952 Ctrl-A, Home
953 go to line beginning.
954
955 Ctrl-E, End
956 go to line end.
957
958 Alt-B go to the beginning of previous word.
959
960 Alt-F go to the end of next word.
961
962 Ctrl-U remove characters from cursor position till the beginning of
963 line.
964
965 Ctrl-K remove characters from cursor position till the end of line.
966
967 Ctrl-H, Backspace
968 remove character before the cursor.
969
970 Ctrl-D, Delete
971 remove character under the cursor.
972
973 Ctrl-W remove characters from cursor position till the beginning of
974 previous word.
975
976 Alt-D remove characters from cursor position till the beginning of
977 next word.
978
979 Ctrl-T swap the order of current and previous character and move cursor
980 forward or, if cursor past the end of line, swap the order of
981 two last characters in the line.
982
983 Alt-. insert last part of previous command to current cursor position.
984 Each next call will insert last part of older command.
985
986 Ctrl-G edit command-line content in external editor. See "Command line
987 editing" section for details.
988
989 Ctrl-N recall more recent command-line from history.
990
991 Ctrl-P recall older command-line from history.
992
993 Up recall more recent command-line from history, that begins as the
994 current command-line.
995
996 Down recall older command-line from history, that begins as the cur‐
997 rent command-line.
998
999 Ctrl-] trigger abbreviation expansion.
1000
1002 The shortcuts listed below insert specified values into current cursor
1003 position. Last key of every shortcut references value that it inserts:
1004 - c - [c]urrent file
1005 - d - [d]irectory path
1006 - e - [e]xtension of a file name
1007 - r - [r]oot part of a file name
1008 - t - [t]ail part of directory path
1009
1010 - a - [a]utomatic filter
1011 - m - [m]anual filter
1012 - = - local filter, which is bound to "=" in normal mode
1013
1014 Values related to filelist in current pane are available through Ctrl-X
1015 prefix, while values from the other pane have doubled Ctrl-X key as
1016 their prefix (doubled Ctrl-X is presumably easier to type than upper‐
1017 case letters; it's still easy to remap the keys to correspond to names
1018 of similar macros).
1019
1020 Ctrl-X c
1021 name of the current file of the active pane.
1022
1023 Ctrl-X d
1024 path to the current directory of the active pane.
1025
1026 Ctrl-X e
1027 extension of the current file of the active pane.
1028
1029 Ctrl-X r
1030 name root of current file of the active pane.
1031
1032 Ctrl-X t
1033 the last component of path to the current directory of the
1034 active pane.
1035
1036 Ctrl-X Ctrl-X c
1037 name of the current file of the inactive pane.
1038
1039 Ctrl-X Ctrl-X d
1040 path to the current directory of the inactive pane.
1041
1042 Ctrl-X Ctrl-X e
1043 extension of the current file of the inactive pane.
1044
1045 Ctrl-X Ctrl-X r
1046 name root of current file of the inactive pane.
1047
1048 Ctrl-X Ctrl-X t
1049 the last component of path to the current directory of the inac‐
1050 tive pane.
1051
1052
1053 Ctrl-X a
1054 value of implicit permanent filter (old name "automatic") of the
1055 active pane.
1056
1057 Ctrl-X m
1058 value of explicit permanent filter (old name "manual") of the
1059 active pane.
1060
1061 Ctrl-X =
1062 value of local filter of the active pane.
1063
1064
1065 Ctrl-X /
1066 last pattern from search history.
1067
1069 vifm provides a facility to edit several kinds of data, that is usually
1070 edited in command-line mode, in external editor (using command speci‐
1071 fied by 'vicmd' or 'vixcmd' option). This has at least two advantages
1072 over built-in command-line mode:
1073 - one can use full power of Vim to edit text;
1074 - finding and reusing history entries becomes possible.
1075
1076 The facility is supported by four input submodes of the command-line:
1077 - command;
1078 - forward search;
1079 - backward search;
1080 - file rename (see description of cw and cW normal mode keys).
1081
1082 Editing command-line using external editor is activated by the Ctrl-G
1083 shortcut. It's also possible to do almost the same from Normal and
1084 Visual modes using q:, q/ and q? commands.
1085
1086 Temporary file created for the purpose of editing the line has the fol‐
1087 lowing structure:
1088
1089 1. First line, which is either empty or contains text already entered
1090 in command-line.
1091
1092 2. 2nd and all other lines with history items starting with the most
1093 recent one. Altering this lines in any way won't change history
1094 items stored by vifm.
1095
1096 After editing application is finished the first line of the file is
1097 taken as the result of operation, when the application returns zero
1098 exit code. If the application returns an error (see :cquit command in
1099 Vim), all the edits made to the file are ignored, but the initial value
1100 of the first line is saved in appropriate history.
1101
1103 This is the mode that appears when status bar content is so big that it
1104 doesn't fit on the screen. One can identify the mode by "-- More --"
1105 message at the bottom.
1106
1107 The following keys are handled in this mode:
1108
1109
1110 Enter, Ctrl-J, j or Down
1111 scroll one line down.
1112
1113 Backspace, k or Up
1114 scroll one line up.
1115
1116
1117 d scroll one page (half of a screen) down.
1118
1119 u scroll one page (half of a screen) up.
1120
1121
1122 Space, f or PageDown
1123 scroll down a screen.
1124
1125 b or PageUp
1126 scroll up a screen.
1127
1128
1129 G scroll to the bottom.
1130
1131 g scroll to the top.
1132
1133
1134 q, Escape or Ctrl-C
1135 quit the mode.
1136
1137 : switch to command-line mode.
1138
1140 Commands are executed with :command_name<Enter>
1141
1142 Commented out lines should start with the double quote symbol ("),
1143 which may be preceded by whitespace characters intermixed with colons.
1144 Inline comments can be added at the end of the line after double quote
1145 symbol, only last line of a multi-line command can contain such com‐
1146 ment. Not all commands support inline comments as their syntax con‐
1147 flicts with names of registers and fields where double quotes are
1148 allowed.
1149
1150 Most of the commands have two forms: complete and the short one. Exam‐
1151 ple:
1152
1153 :noh[lsearch]
1154
1155 This means the complete command is nohlsearch, and the short one is
1156 noh.
1157
1158 Most of command-line commands completely reset selection in the current
1159 view. However, there are several exceptions:
1160
1161 - `:invert s` most likely leaves some files selected;
1162
1163 - :normal command (when it doesn't leave command-line mode);
1164
1165 - :if and :else commands don't affect selection on successful execu‐
1166 tion.
1167
1168 '|' can be used to separate commands, so you can give multiple commands
1169 in one line. If you want to use '|' in an argument, precede it with
1170 '\'.
1171
1172 These commands see '|' as part of their arguments even when it's
1173 escaped:
1174
1175 :[range]!
1176 :autocmd
1177 :cabbrev
1178 :cmap
1179 :cnoreabbrev
1180 :cnoremap
1181 :command
1182 :dmap
1183 :dnoremap
1184 :filetype
1185 :fileviewer
1186 :filextype
1187 :map
1188 :mmap
1189 :mnoremap
1190 :nmap
1191 :nnoremap
1192 :noremap
1193 :normal
1194 :qmap
1195 :qnoremap
1196 :vmap
1197 :vnoremap
1198 :wincmd
1199 :windo
1200 :winrun
1201
1202 To be able to use another command after one of these, wrap it with the
1203 :execute command. An example:
1204
1205 if filetype('.') == 'reg' | execute '!!echo regular file' | endif
1206
1207 :[count]
1208
1209 :number
1210 move to the file number.
1211 :12 would move to the 12th file in the list.
1212 :0 move to the top of the list.
1213 :$ move to the bottom of the list.
1214
1215 :[count]command
1216 The only builtin :[count]command are :[count]d[elete] and
1217 :[count]y[ank].
1218
1219 :d3 would delete three files starting at the current file position
1220 moving down.
1221
1222 :3d would delete one file at the third line in the list.
1223
1224 :command [args]
1225
1226 :[range]!program
1227 execute command via shell. Accepts macros.
1228
1229 :[range]!command &
1230
1231 same as above, but the command is run in the background using vifm's
1232 means.
1233
1234 Programs that write to stderr create error dialogs showing errors of
1235 the command.
1236
1237 Note the space before ampersand symbol, if you omit it, command will be
1238 run in the background using job control of your shell.
1239
1240 Accepts macros.
1241
1242 :!!
1243
1244 :[range]!!command
1245 same as :!, but pauses before returning.
1246
1247 :!! repeat the last command.
1248
1249 :alink
1250
1251 :[range]alink[!?]
1252 create absolute symbolic links to files in directory of inactive
1253 view. With "?" prompts for destination file names in an edi‐
1254 tor. "!" forces overwrite.
1255
1256 :[range]alink[!] path
1257 create absolute symbolic links to files in directory specified
1258 by the path (absolute or relative to directory of inactive
1259 view).
1260
1261 :[range]alink[!] name1 name2...
1262 create absolute symbolic links of files in directory of other
1263 view giving each next link a corresponding name from the argu‐
1264 ment list.
1265
1266 :apropos
1267
1268 :apropos keyword...
1269 create a menu of items returned by the apropos command. Select‐
1270 ing an item in the menu opens corresponding man page. By
1271 default the command relies on the external "apropos" utility,
1272 which can be customized by altering value of the 'aproposprg'
1273 option. See "Menus and dialogs" section for controls.
1274
1275 :autocmd
1276
1277 :au[tocmd] {event} {pat} {cmd}
1278 register autocommand for the {event}, which can be:
1279 - DirEnter - triggered after directory is changed
1280 Event name is case insensitive.
1281
1282 {pat} is a comma-separated list of modified globs patterns,
1283 which can contain tilde or environment variables. All paths use
1284 slash ('/') as directory separator. The pattern can start with
1285 a '!', which negates it. Patterns that do not contain slashes
1286 are matched against the last item of the path only (e.g. "dir"
1287 in "/path/dir"). Literal comma can be entered by doubling it.
1288 Two modifications to globs matching are as follows:
1289 - * - never matches a slash (i.e., can signify single direc‐
1290 tory level)
1291 - ** - matches any character (i.e., can match path of arbi‐
1292 trary depth)
1293
1294 {cmd} is a :command or several of them separated with '|'.
1295
1296 Examples of patterns:
1297 - conf.d - matches conf.d directory anywhere
1298 - *.d - matches directories ending with ".d" anywhere
1299 - **.git - matches something.git, but not .git anywhere
1300 - **/.git/** - matches /path/.git/objects, but not /path/.git
1301 - **/.git/**/ - matches /path/.git/ only (because of trailing
1302 slash)
1303 - /etc/* - matches /etc/conf.d/, /etc/X11, but not
1304 /etc/X11/fs
1305 - /etc/**/*.d - matches /etc/conf.d, /etc/X11/conf.d, etc.
1306 - /etc/**/* - matches /etc/ itself and any file below it
1307 - /etc/**/** - matches /etc/ itself and any file below it
1308
1309 :au[tocmd] [{event}] [{pat}]
1310 list those autocommands that match given event-pattern combina‐
1311 tion.
1312 {event} and {pat} can be omitted to list all autocommands. To
1313 list any autocommands for specific pattern one can use * place‐
1314 holder in place of {event}.
1315
1316 :au[tocmd]! [{event}] [{pat}]
1317 remove autocommands that match given event-pattern combination.
1318 Syntax is the same as for listing above.
1319
1320 :apropos
1321 repeat last :apropos command.
1322
1323 :bmark
1324
1325 :bmark tag1 [tag2 [tag3...]]
1326 bookmark current directory with specified tags.
1327
1328 :bmark! path tag1 [tag2 [tag3...]]
1329 same as :bmark, but allows bookmarking specific path instead of
1330 current directory. This is for use in vifmrc and for bookmark‐
1331 ing files.
1332
1333 Path can contain macros that expand to single path (%c, %C, %d,
1334 %D) or those that can expand to multiple paths, but contain only
1335 one (%f, %F, %rx). The latter is done for convenience on using
1336 the command interactively. Complex macros that include spaces
1337 (e.g. "%c:gs/ /_") should be escaped.
1338
1339 :bmarks
1340
1341 :bmarks
1342 display all bookmarks in a menu.
1343
1344 :bmarks [tag1 [tag2...]]
1345 display menu of bookmarks that include all of the specified
1346 tags. See "Menus and dialogs" section for controls.
1347
1348 :bmgo
1349
1350 :bmgo [tag1 [tag2...]]
1351 when there are more than one match acts exactly like :bmarks,
1352 otherwise navigates to single match immediately (and fails if
1353 there is no match).
1354
1355 :cabbrev
1356
1357 :ca[bbrev]
1358 display menu of command-line mode abbreviations. See "Menus and
1359 dialogs" section for controls.
1360
1361 :ca[bbrev] lhs-prefix
1362 display command-line mode abbreviations which left-hand side
1363 starts with specified prefix.
1364
1365 :ca[bbrev] lhs rhs
1366 register new or overwrites existing abbreviation for command-
1367 line mode. rhs can contain spaces and any special sequences
1368 accepted in rhs of mappings (see "Mappings" section below).
1369 Abbreviations are expanded non-recursively.
1370
1371 :cnoreabbrev
1372
1373 :cnorea[bbrev]
1374 display menu of command-line mode abbreviations. See "Menus and
1375 dialogs" section for controls.
1376
1377 :cnorea[bbrev] lhs-prefix
1378 display command-line mode abbreviations which left-hand side
1379 starts with specified prefix.
1380
1381 :cnorea[bbrev] lhs rhs
1382 same as :cabbrev, but mappings in rhs are ignored during expan‐
1383 sion.
1384
1385 :cd
1386
1387 :cd or :cd ~ or :cd $HOME
1388 change to home directory.
1389
1390 :cd - go to the last visited directory.
1391
1392 :cd ~/dir
1393 change directory to ~/dir.
1394
1395 :cd /curr/dir /other/dir
1396 change directory of the current pane to /curr/dir and directory
1397 of the other pane to /other/dir. Relative paths are assumed to
1398 be relative to directory of current view. Command won't fail if
1399 one of directories is invalid. All forms of the command accept
1400 macros.
1401
1402 :cd! /dir
1403 same as :cd /dir /dir.
1404
1405 :cds
1406
1407 :cds[!] pattern string
1408 navigate to path obtained by substituting first match in current
1409 path. Arguments can include slashes, but starting first argu‐
1410 ment with a separator will activate below form of the command.
1411 Specifying "!" changes directory of both panes.
1412
1413 Available flags:
1414
1415 - i - ignore case (the 'ignorecase' and 'smartcase' options are not
1416 used)
1417
1418 - I - don't ignore case (the 'ignorecase' and 'smartcase' options are
1419 not used)
1420
1421 :cds[!]/pattern/string/[flags]
1422 same as above, but with :substitute-like syntax. Other punctua‐
1423 tion characters can be used as separators.
1424
1425 :change
1426
1427 :c[hange]
1428 show a dialog to alter properties of files.
1429
1430 :chmod
1431
1432 :[range]chmod
1433 display file attributes (permission on *nix and properties on
1434 Windows) change dialog.
1435
1436 :[range]chmod[!] arg...
1437 only for *nix
1438 change permissions for files. See `man 1 chmod` for arg format.
1439 "!" means set permissions recursively.
1440
1441 :chown
1442
1443 :[range]chown
1444 only for *nix
1445 same as co key in normal mode.
1446
1447 :[range]chown [user][:][group]
1448 only for *nix
1449 change owner and/or group of files. Operates on directories
1450 recursively.
1451
1452 :clone
1453
1454 :[range]clone[!?]
1455 clones files in current directory. With "?" vifm will open vi
1456 to edit file names. "!" forces overwrite. Macros are expanded.
1457
1458 :[range]clone[!] path
1459 clones files to directory specified with the path (absolute or
1460 relative to current directory). "!" forces overwrite. Macros
1461 are expanded.
1462
1463 :[range]clone[!] name1 name2...
1464 clones files in current directory giving each next clone a cor‐
1465 responding name from the argument list. "!" forces overwrite.
1466 Macros are expanded.
1467
1468 :colorscheme
1469
1470 :colo[rscheme]?
1471 print current color scheme name on the status bar.
1472
1473 :colo[rscheme]
1474 display a menu with a list of available color schemes. You can
1475 choose primary color scheme here. It is used for view if no
1476 directory specific colorscheme fits current path. It's also
1477 used to set border color (except view titles) and colors in
1478 menus and dialogs. See "Menus and dialogs" section for con‐
1479 trols.
1480
1481 :colo[rscheme] color_scheme_name
1482 change primary color scheme to color_scheme_name. In case of
1483 errors (e.g. some colors are not supported by terminal) either
1484 nothing is changed or color scheme is reset to builtin colors to
1485 ensure that TUI is left in a usable state.
1486
1487 :colo[rscheme] color_scheme_name directory
1488 associate directory with the color scheme. The directory argu‐
1489 ment can be either absolute or relative path when :colorscheme
1490 command is executed from command line, but mandatory should be
1491 an absolute path when the command is executed in scripts loaded
1492 at startup (until vifm is completely loaded).
1493
1494 :colo[rscheme] color_scheme_name color_scheme_name...
1495 loads the first color scheme in the order given that exists and
1496 is supported by the terminal. If none matches, current one
1497 remains unchanged. For example:
1498
1499 " use a separate color scheme for panes which are inside FUSE mounts
1500 execute 'colorscheme in-fuse' &fusehome
1501
1502 :comclear
1503
1504 :comc[lear]
1505 remove all user defined commands.
1506
1507 :command
1508
1509 :com[mand]
1510 display a menu of user commands. See "Menus and dialogs" sec‐
1511 tion for controls.
1512
1513 :com[mand] prefix
1514 display user defined commands that start with the prefix.
1515
1516 :com[mand] name action[ &]
1517 set or redefine a user command.
1518 Use :com[mand]! to overwrite a previously set command of the
1519 same name. Builtin commands can't be redefined.
1520 Unlike in vim, user commands do not have to start with a capital
1521 letter. However, command name cannot contain numbers or special
1522 symbols except for single trailing '?' or '!'.
1523 User commands are run in a shell by default (see below for syn‐
1524 tax of other options). To run a command in the background you
1525 must mark it as a background command by adding " &" after the
1526 command's action (e.g., `:com rm rm %f &`).
1527 User commands of all kinds have macros expanded in them. See
1528 "Command macros" section for more information.
1529
1530 :com[mand] name /pattern
1531 set search pattern.
1532
1533 :com[mand] name =pattern
1534 set local filter value.
1535
1536 :com[mand] name filter{:filter args}
1537 set file name filter (see :filter command description). For
1538 example:
1539
1540 " display only audio files
1541 :command onlyaudio filter/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
1542 " display everything except audio files
1543 :command noaudio filter!/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
1544
1545 :com[mand] name :commands
1546 set kind of an alias for internal commands (like in a shell).
1547 Passes range given to alias to an aliased command, so running
1548 :%cp after
1549 :command cp :copy %a
1550 equals
1551 :%copy
1552
1553 :compare
1554
1555 :compare [byname | bysize | bycontents | listall | listunique |
1556 listdups | ofboth | ofone | groupids | grouppaths | skipempty]...
1557 compare files in one or two views according the arguments. The
1558 default is "bycontents listall ofboth grouppaths". See "Compare
1559 views" section below for details. Tree structure is incompati‐
1560 ble with alternative representations, so values of 'lsview' and
1561 'millerview' options are ignored.
1562
1563 :copen
1564
1565 :cope[n]
1566 opens menu with contents of the last displayed menu with naviga‐
1567 tion to files by default, if any.
1568
1569 :copy
1570
1571 :[range]co[py][!?][ &]
1572 copy files to directory of other view. With "?" prompts for
1573 destination file names in an editor. "!" forces overwrite.
1574
1575 :[range]co[py][!] path[ &]
1576 copy files to directory specified with the path (absolute or
1577 relative to directory of other view). "!" forces overwrite.
1578
1579 :[range]co[py][!] name1 name2...[ &]
1580 copy files to directory of other view giving each next file a
1581 corresponding name from the argument list. "!" forces over‐
1582 write.
1583
1584 :cquit
1585
1586 :cq[uit][!]
1587 same as :quit, but also aborts directory choosing via
1588 --choose-dir (empties output file) and returns non-zero exit
1589 code.
1590
1591 :cunabbrev
1592
1593 :cuna[bbrev] lhs
1594 unregister command-line mode abbreviation by its lhs.
1595
1596 :cuna[bbrev] rhs
1597 unregister command-line mode abbreviation by its rhs, so that
1598 abbreviation could be removed even after expansion.
1599
1600 :delbmarks
1601
1602 :delbmarks
1603 remove bookmarks from current directory.
1604
1605 :delbmarks tag1 [tag2 [tag3...]]
1606 remove set of bookmarks that include all of the specified tags.
1607
1608 :delbmarks!
1609 remove all bookmarks.
1610
1611 :delbmarks! path1 [path2 [path3...]]
1612 remove bookmarks of listed paths.
1613
1614 :delcommand
1615
1616 :delc[ommand] user_command
1617 remove user defined command named user_command.
1618
1619 :delete
1620
1621 :[range]d[elete][!][ &]
1622 delete selected file or files. "!" means complete removal
1623 (omitting trash).
1624
1625 :[range]d[elete][!] [reg] [count][ &]
1626 delete selected or [count] files to the reg register. "!" means
1627 complete removal (omitting trash).
1628
1629 :delmarks
1630
1631 :delm[arks]!
1632 delete all marks.
1633
1634 :delm[arks] marks ...
1635 delete specified marks, each argument is treated as a set of
1636 marks.
1637
1638 :delsession
1639
1640 :delsession
1641 delete specified session if it was stored previously. Deleting
1642 current session doesn't detach it.
1643
1644 :display
1645
1646 :di[splay]
1647 display menu with registers content.
1648
1649 :di[splay] list ...
1650 display the contents of the numbered and named registers that
1651 are mentioned in list (for example "az to display "", "a and "z
1652 content).
1653
1654 :dirs
1655
1656 :dirs display directory stack in a menu. See "Menus and dialogs" sec‐
1657 tion for controls.
1658
1659 :echo
1660
1661 :ec[ho] [<expr>...]
1662 evaluate each argument as an expression and output them sepa‐
1663 rated with a space. See help on :let command for a definition
1664 of <expr>.
1665
1666 :edit
1667
1668 :[range]e[dit] [file...]
1669 open selected or passed file(s) in editor. Macros and environ‐
1670 ment variables are expanded.
1671
1672 :else
1673
1674 :el[se]
1675 execute commands until next matching :endif if all other condi‐
1676 tions didn't match. See also help on :if and :endif commands.
1677
1678 :elseif
1679
1680 :elsei[f] {expr1}
1681 execute commands until next matching :elseif, :else or :endif if
1682 conditions of previous :if and :elseif branches were evaluated
1683 to zero. See also help on :if and :endif commands.
1684
1685 :empty
1686
1687 :empty permanently remove files from all existing non-empty trash
1688 directories (see "Trash directory" section below). Trash direc‐
1689 tories which are specified via %r and/or %u also get deleted
1690 completely. Also remove all operations from undolist that have
1691 no sense after :empty and remove all records about files located
1692 inside directories from all registers. Removal is performed as
1693 background task with undetermined amount of work and can be
1694 checked via :jobs menu.
1695
1696 :endif
1697
1698 :en[dif]
1699 end conditional block. See also help on :if and :else commands.
1700
1701 :execute
1702
1703 :exe[cute] [<expr>...]
1704 evaluate each argument as an expression and join results sepa‐
1705 rated by a space to get a single string which is then executed
1706 as a command-line command. See help on :let command for a defi‐
1707 nition of <expr>.
1708
1709 :exit
1710
1711 :exi[t][!]
1712 same as :quit.
1713
1714 :file
1715
1716 :f[ile][ &]
1717 display menu of programs set for the file type of the current
1718 file. " &" forces running associated program in background.
1719 See "Menus and dialogs" section for controls.
1720
1721 :f[ile] arg[ &]
1722 run associated command that begins with the arg skipping opening
1723 menu. " &" forces running associated program in background.
1724
1725 :filetype
1726
1727 :filet[ype] pattern-list [{descr}]def_prog[ &],[{descr}]prog2[ &],...
1728 associate given program list to each of the patterns. Associ‐
1729 ated program (command) is used by handlers of l and Enter keys
1730 (and also in the :file menu). If you need to insert comma into
1731 command just double it (",,"). Space followed by an ampersand
1732 as two last characters of a command means running of the command
1733 in the background. Optional description can be given to each
1734 command to ease understanding of what command will do in the
1735 :file menu. Vifm will try the rest of the programs for an asso‐
1736 ciation when the default isn't found. When program entry
1737 doesn't contain any of vifm macros, name of current file is
1738 appended as if program entry ended with %c macro on *nix and %"c
1739 on Windows. On Windows path to executables containing spaces
1740 can (and should be for correct work with such paths) be double
1741 quoted. See "Patterns" section below for pattern definition and
1742 "Selection" section for how selection is handled. See also
1743 "Automatic FUSE mounts" section below. Example for zip archives
1744 and several actions:
1745
1746 filetype *.zip,*.jar,*.war,*.ear
1747 \ {Mount with fuse-zip}
1748 \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
1749 \ {View contents}
1750 \ zip -sf %c | less,
1751 \ {Extract here}
1752 \ tar -xf %c,
1753
1754 Note that on OS X when `open` is used to call an app, vifm is
1755 unable to check whether that app is actually available. So if
1756 automatic skipping of programs that aren't there is desirable,
1757 `open` should be replaced with an actual command.
1758
1759 :filet[ype] filename
1760 list (in menu mode) currently registered patterns that match
1761 specified file name. Same as ":filextype filename".
1762
1763 :filextype
1764
1765 :filex[type] pattern-list [{ description }] def_program,program2,...
1766 same as :filetype, but this command is ignored if not running in
1767 X. In X :filextype is equal to :filetype. See "Patterns" sec‐
1768 tion below for pattern definition and "Selection" section for
1769 how selection is handled. See also "Automatic FUSE mounts" sec‐
1770 tion below.
1771
1772 For example, consider the following settings (the order might
1773 seem strange, but it's for the demonstration purpose):
1774
1775 filetype *.html,*.htm
1776 \ {View in lynx}
1777 \ lynx
1778 filextype *.html,*.htm
1779 \ {Open with dwb}
1780 \ dwb %f %i &,
1781 filetype *.html,*.htm
1782 \ {View in links}
1783 \ links
1784 filextype *.html,*.htm
1785 \ {Open with firefox}
1786 \ firefox %f &,
1787 \ {Open with uzbl}
1788 \ uzbl-browser %f %i &,
1789
1790 If you're using vifm inside a terminal emulator that is running
1791 in graphical environment (when X is used on *nix; always on Win‐
1792 dows), vifm attempts to run application in this order:
1793
1794 1. lynx
1795 2. dwb
1796 3. links
1797 4. firefox
1798 5. uzbl
1799
1800 If there is no graphical environment (checked by presence of
1801 non-empty $DISPLAY or $WAYLAND_DISPLAY environment variable on
1802 *nix; never happens on Windows), the list will look like:
1803
1804 1. lynx
1805 2. links
1806
1807 Just as if all :filextype commands were not there.
1808
1809 The purpose of such differentiation is to allow comfortable use
1810 of vifm with same settings in desktop environment/through remote
1811 connection (SSH)/in native console.
1812
1813 Note that on OS X $DISPLAY isn't defined unless you define it,
1814 so :filextype should be used only if you set $DISPLAY in some
1815 way.
1816
1817 :filext[ype] filename
1818 list (in menu mode) currently registered patterns that match
1819 specified file name. Same as ":filetype filename".
1820
1821 :fileviewer
1822
1823 :filev[iewer] pattern-list command1,command2,...
1824 register specified list of commands as viewers for each of the
1825 patterns. Viewer is a command which output is captured and dis‐
1826 played in one of the panes of vifm after pressing "e" or running
1827 :view command. When the command doesn't contain any of vifm
1828 macros, name of current file is appended as if command ended
1829 with %c macro. Comma escaping and missing commands processing
1830 rules as for :filetype apply to this command. See "Patterns"
1831 section below for pattern definition.
1832
1833 Example for zip archives:
1834
1835 fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c, echo "No zip to preview:"
1836
1837 :filev[iewer] filename
1838 list (in menu mode) currently registered patterns that match
1839 specified filename.
1840
1841 :filter
1842
1843 :filter[!] {pattern}
1844 filter files matching the pattern out of directory listings.
1845 '!' controls state of filter inversion after updating filter
1846 value (see also 'cpoptions' description). Filter is matched
1847 case sensitively on *nix and case insensitively on Windows. See
1848 "File Filters" and "Patterns" sections.
1849
1850 Example:
1851
1852 " filter all files ending in .o from the filelist.
1853 :filter /.o$/
1854
1855
1856 :filter[!] {empty-pattern}
1857 same as above, but use last search pattern as pattern value.
1858
1859 Example:
1860
1861 :filter //I
1862
1863
1864 :filter
1865 reset filter (set it to an empty string) and show all files.
1866
1867 :filter!
1868 same as :invert.
1869
1870 :filter?
1871 show information on local, name and auto filters.
1872
1873 :find
1874
1875 :[range]fin[d] pattern
1876 display results of find command in the menu. Searches among
1877 selected files if any. Accepts macros. By default the command
1878 relies on the external "find" utility, which can be customized
1879 by altering value of the 'findprg' option.
1880
1881 :[range]fin[d] -opt...
1882 same as :find above, but user defines all find arguments.
1883 Searches among selected files if any.
1884
1885 :[range]fin[d] path -opt...
1886 same as :find above, but user defines all find arguments.
1887 Ignores selection and range.
1888
1889 :[range]fin[d]
1890 repeat last :find command.
1891
1892 :finish
1893
1894 :fini[sh]
1895 stop sourcing a script. Can only be used in a vifm script file.
1896 This is a quick way to skip the rest of the file.
1897
1898 :goto
1899
1900 :go[to]
1901 change directory if necessary and put specified path under the
1902 cursor. The path should be existing non-root path. Macros and
1903 environment variables are expanded.
1904
1905 :grep
1906
1907 :[range]gr[ep][!] pattern
1908 will show results of grep command in the menu. Add "!" to
1909 request inversion of search (look for lines that do not match
1910 pattern). Searches among selected files if any and no range
1911 given. Ignores binary files by default. By default the command
1912 relies on the external "grep" utility, which can be customized
1913 by altering value of the 'grepprg' option.
1914
1915 :[range]gr[ep][!] -opt...
1916 same as :grep above, but user defines all grep arguments, which
1917 are not escaped. Searches among selected files if any.
1918
1919 :[range]gr[ep][!]
1920 repeat last :grep command. "!" of this command inverts "!" in
1921 repeated command.
1922
1923 :help
1924
1925 :h[elp]
1926 show the help file.
1927
1928 :h[elp] argument
1929 is the same as using ':h argument' in vim. Use vifm-<something>
1930 to get help on vifm (tab completion works). This form of the
1931 command doesn't work when 'vimhelp' option is off.
1932
1933 :hideui
1934
1935 :hideui
1936 hide interface to show previous commands' output.
1937
1938 :highlight
1939
1940 :hi[ghlight]
1941 display information about all highlight groups active at the
1942 moment.
1943
1944 :hi[ghlight] clear
1945 reset all highlighting to builtin defaults and removed all file‐
1946 name-specific rules.
1947
1948 :hi[ghlight] clear ( {pat1,pat2,...} | /regexp/ )
1949 remove specified rule.
1950
1951 :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/ )
1952 display information on given highlight group or file name pat‐
1953 tern of color scheme used in the active view.
1954
1955 :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/[iI] )
1956 cterm=style | ctermfg=color | ctermbg=color
1957 set style (cterm), foreground (ctermfg) or/and background
1958 (ctermbg) parameters of highlight group or file name pattern for
1959 color scheme used in the active view.
1960
1961 All style values as well as color names are case insensitive.
1962
1963 Available style values (some of them can be combined):
1964 - bold
1965 - underline
1966 - reverse or inverse
1967 - standout
1968 - italic (on unsupported systems becomes reverse)
1969 - none
1970
1971 Available group-name values:
1972 - Win - color of all windows (views, dialogs, menus) and default color
1973 for their content (e.g. regular files in views)
1974 - AuxWin - color of auxiliary areas of windows
1975 - OtherWin - color of inactive pane
1976 - Border - color of vertical parts of the border
1977 - TabLine - tab line color (for 'tabscope' set to "global")
1978 - TabLineSel - color of the tip of selected tab (regardless of 'tab‐
1979 scope')
1980 - TopLine - top line color of the other pane
1981 - TopLineSel - top line color of the current pane
1982 - CmdLine - the command line/status bar color
1983 - ErrorMsg - color of error messages in the status bar
1984 - StatusLine - color of the line above the status bar
1985 - JobLine - color of job line that appears above the status line
1986 - WildMenu - color of the wild menu items
1987 - SuggestBox - color of key suggestion box
1988 - CurrLine - line at cursor position in active view
1989 - OtherLine - line at cursor position in inactive view
1990 - OddLine - color of every second entry line in a pane
1991 - LineNr - line number column of views
1992 - Selected - color of selected files
1993 - Directory - color of directories
1994 - Link - color of symbolic links in the views
1995 - BrokenLink - color of broken symbolic links
1996 - HardLink - color of regular files with more than one hard link
1997 - Socket - color of sockets
1998 - Device - color of block and character devices
1999 - Executable - color of executable files
2000 - Fifo - color of fifo pipes
2001 - CmpMismatch - color of mismatched files in side-by-side comparison
2002 by path
2003 - User1..User9 - 9 colors which can be used via %* 'statusline' macro
2004
2005 Available colors:
2006 - -1 or default or none - default or transparent
2007 - black and lightblack
2008 - red and lightred
2009 - green and lightgreen
2010 - yellow and lightyellow
2011 - blue and lightblue
2012 - magenta and lightmagenta
2013 - cyan and lightcyan
2014 - white and lightwhite
2015 - 0-255 - corresponding colors from 256-color palette
2016
2017 Light versions of colors are regular colors with bold attribute set.
2018 So order of arguments of :highlight command is important and it's bet‐
2019 ter to put "cterm" in front of others to prevent it from overwriting
2020 attributes set by "ctermfg" or "ctermbg" arguments.
2021
2022 For convenience of color scheme authors xterm-like names for 256 color
2023 palette is also supported. The mapping is taken from
2024 http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim Dupli‐
2025 cated entries were altered by adding an underscore followed by numeri‐
2026 cal suffix.
2027
2028 0 Black 86 Aquamarine1 172 Orange3
2029 1 Red 87 DarkSlateGray2 173 LightSalmon3_2
2030 2 Green 88 DarkRed_2 174 LightPink3
2031 3 Yellow 89 DeepPink4_2 175 Pink3
2032 4 Blue 90 DarkMagenta 176 Plum3
2033 5 Magenta 91 DarkMagenta_2 177 Violet
2034 6 Cyan 92 DarkViolet 178 Gold3_2
2035 7 White 93 Purple 179 LightGoldenrod3
2036 8 LightBlack 94 Orange4_2 180 Tan
2037 9 LightRed 95 LightPink4 181 MistyRose3
2038 10 LightGreen 96 Plum4 182 Thistle3
2039 11 LightYellow 97 MediumPurple3 183 Plum2
2040 12 LightBlue 98 MediumPurple3_2 184 Yellow3_2
2041 13 LightMagenta 99 SlateBlue1 185 Khaki3
2042 14 LightCyan 100 Yellow4 186 LightGoldenrod2
2043 15 LightWhite 101 Wheat4 187 LightYellow3
2044 16 Grey0 102 Grey53 188 Grey84
2045 17 NavyBlue 103 LightSlateGrey 189 LightSteelBlue1
2046 18 DarkBlue 104 MediumPurple 190 Yellow2
2047 19 Blue3 105 LightSlateBlue 191 DarkOliveGreen1
2048 20 Blue3_2 106 Yellow4_2 192 DarkOliveG‐
2049 reen1_2
2050 21 Blue1 107 DarkOliveGreen3 193 DarkSeaGreen1_2
2051 22 DarkGreen 108 DarkSeaGreen 194 Honeydew2
2052 23 DeepSkyBlue4 109 LightSkyBlue3 195 LightCyan1
2053 24 DeepSkyBlue4_2 110 LightSkyBlue3_2 196 Red1
2054 25 DeepSkyBlue4_3 111 SkyBlue2 197 DeepPink2
2055 26 DodgerBlue3 112 Chartreuse2_2 198 DeepPink1
2056 27 DodgerBlue2 113 DarkOliveGreen3_2 199 DeepPink1_2
2057 28 Green4 114 PaleGreen3_2 200 Magenta2_2
2058 29 SpringGreen4 115 DarkSeaGreen3 201 Magenta1
2059 30 Turquoise4 116 DarkSlateGray3 202 OrangeRed1
2060 31 DeepSkyBlue3 117 SkyBlue1 203 IndianRed1
2061 32 DeepSkyBlue3_2 118 Chartreuse1 204 IndianRed1_2
2062 33 DodgerBlue1 119 LightGreen_2 205 HotPink
2063 34 Green3 120 LightGreen_3 206 HotPink_2
2064 35 SpringGreen3 121 PaleGreen1 207 MediumOrchid1_2
2065 36 DarkCyan 122 Aquamarine1_2 208 DarkOrange
2066 37 LightSeaGreen 123 DarkSlateGray1 209 Salmon1
2067 38 DeepSkyBlue2 124 Red3 210 LightCoral
2068 39 DeepSkyBlue1 125 DeepPink4_3 211 PaleVioletRed1
2069 40 Green3_2 126 MediumVioletRed 212 Orchid2
2070 41 SpringGreen3_2 127 Magenta3 213 Orchid1
2071 42 SpringGreen2 128 DarkViolet_2 214 Orange1
2072 43 Cyan3 129 Purple_2 215 SandyBrown
2073 44 DarkTurquoise 130 DarkOrange3 216 LightSalmon1
2074 45 Turquoise2 131 IndianRed 217 LightPink1
2075 46 Green1 132 HotPink3 218 Pink1
2076 47 SpringGreen2_2 133 MediumOrchid3 219 Plum1
2077 48 SpringGreen1 134 MediumOrchid 220 Gold1
2078 49 MediumSpringGreen 135 MediumPurple2 221 LightGolden‐
2079 rod2_2
2080 50 Cyan2 136 DarkGoldenrod 222 LightGolden‐
2081 rod2_3
2082 51 Cyan1 137 LightSalmon3 223 NavajoWhite1
2083 52 DarkRed 138 RosyBrown 224 MistyRose1
2084 53 DeepPink4 139 Grey63 225 Thistle1
2085 54 Purple4 140 MediumPurple2_2 226 Yellow1
2086 55 Purple4_2 141 MediumPurple1 227 LightGoldenrod1
2087 56 Purple3 142 Gold3 228 Khaki1
2088 57 BlueViolet 143 DarkKhaki 229 Wheat1
2089 58 Orange4 144 NavajoWhite3 230 Cornsilk1
2090 59 Grey37 145 Grey69 231 Grey100
2091 60 MediumPurple4 146 LightSteelBlue3 232 Grey3
2092 61 SlateBlue3 147 LightSteelBlue 233 Grey7
2093 62 SlateBlue3_2 148 Yellow3 234 Grey11
2094 63 RoyalBlue1 149 DarkOliveGreen3_3 235 Grey15
2095 64 Chartreuse4 150 DarkSeaGreen3_2 236 Grey19
2096 65 DarkSeaGreen4 151 DarkSeaGreen2 237 Grey23
2097 66 PaleTurquoise4 152 LightCyan3 238 Grey27
2098 67 SteelBlue 153 LightSkyBlue1 239 Grey30
2099 68 SteelBlue3 154 GreenYellow 240 Grey35
2100 69 CornflowerBlue 155 DarkOliveGreen2 241 Grey39
2101 70 Chartreuse3 156 PaleGreen1_2 242 Grey42
2102 71 DarkSeaGreen4_2 157 DarkSeaGreen2_2 243 Grey46
2103 72 CadetBlue 158 DarkSeaGreen1 244 Grey50
2104 73 CadetBlue_2 159 PaleTurquoise1 245 Grey54
2105 74 SkyBlue3 160 Red3_2 246 Grey58
2106 75 SteelBlue1 161 DeepPink3 247 Grey62
2107 76 Chartreuse3_2 162 DeepPink3_2 248 Grey66
2108 77 PaleGreen3 163 Magenta3_2 249 Grey70
2109 78 SeaGreen3 164 Magenta3_3 250 Grey74
2110 79 Aquamarine3 165 Magenta2 251 Grey78
2111 80 MediumTurquoise 166 DarkOrange3_2 252 Grey82
2112 81 SteelBlue1_2 167 IndianRed_2 253 Grey85
2113 82 Chartreuse2 168 HotPink3_2 254 Grey89
2114 83 SeaGreen2 169 HotPink2 255 Grey93
2115 84 SeaGreen1 170 Orchid
2116 85 SeaGreen1_2 171 MediumOrchid1
2117
2118 There are two colors (foreground and background) and only one bold
2119 attribute. Thus single bold attribute affects both colors when
2120 "reverse" attribute is used in vifm run inside terminal emulator. At
2121 the same time linux native console can handle boldness of foreground
2122 and background colors independently, but for consistency with terminal
2123 emulators this is available only implicitly by using light versions of
2124 colors. This behaviour might be changed in the future.
2125
2126 Although vifm supports 256 colors in a sense they are supported by UI
2127 drawing library, whether you will be able to use all of them highly
2128 depends on your terminal. To set up terminal properly, make sure that
2129 $TERM in the environment you run vifm is set to name of 256-color ter‐
2130 minal (on *nixes it can also be set via X resources), e.g.
2131 xterm-256color. One can find list of available terminal names by list‐
2132 ing /usr/lib/terminfo/. Number of colors supported by terminal with
2133 current settings can be checked via "tput colors" command.
2134
2135 Here is the hierarchy of highlight groups, which you need to know for
2136 using transparency:
2137 JobLine
2138 SuggestBox
2139 StatusLine
2140 WildMenu
2141 User1..User9
2142 Border
2143 CmdLine
2144 ErrorMsg
2145 Win
2146 OtherWin
2147 AuxWin
2148 OddLine
2149 File name specific highlights
2150 Directory
2151 Link
2152 BrokenLink
2153 HardLink
2154 Socket
2155 Device
2156 Fifo
2157 Executable
2158 Selected
2159 CurrLine
2160 LineNr (in active pane)
2161 OtherLine
2162 LineNr (in inactive pane)
2163 TopLine
2164 TopLineSel
2165 TabLineSel (for pane tabs)
2166 User1..User9
2167 TabLine
2168 TabLineSel
2169 User1..User9
2170
2171 "none" means default terminal color for highlight groups at the first
2172 level of the hierarchy and transparency for all others.
2173
2174 Here file name specific highlights mean those configured via globs ({})
2175 or regular expressions (//). At most one of them is applied per file
2176 entry, namely the first that matches file name, hence order of :high‐
2177 light commands might be important in certain cases.
2178
2179 :history
2180
2181 :his[tory]
2182 display a menu with list of visited directories. See "Menus and
2183 dialogs" section for controls.
2184
2185 :his[tory] x
2186 x can be:
2187 d[ir] or . show directory history.
2188 c[md] or : show command line history.
2189 s[earch] or / show search history and search forward on l
2190 key.
2191 f[search] or / show search history and search forward on l
2192 key.
2193 b[search] or ? show search history and search backward on l
2194 key.
2195 i[nput] or @ show prompt history (e.g. on one file renam‐
2196 ing).
2197 fi[lter] or = show filter history (see description of the "="
2198 normal mode command).
2199 See "Menus and dialogs" section for controls.
2200
2201 :histnext
2202
2203 :histnext
2204 same as <c-i>. The main use case for this command is to work
2205 around the common pain point of <tab> and <c-i> being the same
2206 ASCII character: one could alter the terminal emulator settings
2207 to emit, for example, the `F1` keycode when Ctrl-I is pressed,
2208 then `:noremap <f1> :histnext<cr>` in vifm, add "t" flag to the
2209 'cpoptions', and thus have both <c-i> and <tab> working as
2210 expected.
2211
2212 :histprev
2213
2214 :histprev
2215 same as <c-o>.
2216
2217 :if
2218
2219 :if {expr1}
2220 start conditional block. Commands are executed until next
2221 matching :elseif, :else or :endif command if {expr1} evaluates
2222 to non-zero, otherwise they are ignored. See also help on :else
2223 and :endif commands.
2224
2225 Example:
2226
2227 if $TERM == 'screen.linux'
2228 highlight CurrLine ctermfg=lightwhite ctermbg=lightblack
2229 elseif $TERM == 'tmux'
2230 highlight CurrLine cterm=reverse ctermfg=black ctermbg=white
2231 else
2232 highlight CurrLine cterm=bold,reverse ctermfg=black ctermbg=white
2233 endif
2234
2235 :invert
2236
2237 :invert [f]
2238 invert file name filter.
2239
2240 :invert? [f]
2241 show current filter state.
2242
2243 :invert s
2244 invert selection.
2245
2246 :invert o
2247 invert sorting order of the primary sorting key.
2248
2249 :invert? o
2250 show sorting order of the primary sorting key.
2251
2252 :jobs
2253
2254 :jobs display menu of current backgrounded processes. See "Menus and
2255 dialogs" section for controls.
2256
2257 :let
2258
2259 :let $ENV_VAR = <expr>
2260 set an environment variable. Warning: setting environment vari‐
2261 able to an empty string on Windows removes it.
2262
2263 :let $ENV_VAR .= <expr>
2264 append value to environment variable.
2265
2266 :let &[l:|g:]opt = <expr>
2267 sets option value.
2268
2269 :let &[l:|g:]opt .= <expr>
2270 append value to string option.
2271
2272 :let &[l:|g:]opt += <expr>
2273 increasing option value, adding sub-values.
2274
2275 :let &[l:|g:]opt -= <expr>
2276 decreasing option value, removing sub-values.
2277
2278 Where <expr> could be a single-quoted string, double-quoted string, an
2279 environment variable, function call or a concatanation of any of them
2280 in any order using the '.' operator. Any whitespace is ignored.
2281
2282 :locate
2283
2284 :locate filename
2285 use "locate" command to create a menu of filenames. Selecting a
2286 file from the menu will reload the current file list in vifm to
2287 show the selected file. By default the command relies on the
2288 external "locate" utility (it's assumed that its database is
2289 already built), which can be customized by altering value of the
2290 'locateprg' option. See "Menus and dialogs" section for con‐
2291 trols.
2292
2293 :locate
2294 repeat last :locate command.
2295
2296 :ls
2297
2298 :ls lists windows of active terminal multiplexer (only when terminal
2299 multiplexer is used). This is achieved by issuing proper com‐
2300 mand for active terminal multiplexer, thus the list is not han‐
2301 dled by vifm.
2302
2303 :lstrash
2304
2305 :lstrash
2306 display a menu with list of files in trash. Each element of the
2307 list is original path of a deleted file, thus the list can con‐
2308 tain duplicates. See "Menus and dialogs" section for controls.
2309
2310 :mark
2311
2312 :[range]ma[rk][?] x [/full/path] [filename]
2313 Set mark x (a-zA-Z0-9) at /full/path and filename. By default
2314 current directory is being used. If no filename was given and
2315 /full/path is current directory then last file in [range] is
2316 used. Using of macros is allowed. Question mark will stop com‐
2317 mand from overwriting existing marks.
2318
2319 :marks
2320
2321 :marks create a pop-up menu of marks. See "Menus and dialogs" section
2322 for controls.
2323
2324 :marks list ...
2325 display the contents of the marks that are mentioned in list.
2326
2327 :media
2328
2329 :media only for *nix
2330 display media management menu. See "Menus and dialogs" section
2331 for controls. See also 'mediaprg' option.
2332
2333 :messages
2334
2335 :mes[sages]
2336 shows previously given messages (up to 50).
2337
2338 :mkdir
2339
2340 :[line]mkdir[!] dir ...
2341 create directories at specified paths. The [line] can be used
2342 to pick node in a tree-view. "!" means make parent directories
2343 as needed. Macros are expanded.
2344
2345 :move
2346
2347 :[range]m[ove][!?][ &]
2348 move files to directory of other view. With "?" prompts for
2349 destination file names in an editor. "!" forces overwrite.
2350
2351 :[range]m[ove][!] path[ &]
2352 move files to directory specified with the path (absolute or
2353 relative to directory of other view). "!" forces overwrite.
2354
2355 :[range]m[ove][!] name1 name2...[ &]
2356 move files to directory of other view giving each next file a
2357 corresponding name from the argument list. "!" forces over‐
2358 write.
2359
2360 :nohlsearch
2361
2362 :noh[lsearch]
2363 clear selection in current pane.
2364
2365 :normal
2366
2367 :norm[al][!] commands
2368 execute normal mode commands. If "!" is used, user defined map‐
2369 pings are ignored. Unfinished last command is aborted as if
2370 <esc> or <c-c> was typed. A ":" should be completed as well.
2371 Commands can't start with a space, so put a count of 1 (one)
2372 before it.
2373
2374 :only
2375
2376 :on[ly]
2377 switch to a one window view.
2378
2379 :popd
2380
2381 :popd remove pane directories from stack.
2382
2383 :pushd
2384
2385 :pushd[!] /curr/dir [/other/dir]
2386 add pane directories to stack and process arguments like :cd
2387 command.
2388
2389 :pushd exchange the top two items of the directory stack.
2390
2391 :put
2392
2393 :[line]pu[t][!] [reg] [ &]
2394 puts files from specified register (" by default) into current
2395 directory. The [line] can be used to pick node in a tree-view.
2396 "!" moves files "!" moves files from their original location
2397 instead of copying them. During this operation no confirmation
2398 dialogs will be shown, all checks are performed beforehand.
2399
2400 :pwd
2401
2402 :pw[d] show the present working directory.
2403
2404 :qall
2405
2406 :qa[ll][!]
2407 exit vifm (add ! to skip saving changes and checking for active
2408 backgrounded commands).
2409
2410 :quit
2411
2412 :q[uit][!]
2413 if there is more than one tab, close the current one, otherwise
2414 exit vifm (add ! to skip saving state and checking for active
2415 backgrounded commands).
2416
2417 :redraw
2418
2419 :redr[aw]
2420 redraw the screen immediately.
2421
2422 :registers
2423
2424 :reg[isters]
2425 display menu with registers content.
2426
2427 :reg[isters] list ...
2428 display the contents of the numbered and named registers that
2429 are mentioned in list (for example "az to display "", "a and "z
2430 content).
2431
2432 :regular
2433
2434 :regular
2435
2436 switch to regular view leaving custom view.
2437 :rename
2438
2439 :[range]rename[!]
2440 rename files using vi to edit names. ! means go recursively
2441 through directories.
2442
2443 :[range]rename name1 name2...
2444 rename each of selected files to a corresponding name.
2445
2446 :restart
2447
2448 :restart
2449 free a lot of things (histories, commands, etc.), reread
2450 vifminfo, vifmrc and session files and run startup commands
2451 passed in the argument list, thus losing all unsaved changes
2452 (e.g. recent history or keys mapped after starting this
2453 instance). Session that wasn't yet stored gets reset.
2454
2455 While many things get reset, some basic UI state and current
2456 locations are preserved, including tabs.
2457
2458 :restart full
2459 variation of :restart that makes no attempt to preserve any‐
2460 thing.
2461
2462 :restore
2463
2464 :[range]restore
2465 restore file from trash directory, doesn't work outside one of
2466 trash directories. See "Trash directory" section below.
2467
2468 :rlink
2469
2470 :[range]rlink[!?]
2471 create relative symbolic links to files in directory of other
2472 view. With "?" prompts for destination file names in an editor.
2473 "!" forces overwrite.
2474
2475 :[range]rlink[!] path
2476 create relative symbolic links of files in directory specified
2477 with the path (absolute or relative to directory of other view).
2478 "!" forces overwrite.
2479
2480 :[range]rlink[!] name1 name2...
2481 create relative symbolic links of files in directory of other
2482 view giving each next link a corresponding name from the argu‐
2483 ment list. "!" forces overwrite.
2484
2485 :screen
2486
2487 :screen
2488 toggle whether to use the terminal multiplexer or not.
2489 A terminal multiplexer uses pseudo terminals to allow multiple
2490 windows to be used in the console or in a single xterm. Start‐
2491 ing vifm from terminal multiplexer with appropriate support
2492 turned on will cause vifm to open a new terminal multiplexer
2493 window for each new file edited or program launched from vifm.
2494 This requires screen version 3.9.9 or newer for the screen -X
2495 argument or tmux (1.8 version or newer is recommended).
2496
2497 :screen!
2498 enable integration with terminal multiplexers.
2499
2500 :screen?
2501 display whether integration with terminal multiplexers is
2502 enabled.
2503
2504 Note: the command is called screen for historical reasons (when tmux
2505 wasn't yet supported) and might be changed in future releases, or get
2506 an alias.
2507
2508 :select
2509
2510 :[range]select
2511 select files in the given range (current file if no range is
2512 given).
2513
2514 :select {pattern}
2515 select files that match specified pattern. Possible {pattern}
2516 forms are described in "Patterns" section below. Trailing slash
2517 for directories is taken into account, so `:select! */ | invert
2518 s` selects only files.
2519
2520 :select //[iI]
2521 same as item above, but reuses last search pattern.
2522
2523 :select !{external command}
2524 select files from the list supplied by external command. Files
2525 are matched by full paths, relative paths are converted to abso‐
2526 lute ones beforehand.
2527
2528 :[range]select! [{pattern}]
2529 same as above, but resets previously selected items before pro‐
2530 ceeding.
2531
2532 :session
2533
2534 :session?
2535 print name of the current session.
2536
2537 :session
2538 detach current session without saving it. Resets v:session.
2539
2540 :session name
2541 create or load and switch to a session with the specified name.
2542 Name can't contain slashes. Session active at the moment is
2543 saved before the switch. Session is also automatically saved
2544 when quiting the application in usual ways. Sets v:session.
2545
2546 :set
2547
2548 :se[t] display all options that differ from their default value.
2549
2550 :se[t] all
2551 display all options.
2552
2553 :se[t] opt1=val1 opt2='val2' opt3="val3" ...
2554 sets given options. For local options both values are set.
2555 You can use following syntax:
2556 - for all options - option, option? and option&
2557 - for boolean options - nooption, invoption and option!
2558 - for integer options - option=x, option+=x and option-=x
2559 - for string options - option=x and option+=x
2560 - for string list options - option=x, option+=x, option-=x and
2561 option^=x
2562 - for enumeration options - option=x, option+=x and option-=x
2563 - for set options - option=x, option+=x, option-=x and
2564 option^=x
2565 - for charset options - option=x, option+=x, option-=x and
2566 option^=x
2567
2568 the meaning:
2569 - option - turn option on (for boolean) or print its value (for
2570 all others)
2571 - nooption - turn option off
2572 - invoption - invert option state
2573 - option! - invert option state
2574 - option? - print option value
2575 - option& - reset option to its default value
2576 - option=x or option:x - set option to x
2577 - option+=x - add/append x to option
2578 - option-=x - remove (or subtract) x from option
2579 - option^=x - toggle x presence among values of the option
2580
2581 Option name can be prepended and appended by any number of
2582 whitespace characters.
2583
2584 :setglobal
2585
2586 :setg[lobal]
2587 display all global options that differ from their default value.
2588
2589 :setg[lobal] all
2590 display all global options.
2591
2592 :setg[lobal] opt1=val1 opt2='val2' opt3="val3" ...
2593 same as :set, but changes/prints only global options or global
2594 values of local options. Changes to the latter might be not
2595 visible until directory is changed.
2596
2597 :setlocal
2598
2599 :setl[ocal]
2600 display all local options that differ from their default value.
2601
2602 :setl[ocal] all
2603 display all local options.
2604
2605 :setl[ocal] opt1=val1 opt2='val2' opt3="val3" ...
2606 same as :set, but changes/prints only local values of local
2607 options.
2608
2609 :shell
2610
2611 :sh[ell][!]
2612 start a shell in current directory. "!" suppresses spawning
2613 dedicated window of terminal multiplexer for a shell. To make
2614 vifm adaptive to environment it uses $SHELL if it's defined,
2615 otherwise 'shell' value is used.
2616
2617
2618 :siblnext
2619
2620 :[count]siblnext[!]
2621
2622 change directory to [count]th next sibling directory after cur‐
2623 rent path using value of global sort option of current pane.
2624 "!" enables wrapping.
2625
2626 For example, say, you're at /boot and root listing starts like
2627 this:
2628
2629 bin/
2630 boot/
2631 dev/
2632 ...
2633
2634 Issuing :siblnext will navigate to /dev.
2635
2636
2637 :siblprev
2638
2639 :[count]siblprev[!]
2640 same as :siblnext, but in the opposite direction.
2641
2642 :sort
2643
2644 :sor[t]
2645 display dialog with different sorting methods, where one can
2646 select the primary sorting key. When 'viewcolumns' options is
2647 empty and 'lsview' is off, changing primary sorting key will
2648 also affect view look (in particular the second column of the
2649 view will be changed). See "Menus and dialogs" section for con‐
2650 trols.
2651
2652 :source
2653
2654 :so[urce] file
2655 read command-line commands from the file.
2656
2657 :split
2658
2659 :sp[lit]
2660 switch to a two window horizontal view.
2661
2662 :sp[lit]!
2663 toggle horizontal window splitting.
2664
2665 :sp[lit] path
2666 splits the window horizontally to show both file directories.
2667 Also changes other pane to path (absolute or relative to current
2668 directory of active pane).
2669
2670 :substitute
2671
2672 :[range]s[ubstitute]/pattern/string/[flags]
2673 for each file in range replace a match of pattern with string.
2674
2675 String can contain \0...\9 to link to capture groups (\0 - all match,
2676 \1 - first group, etc.).
2677
2678 Pattern is stored in search history.
2679
2680 Available flags:
2681
2682 - i - ignore case (the 'ignorecase' and 'smartcase' options are not
2683 used)
2684
2685 - I - don't ignore case (the 'ignorecase' and 'smartcase' options are
2686 not used)
2687
2688 - g - substitute all matches in each file name (each g toggles this)
2689
2690 :[range]s[ubstitute]/pattern
2691 substitute pattern with an empty string.
2692
2693 :[range]s[ubstitute]//string/[flags]
2694 use last pattern from search history.
2695
2696 :[range]s[ubstitute]
2697 repeat previous substitution command.
2698
2699 :sync
2700
2701 :sync [relative path]
2702 change the other pane to the current pane directory or to some
2703 path relative to the current directory. Using macros is
2704 allowed.
2705
2706 :sync! change the other pane to the current pane directory and synchro‐
2707 nize cursor position. If current pane displays custom list of
2708 files, position before entering it is used (current one might
2709 not make any sense).
2710
2711
2712 :sync! [location | cursorpos | localopts | filters | filelist | tree |
2713 all]...
2714 change enumerated properties of the other pane to match corre‐
2715 sponding properties of the current pane. Arguments have the
2716 following meanings:
2717
2718 - location - current directory of the pane;
2719
2720 - cursorpos - cursor position (doesn't make sense without
2721 "location");
2722
2723 - localopts - all local options;
2724
2725 - filters - all filters;
2726
2727 - filelist - list of files for custom view (implies "loca‐
2728 tion");
2729
2730 - tree - tree structure for tree view (implies "location");
2731
2732 - all - all of the above.
2733
2734 :tabclose
2735
2736 :tabc[lose]
2737 close current tab, unless it's the only one open at current
2738 scope.
2739
2740 :tabmove
2741
2742 :tabm[ove] [N]
2743 without the argument or with `$` as the argument, current tab
2744 becomes the last tab. With the argument, current tab is moved
2745 after the tab with the specified number. Argument of `0` moves
2746 current tab to the first position.
2747
2748 :tabname
2749
2750 :tabname [name]
2751 set, update or reset (when no argument is provided) name of the
2752 current tab.
2753
2754 :tabnew
2755
2756 :tabnew [path]
2757 create new tab. Accepts optional path for the new tab. Macros
2758 and environment variables are expanded.
2759
2760 :tabnext
2761
2762 :tabn[ext]
2763 switch to the next tab (wrapping around).
2764
2765 :tabn[ext] {n}
2766 go to the tab number {n}. Tab numeration starts with 1.
2767
2768 :tabonly
2769
2770 :tabo[nly]
2771 close all tabs but the current one. Closes pane tabs only at
2772 the active side.
2773
2774 :tabprevious
2775
2776 :tabp[revious]
2777 switch to the previous tab (wrapping around).
2778
2779 :tabp[revious] {n}
2780 go to the {n}-th previous tab. Note that :tabnext handles its
2781 argument differently.
2782
2783 :touch
2784
2785 :[line]touch file...
2786 create files at specified paths. Aborts on errors. Doesn't
2787 update time of existing files. The [line] can be used to pick
2788 node in a tree-view. Macros are expanded.
2789
2790 :tr
2791
2792 :[range]tr/pattern/string/
2793 for each file in range transliterate the characters which appear
2794 in pattern to the corresponding character in string. When
2795 string is shorter than pattern, it's padded with its last char‐
2796 acter.
2797
2798 :trashes
2799
2800 :trashes
2801 lists all valid trash directories in a menu. Only non-empty and
2802 writable trash directories are shown. This is exactly the list
2803 of directories that are cleared when :empty command is executed.
2804
2805 :trashes?
2806 same as :trashes, but also displays size of each trash direc‐
2807 tory.
2808
2809 :tree
2810
2811 :tree turn pane into tree view with current directory as its root.
2812 The tree view is implemented on top of a custom view, but is
2813 automatically kept in sync with file system state and considers
2814 all the filters. Thus the structure corresponds to what one
2815 would see on visiting the directories manually. As a special
2816 case for trees built out of custom view file-system tracking
2817 isn't performed.
2818
2819 To leave tree view go up from its root or use gh at any level of
2820 the tree. Any command that changes directory will also do, in
2821 particular, `:cd ..`.
2822
2823 Tree structure is incompatible with alternative representations,
2824 so values of 'lsview' and 'millerview' options are ignored.
2825
2826 :tree! toggle current view in and out of tree mode.
2827
2828 :undolist
2829
2830 :undol[ist]
2831 display list of latest changes. Use "!" to see actual commands.
2832 See "Menus and dialogs" section for controls.
2833
2834 :unlet
2835
2836 :unl[et][!] $ENV_VAR1 $ENV_VAR2 ...
2837 remove environment variables. Add ! to omit displaying of warn‐
2838 ings about nonexistent variables.
2839
2840 :unselect
2841
2842 :[range]unselect
2843 unselect files in the given range (current file if no range is
2844 given).
2845
2846 :unselect {pattern}
2847 unselect files that match specified pattern. Possible {pattern}
2848 forms are described in "Patterns" section below. Trailing slash
2849 for directories is taken into account, so `:unselect */` unse‐
2850 lects directories.
2851
2852 :unselect !{external command}
2853 unselect files from the list supplied by external command.
2854 Files are matched by full paths, relative paths are converted to
2855 absolute ones beforehand.
2856
2857 :unselect //[iI]
2858 same as item above, but reuses last search pattern.
2859
2860 :version
2861
2862 :ve[rsion]
2863 show menu with version information.
2864
2865 :vifm
2866
2867 :vifm same as :version.
2868
2869 :view
2870
2871 :vie[w]
2872 toggle on and off the quick file view (preview of file's con‐
2873 tents). See also 'quickview' option.
2874
2875 :vie[w]!
2876 turn on quick file view if it's off.
2877
2878 :volumes
2879
2880 :volumes
2881 only for MS-Windows
2882 display menu with volume list. Hitting l (or Enter) key opens
2883 appropriate volume in the current pane. See "Menus and dialogs"
2884 section for controls.
2885
2886 :vsplit
2887
2888 :vs[plit]
2889 switch to a two window vertical view.
2890
2891 :vs[plit]!
2892 toggle window vertical splitting.
2893
2894 :vs[plit] path
2895 split the window vertically to show both file directories. And
2896 changes other pane to path (absolute or relative to current
2897 directory of active pane).
2898
2899 :wincmd
2900
2901 :[count]winc[md] {arg}
2902 same as running Ctrl-W [count] {arg}.
2903
2904 :windo
2905
2906 :windo [command...]
2907 execute command for each pane (same as :winrun % command).
2908
2909 :winrun
2910
2911 :winrun type [command...]
2912 execute command for pane(s), which is determined by type argu‐
2913 ment:
2914 - ^ - top-left pane
2915 - $ - bottom-right pane
2916 - % - all panes
2917 - . - current pane
2918 - , - other pane
2919
2920 :write
2921
2922 :w[rite]
2923 write current state to vifminfo and session files (if a session
2924 is active).
2925
2926 :wq
2927
2928 :wq[!] same as :quit, but ! disables only the check of backgrounded
2929 commands, while state of the application is always written.
2930 :wqall
2931
2932 :wqa[ll][!]
2933 same as :qall, but ! disables only the check of backgrounded
2934 commands, while state of the application is always written.
2935
2936 :xall
2937
2938 :xa[ll][!]
2939 same as :qall.
2940
2941 :xit
2942
2943 :x[it][!]
2944 same as :quit.
2945
2946 :yank
2947
2948 :[range]y[ank] [reg] [count]
2949 will yank files to the reg register.
2950
2951 :map lhs rhs
2952
2953 :map lhs rhs
2954 map lhs key sequence to rhs in normal and visual modes.
2955
2956 :map! lhs rhs
2957 map lhs key sequence to rhs in command line mode.
2958
2959
2960 :cmap :dmap :mmap :nmap :qmap
2961 :vmap
2962
2963 :cm[ap] lhs rhs
2964 map lhs to rhs in command line mode.
2965
2966 :dm[ap] lhs rhs
2967 map lhs to rhs in dialog modes.
2968
2969 :mm[ap] lhs rhs
2970 map lhs to rhs in menu mode.
2971
2972 :nm[ap] lhs rhs
2973 map lhs to rhs in normal mode.
2974
2975 :qm[ap] lhs rhs
2976 map lhs to rhs in view mode.
2977
2978 :vm[ap] lhs rhs
2979 map lhs to rhs in visual mode.
2980
2981
2982 :*map
2983
2984 :cm[ap]
2985 list all maps in command line mode.
2986
2987 :dm[ap]
2988 list all maps in dialog modes.
2989
2990 :mm[ap]
2991 list all maps in menu mode.
2992
2993 :nm[ap]
2994 list all maps in normal mode.
2995
2996 :qm[ap]
2997 list all maps in view mode.
2998
2999 :vm[ap]
3000 list all maps in visual mode.
3001
3002 :*map beginning
3003
3004 :cm[ap] beginning
3005 list all maps in command line mode that start with the begin‐
3006 ning.
3007
3008 :dm[ap] beginning
3009 list all maps in dialog modes that start with the beginning.
3010
3011 :mm[ap] beginning
3012 list all maps in menu mode that start with the beginning.
3013
3014 :nm[ap] beginning
3015 list all maps in normal mode that start with the beginning.
3016
3017 :qm[ap] beginning
3018 list all maps in view mode that start with the beginning.
3019
3020 :vm[ap] beginning
3021 list all maps in visual mode that start with the beginning.
3022
3023 :noremap
3024
3025 :no[remap] lhs rhs
3026 map the key sequence lhs to rhs for normal and visual modes, but
3027 disallow mapping of rhs.
3028
3029 :no[remap]! lhs rhs
3030 map the key sequence lhs to rhs for command line mode, but dis‐
3031 allow mapping of rhs.
3032
3033 :cnoremap :dnoremap :mnoremap :nnoremap :qnoremap
3034 :vnoremap
3035
3036 :cno[remap] lhs rhs
3037 map the key sequence lhs to rhs for command line mode, but dis‐
3038 allow mapping of rhs.
3039
3040 :dn[oremap] lhs rhs
3041 map the key sequence lhs to rhs for dialog modes, but disallow
3042 mapping of rhs.
3043
3044 :mn[oremap] lhs rhs
3045 map the key sequence lhs to rhs for menu mode, but disallow map‐
3046 ping of rhs.
3047
3048 :nn[oremap] lhs rhs
3049 map the key sequence lhs to rhs for normal mode, but disallow
3050 mapping of rhs.
3051
3052 :qn[oremap] lhs rhs
3053 map the key sequence lhs to rhs for view mode, but disallow map‐
3054 ping of rhs.
3055
3056 :vn[oremap] lhs rhs
3057 map the key sequence lhs to rhs for visual mode, but disallow
3058 mapping of rhs.
3059
3060 :unmap
3061
3062 :unm[ap] lhs
3063 remove user mapping of lhs from normal and visual modes.
3064
3065 :unm[ap]! lhs
3066 remove user mapping of lhs from command line mode.
3067
3068 :cunmap :dunmap :munmap :nunmap :qunmap
3069 :vunmap
3070
3071 :cu[nmap] lhs
3072 remove user mapping of lhs from command line mode.
3073
3074 :du[nmap] lhs
3075 remove user mapping of lhs from dialog modes.
3076
3077 :mu[nmap] lhs
3078 remove user mapping of lhs from menu mode.
3079
3080 :nun[map] lhs
3081 remove user mapping of lhs from normal mode.
3082
3083 :qun[map] lhs
3084 remove user mapping of lhs from view mode.
3085
3086 :vu[nmap] lhs
3087 remove user mapping of lhs from visual mode.
3088
3090 The ranges implemented include:
3091 2,3 - from second to third file in the list (including it)
3092 % - the entire directory.
3093 . - the current position in the filelist.
3094 $ - the end of the filelist.
3095 't - the mark position t.
3096
3097 Examples:
3098
3099 :%delete
3100
3101 would delete all files in the directory.
3102
3103 :2,4delete
3104
3105 would delete the files in the list positions 2 through 4.
3106
3107 :.,$delete
3108
3109 would delete the files from the current position to the end of the
3110 filelist.
3111
3112 :3delete4
3113
3114 would delete the files in the list positions 3, 4, 5, 6.
3115
3116 If a backward range is given :4,2delete - an query message is given and
3117 user can chose what to do next.
3118
3119 The builtin commands that accept a range are :d[elete] and :y[ank].
3120
3122 The command macros may be used in user commands.
3123
3124 %a User arguments. When user arguments contain macros, they are
3125 expanded before preforming substitution of %a.
3126
3127 %c %"c The current file under the cursor.
3128
3129 %C %"C The current file under the cursor in the other directory.
3130
3131 %f %"f All of the selected files, but see "Selection" section below.
3132
3133 %F %"F All of the selected files in the other directory list, but see
3134 "Selection" section below.
3135
3136 %b %"b Same as %f %F.
3137
3138 %d %"d Full path to current directory.
3139
3140 %D %"D Full path to other file list directory.
3141
3142 %rx %"rx
3143 Full paths to files in the register {x}. In case of invalid
3144 symbol in place of {x}, it's processed with the rest of the line
3145 and default register is used.
3146
3147 %m Show command output in a menu.
3148
3149 %M Same as %m, but l (or Enter) key is handled like for :locate and
3150 :find commands.
3151
3152 %u Process command output as list of paths and compose custom view
3153 out of it.
3154
3155 %U Same as %u, but implies less list updates inside vifm, which is
3156 absence of sorting at the moment.
3157
3158 %Iu same as %u, but gives up terminal before running external com‐
3159 mand.
3160
3161 %IU same as %U, but gives up terminal before running external com‐
3162 mand.
3163
3164 %S Show command output in the status bar.
3165
3166 %q redirect command output to quick view, which is activated if
3167 disabled.
3168
3169 %s Execute command in split window of active terminal multiplexer
3170 (ignored if not running inside one).
3171
3172 %n Forbid using of terminal multiplexer to run the command.
3173
3174 %i Completely ignore command output.
3175
3176
3177 %pc Marks the end of the main command and the beginning of the clear
3178 command for graphical preview, which is invoked on closing pre‐
3179 view of a file.
3180
3181 %pd Marks a preview command as one that directly communicates with
3182 the terminal. Beware that this is for things like sixel which
3183 are self-contained sequences that depend only on current cursor
3184 position, using this with anything else is likely to mangle ter‐
3185 minal state.
3186
3187 The following dimensions and coordinates are in characters:
3188
3189 %px x coordinate of top-left corner of preview area.
3190
3191 %py y coordinate of top-left corner of preview area.
3192
3193 %pw width of preview area.
3194
3195 %ph height of preview area.
3196
3197
3198 Use %% if you need to put a percent sign in your command.
3199
3200 Note that %m, %M, %s, %S, %i, %u and %U macros are mutually exclusive.
3201 Only the last one of them on the command will take effect.
3202
3203 You can use file name modifiers after %c, %C, %f, %F, %b, %d and %D
3204 macros. Supported modifiers are:
3205
3206 - :p - full path
3207
3208 - :u - UNC name of path (e.g. "\\server" in
3209 "\\server\share"), Windows only. Expands to current computer name
3210 for not UNC paths.
3211
3212 - :~ - relative to the home directory
3213
3214 - :. - relative to current directory
3215
3216 - :h - head of the file name
3217
3218 - :t - tail of the file name
3219
3220 - :r - root of the file name (without last extension)
3221
3222 - :e - extension of the file name (last one)
3223
3224 - :s?pat?sub? - substitute the first occurrence of pat with sub.
3225 You can use any character for '?', but it must not occur in pat or
3226 sub.
3227
3228 - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with
3229 sub.
3230
3231 See ':h filename-modifiers' in Vim's documentation for the detailed
3232 description.
3233
3234 Using %x means expand corresponding macro escaping all characters that
3235 have special meaning. And %"x means using of double quotes and escape
3236 only backslash and double quote characters, which is more useful on
3237 Windows systems.
3238
3239 Position and quantity (if there is any) of %m, %M, %S or %s macros in
3240 the command is unimportant. All their occurrences are removed from the
3241 resulting command.
3242
3243 %c and %f macros are expanded to file names only, when %C and %F are
3244 expanded to full paths. %f and %F follow this in %b too.
3245
3246 :com move mv %f %D
3247 set the :move command to move all of the files selected in the
3248 current directory to the other directory.
3249
3250 The %a macro is replaced with any arguments given to an alias command.
3251 All arguments are considered optional.
3252 :com lsl !!ls -l %a - set the lsl command to execute ls -l with
3253 or without an argument.
3254
3255 :lsl<Enter>
3256 will list the directory contents of the current directory.
3257
3258 :lsl filename<Enter>
3259 will list only the given filename.
3260
3261 The macros can also be used in directly executing commands. ":!mv %f
3262 %D" would move the current directory selected files to the other direc‐
3263 tory.
3264
3265 Appending & to the end of a command causes it to be executed in the
3266 background. Typically you want to run two kinds of external commands
3267 in the background:
3268
3269 - GUI applications that doesn't fork thus block vifm (:!sxiv %f &);
3270
3271 - console tools that do not work with terminal (:!mv %f %D &).
3272
3273 You don't want to run terminal commands, which require terminal input
3274 or output something in background because they will mess up vifm's TUI.
3275 Anyway, if you did run such a command, you can use Ctrl-L key to update
3276 vifm's TUI.
3277
3278 Rewriting the example command with macros given above with background‐
3279 ing:
3280
3281 %m, %M, %s, %S, %u and %U macros cannot be combined with background
3282 mark (" &") as it doesn't make much sense.
3283
3285 Copy and move operation can take a lot of time to proceed. That's why
3286 vifm supports backgrounding of this two operations. To run :copy,
3287 :move or :delete command in the background just add " &" at the end of
3288 a command.
3289
3290 For each background operation a new thread is created. Job cancella‐
3291 tion can be requested in the :jobs menu via dd shortcut.
3292
3293 You can see if command is still running in the :jobs menu. Back‐
3294 grounded commands have progress instead of process id at the line
3295 beginning.
3296
3297 Background operations cannot be undone.
3298
3300 Note that cancellation works somewhat different on Windows platform due
3301 to different mechanism of break signal propagation. One also might
3302 need to use Ctrl-Break shortcut instead of Ctrl-C.
3303
3304 There are two types of operations that can be cancelled:
3305
3306 - file system operations;
3307
3308 - mounting with FUSE (but not unmounting as it can cause loss of
3309 data);
3310
3311 - calls of external applications.
3312
3313 Note that vifm never terminates applications, it sends SIGINT signal
3314 and lets the application quit normally.
3315
3316 When one of set of operations is cancelled (e.g. copying of 5th file of
3317 10 files), further operations are cancelled too. In this case undo
3318 history will contain only actually performed operations.
3319
3320 Cancelled operations are indicated by "(cancelled)" suffix appended to
3321 information message on statusbar.
3322
3323 File system operations
3324
3325 Currently the following commands can be cancelled: :alink, :chmod,
3326 :chown, :clone, :copy, :delete, :mkdir, :move, :restore, :rlink,
3327 :touch. File putting (on p/P key) can be cancelled as well. It's not
3328 hard to see that these are mainly long-running operations.
3329
3330 Cancelling commands when they are repeated for undo/redo operations is
3331 allowed for convenience, but is not recommended as further undo/redo
3332 operations might get blocked by side-effects of partially cancelled
3333 group of operations.
3334
3335 These commands can't be cancelled: :empty, :rename, :substitute, :tr.
3336
3337 Mounting with FUSE
3338
3339 It's not considered to be an error, so only notification on the status
3340 bar is shown.
3341
3342 External application calls
3343
3344 Each of this operations can be cancelled: :apropos, :find, :grep,
3345 :locate.
3346
3348 If there is a selection, it's stashed before proceeding further unless
3349 file under the cursor is part of that selection. This means that when
3350 macros are expanded for :filetype or :filextype programs, `%f` and `%F`
3351 become equivalent to `%c` and `%C` respectively if current file is not
3352 selected. So you run selection by running one of selected files, oth‐
3353 erwise you're running a single file even if there are other selected
3354 entries.
3355
3356 When running a selection it must not include broken symbolic links, has
3357 to be consistent and set of file handlers must be compatible. Consis‐
3358 tency means that selection contains either only directories (including
3359 links to them) or only files, but not their mix.
3360
3361 Compatibility is a more sophisticated check, but it's defined in a nat‐
3362 ural way so that you get what you'd expect. The following properties
3363 of selection are taken into account while checking it for compatibility
3364 and deciding how to handle it:
3365
3366
3367 1. If there any files for which handler isn't defined, then all files
3368 are opened using 'vicmd' or 'vixcmd'.
3369
3370
3371 2. If all handlers match the following criteria:
3372 - backgrounded
3373 - include `%c` and/or `%C`
3374 - include neither `%f` nor `%F`
3375 then each file is executed independently of the rest.
3376
3377
3378 3. If all handlers are equal, the common handler is executed. This
3379 handler might ignore selection and process only file under the
3380 cursor.
3381
3382
3383 4. Otherwise, an error is reported, because handlers differ and they
3384 don't support parallel execution.
3385
3387 :highlight, :filetype, :filextype, :fileviewer commands and 'classify'
3388 option support globs, regular expressions and mime types to match file
3389 names or their paths.
3390
3391 There are six possible ways to write a single pattern:
3392
3393 1. [!]{comma-separated-name-globs}
3394
3395 2. [!]{{comma-separated-path-globs}}
3396
3397 3. [!]/name-regular-expression/[iI]
3398
3399 4. [!]//path-regular-expression//[iI]
3400
3401 5. [!]<comma-separated-mime-type-globs>
3402
3403 6. undecorated-pattern
3404
3405 First five forms can include leading exclamation mark that negates pat‐
3406 tern matching.
3407
3408 The last form is implicitly refers to one of others. :highlight does
3409 not accept undecorated form, while :filetype, :filextype, :fileviewer,
3410 :select, :unselect and 'classify' treat it as list of name globs.
3411
3412 Path patterns receive absolute path of the file that includes its name
3413 component as well.
3414
3415 To combine several patterns (AND them), make sure you're using one of
3416 the first five forms and write patterns one after another, like this:
3417 <text/plain>{*.vifm}
3418 Mind that if you make a mistake the whole string will be treated as the
3419 sixth form.
3420
3421 :filetype, :filextype and :fileviewer commands accept comma-separated
3422 list of patterns instead of a single pattern, thus effectively handling
3423 OR operation on them:
3424 <text/plain>{*.vifm},<application/pdf>{*.pdf}
3425 Forms that accept comma-separated lists of patterns also process them
3426 as lists of alternatives.
3427
3428 Patterns with regular expressions
3429
3430 Regular expression patterns are case insensitive by default, see
3431 description of commands, which might override default behaviour.
3432
3433 Flags of regular expressions mean the following:
3434 - "i" makes filter case insensitive;
3435 - "I" makes filter case sensitive. They can be repeated multiple
3436 times, but the later one takes precedence (e.g. "iiiI" is equivalent
3437 to "I" and "IiIi" is the same as "i").
3438
3439 There are no implicit `^` or `$`, so make sure to specify them explic‐
3440 itly if the pattern should match the whole name or path.
3441
3442 Patterns with globs
3443
3444 "Globs" section below provides short overview of globs and some impor‐
3445 tant points that one needs to know about them.
3446
3447 Patterns with mime-types
3448
3449 Mime type matching is essentially globs matching applied to mime type
3450 of a file instead of its name/path. Note: mime types aren't detected
3451 on Windows.
3452
3453 Examples
3454
3455 Associate `evince` to PDF-files only inside `/home/user/downloads/`
3456 directory (excluding its subdirectories):
3457
3458 :filextype //^/home/user/downloads/[^/]*.pdf$// evince %f
3459
3460
3462 Globs are always case insensitive as it makes sense in general case.
3463
3464 `*`, `?`, `[` and `]` are treated as special symbols in the pattern.
3465 E.g.
3466
3467 :filetype * less %c
3468
3469 matches all files. One can use character classes for escaping, so
3470
3471 :filetype [*] less %c
3472
3473 matches only one file name, the one which contains only asterisk sym‐
3474 bol.
3475
3476 `*` means any number of any characters (possibly an empty substring),
3477 with one exception: asterisk at the pattern beginning doesn't match dot
3478 in the first position. E.g.
3479
3480 :fileviewer *.zip,*.jar zip -sf %c
3481
3482 associates using of `zip` program to preview all files with `zip` or
3483 `jar` extensions as listing of their content, but `.file.zip` won't be
3484 matched.
3485
3486 `?` means any character at this position. E.g.
3487
3488 :fileviewer ?.out file %c
3489
3490 calls `file` tool for all files which have exactly one character before
3491 their extension (e.g. a.out, b.out).
3492
3493 Square brackets designate character class, which means that whole char‐
3494 acter class matches against any of characters listed in it. For exam‐
3495 ple
3496
3497 :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c
3498
3499 makes vifm call `highlight` program to colorize source and header files
3500 in C language for a 256-color terminal. Equal command would be
3501
3502 :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c
3503
3504
3505 Inside square brackets `^` or `!` can be used for symbol class negotia‐
3506 tion and the `-` symbol to set a range. `^` and `!` should appear
3507 right after the opening square bracket. For example
3508
3509 :filetype *.[!d]/ inspect_dir
3510
3511 associates `inspect_dir` as additional handler for all directories that
3512 have one character extension unless it's "d" letter. And
3513
3514 :filetype [0-9].jpg sxiv
3515
3516 associates `sxiv` picture viewer only for JPEG-files that contain sin‐
3517 gle digit in their name.
3518
3519 If you need to include literal comma, which is normally separates mul‐
3520 tiple globs, double it.
3521
3523 Local options
3524 These are kind of options that are local to a specific view. So
3525 you can set ascending sorting order for left pane and descending
3526 order for right pane.
3527
3528 In addition to being local to views, each such option also has
3529 two values:
3530
3531 - local to current directory (value associated with current
3532 location);
3533
3534 - global to current directory (value associated with the
3535 pane).
3536
3537 The idea is that current directory can be made a temporary
3538 exception to regular configuration of the view, until directory
3539 change. Use :setlocal for that. :setglobal changes view value
3540 not affecting settings until directory change. :set applies
3541 changes immediately to all values.
3542
3543
3544 'aproposprg'
3545 type: string
3546 default: "apropos %a"
3547 Specifies format for an external command to be invoked by the
3548 :apropos command. The format supports expanding of macros, spe‐
3549 cific for a particular *prg option, and %% sequence for insert‐
3550 ing percent sign literally. This option should include the %a
3551 macro to specify placement of arguments passed to the :apropos
3552 command. If the macro is not used, it will be implicitly added
3553 after a space to the value of this option.
3554
3555 'autochpos'
3556 type: boolean
3557 default: true
3558 When disabled vifm will set cursor to the first line in the view
3559 after :cd and :pushd commands instead of saved cursor position.
3560 Disabling this will also make vifm clear information about cur‐
3561 sor position in the view history on :cd and :pushd commands (and
3562 on startup if 'autochpos' is disabled in the vifmrc). l key in
3563 the ":history ." and ":trashes" menus are treated like :cd com‐
3564 mand. This option also affects marks so that navigating to a
3565 mark doesn't restore cursor position.
3566
3567 When this option is enabled, more fine grained control over cur‐
3568 sor position is available via 'histcursor' option.
3569
3570 'columns' 'co'
3571 type: integer
3572 default: terminal width on startup
3573 Terminal width in characters.
3574
3575 'caseoptions'
3576 type: charset
3577 default: ""
3578 This option gives additional control over case sensitivity by
3579 allowing overriding default behaviour to either always be case
3580 sensitive or always be case insensitive. Possible values form
3581 pairs of lower and upper case letters that configure specific
3582 aspect of behaviour:
3583 p - always ignore case of paths during completion.
3584 P - always match case of paths during completion.
3585 g - always ignore case of characters for f/F/;/,.
3586 G - always match case of characters for f/F/;/,.
3587
3588 At most one item of each pair takes affect, if both or more are
3589 present, only the last one matters. When none of pair's ele‐
3590 ments are present, the behaviour is default (depends on operat‐
3591 ing system for path completion and on values of 'ignorecase' and
3592 'smartcase' options for file navigation).
3593
3594 'cdpath' 'cd'
3595 type: string list
3596 default: value of $CDPATH with commas instead of colons
3597 Specifies locations to check on changing directory with relative
3598 path that doesn't start with "./" or "../". When non-empty,
3599 current directory is examined after directories listed in the
3600 option.
3601
3602 This option doesn't affect completion of :cd command.
3603
3604 Example:
3605
3606 set cdpath=~
3607
3608 This way ":cd bin" will switch to "~/bin" even if directory
3609 named "bin" exists in current directory, while ":cd ./bin" com‐
3610 mand will ignore value of 'cdpath'.
3611
3612 'chaselinks'
3613 type: boolean
3614 default: false
3615 When enabled path of view is always resolved to real path (with
3616 all symbolic links expanded).
3617
3618 'classify'
3619 type: string list
3620 default: ":dir:/"
3621 Specifies file name prefixes and suffixes depending on file type
3622 or name. The format is either of:
3623 - [{prefix}]:{filetype}:[{suffix}]
3624 - [{prefix}]::{pattern}::[{suffix}]
3625 Possible {pattern} forms are described in "Patterns" section
3626 above.
3627
3628 Priority rules:
3629 - file name patterns have priority over type patterns
3630 - file name patterns are matched in left-to-right order of
3631 their appearance in this option
3632
3633 Either {prefix} or {suffix} or both can be omitted (which is the
3634 default for all unspecified file types), this means empty {pre‐
3635 fix} and/or {suffix}. {prefix} and {suffix} should consist of
3636 at most eight characters. Elements are separated by commas.
3637 Neither prefixes nor suffixes are part of file names, so they
3638 don't affect commands which operate on file names in any way.
3639 Comma (',') character can be inserted by doubling it. List of
3640 file type names can be found in the description of filetype()
3641 function.
3642
3643 'confirm' 'cf'
3644 type: set
3645 default: delete,permdelete
3646 Defines which operations require confirmation:
3647 - delete - moving files to trash (on d or :delete);
3648 - permdelete - permanent deletion of files (on D or :delete!
3649 command or on undo/redo operation).
3650
3651 'cpoptions' 'cpo'
3652 type: charset
3653 default: "fst"
3654 Contains a sequence of single-character flags. Each flag
3655 enables behaviour of older versions of vifm. Flags:
3656 - f - when included, running :filter command results in not
3657 inverted (matching files are filtered out) and :filter! in
3658 inverted (matching files are left) filter, when omitted, meaning
3659 of the exclamation mark changes to the opposite;
3660 - s - when included, yy, dd and DD normal mode commands act on
3661 selection, otherwise they operate on current file only;
3662 - t - when included, <tab> (thus <c-i>) behave as <space> and
3663 switches active pane, otherwise <tab> and <c-i> go forward in
3664 the view history. It's possible to make both <tab> and <c-i> to
3665 work as expected by setting up the terminal to emit a custom
3666 sequence when <c-i> is pressed; see :histnext for details.
3667
3668 'cvoptions'
3669 type: set
3670 default:
3671 Specifies whether entering/leaving custom views triggers events
3672 that normally happen on entering/leaving directories:
3673 - autocmds - trigger autocommands on entering/leaving custom
3674 views;
3675 - localopts - reset local options on entering/leaving custom
3676 views;
3677 - localfilter - reset local filter on entering/leaving custom
3678 views.
3679
3680 'deleteprg'
3681 type: string
3682 default: ""
3683 Specifies program to run on files that are permanently removed.
3684 When empty, files are removed as usual, otherwise this command
3685 is invoked on each file by appending its name. If the command
3686 doesn't remove files, they will remain on the file system.
3687
3688 'dirsize'
3689 type: enumeration
3690 default: size
3691 Controls how size of directories is displayed in file views.
3692 The following values are possible:
3693 - size - size of directory (i.e., size used to store list of
3694 files)
3695 - nitems - number of entries in the directory (excluding . and
3696 ..)
3697
3698 Size obtained via ga/gA overwrites this setting so seeing count
3699 of files and occasionally size of directories is possible.
3700
3701 'dotdirs'
3702 type: set
3703 default: nonrootparent,treeleafsparent
3704 Controls displaying of dot directories. The following values
3705 are possible:
3706 - rootparent - show "../" in root directory of file system
3707 - nonrootparent - show "../" in non-root directories of file
3708 system
3709 - treeleafsparent - show "../" in empty directories of tree
3710 view
3711
3712 Note that empty directories always contain "../" entry regard‐
3713 less of value of this option. "../" disappears at the moment at
3714 least one file is created.
3715
3716 'dotfiles'
3717 type: boolean
3718 default: false
3719 Whether dot files are shown in the view. Can be controlled with
3720 z* bindings.
3721
3722 'fastrun'
3723 type: boolean
3724 default: false
3725 With this option turned on you can run partially entered com‐
3726 mands with unambiguous beginning using :! (e.g. :!Te instead of
3727 :!Terminal or :!Te<tab>).
3728
3729 'fillchars' 'fcs'
3730 type: string list
3731 default: ""
3732 Sets characters used to fill borders.
3733
3734 item default used for
3735 vborder:c ' ' left, middle and right vertical bor‐
3736 ders
3737
3738 If value is omitted, its default value is used. Example:
3739
3740 set fillchars=vborder:.
3741
3742 'findprg'
3743 type: string
3744 default: "find %s %a -print , -type d \( ! -readable -o ! -exe‐
3745 cutable \) -prune"
3746 Specifies format for an external command to be invoked by the
3747 :find command. The format supports expansion of macros specific
3748 for this particular option and %% sequence for inserting percent
3749 sign literally. The macros are:
3750
3751 macro value/meaning
3752 %s literal arguments of :find or
3753 list of paths to search in
3754
3755 %A empty or
3756 literal arguments of :find
3757 %a empty or
3758 literal arguments of :find or
3759 predicate followed by escaped arguments of :find
3760 %p empty or
3761 literal arguments of :find or
3762 escaped arguments (parameters) of :find
3763
3764 %u redirect output to custom view instead of showing a
3765 menu
3766 %U redirect output to unsorted custom view instead of
3767 showing a menu
3768
3769 Predicate in %a is "-name" on *nix and "-iname" on Windows.
3770
3771 If both %u and %U are specified, %U is chosen.
3772
3773 Some macros can be added implicitly:
3774 - if %s isn't present, it's appended
3775 - if neither of %a, %A and %p is present, %a is appended
3776 - if neither of %s, %a, %A and %p is present, %s and %a are
3777 appended in this order
3778
3779 The macros slightly change their meaning depending on format of
3780 :find's arguments:
3781 - if the first argument points to an existing directory, %s is
3782 assigned all arguments while %a, %A and %p are left empty
3783 - otherwise:
3784 - %s is assigned a dot (".") meaning current directory or
3785 list of selected file names, if any
3786 - %a, %A and %p are assigned literal arguments when first
3787 argument starts with a dash ("-"), otherwise %a gets an escaped
3788 version of the arguments with a predicate and %p contains
3789 escaped version of the arguments
3790
3791 Starting with Windows Server 2003 a `where` command is avail‐
3792 able. One can configure vifm to use it in the following way:
3793
3794 set findprg="where /R %s %A"
3795
3796 As the syntax of this command is rather limited, one can't use
3797 :find command with selection of more than one item because the
3798 command ignores all directory paths except for the last one.
3799
3800 When using find port on Windows, another option is to setup
3801 'findprg' like this:
3802
3803 set findprg="find %s %a"
3804
3805
3806 'followlinks'
3807 type: boolean
3808 default: true
3809 Follow links on l or Enter. That is navigate to destination
3810 file instead of treating the link as if it were target file.
3811 Doesn't affects links to directories, which are always entered
3812 (use gf key for directories).
3813
3814 'fusehome'
3815 type: string
3816 default: "($XDG_DATA_HOME/.local/share | $VIFM)/fuse/"
3817 Directory to be used as a root dir for FUSE mounts. Value of
3818 the option can contain environment variables (in form
3819 "$envname"), which will be expanded (prepend it with a slash to
3820 prevent expansion). The value should expand to an absolute
3821 path.
3822
3823 If you change this option, vifm won't remount anything. It
3824 affects future mounts only. See "Automatic FUSE mounts" section
3825 below for more information.
3826
3827 'gdefault' 'gd'
3828 type: boolean
3829 default: false
3830 When on, 'g' flag is on for :substitute by default.
3831
3832 'grepprg'
3833 type: string
3834 default: "grep -n -H -I -r %i %a %s"
3835 Specifies format for an external command to be invoked by the
3836 :grep command. The format supports expanding of macros, spe‐
3837 cific for a particular *prg option, and %% sequence for insert‐
3838 ing percent sign literally. This option should include the %i
3839 macro to specify placement of "-v" string when inversion of
3840 results is requested, %a or %A macro to specify placement of
3841 arguments passed to the :grep command and the %s macro to spec‐
3842 ify placement of list of files to search in. If some of the
3843 macros are not used, they will be implicitly added after a space
3844 to the value of the 'grepprg' option in the following order: %i,
3845 %a, %s. Note that when neither %a nor %A are specified, it's %a
3846 which is added implicitly.
3847
3848 Optional %u or %U macro could be used (if both specified %U is
3849 chosen) to force redirection to custom or unsorted custom view
3850 respectively.
3851
3852 See 'findprg' option for description of difference between %a
3853 and %A.
3854
3855 Example of setup to use ack (http://beyondgrep.com/) instead of
3856 grep:
3857
3858 set grepprg='ack -H -r %i %a %s'
3859
3860 or The Silver Searcher (https://github.com/ggreer/the_sil‐
3861 ver_searcher):
3862
3863 set grepprg='ag --line-numbers %i %a %s'
3864
3865
3866
3867 'histcursor'
3868 type: set
3869 default: startup,dirmark,direnter
3870 Defines situations when cursor should be moved according to
3871 directory history:
3872 - startup - on loading file lists during startup
3873 - dirmark - after navigating to a mark that doesn't specify
3874 file
3875 - direnter - on opening directory from a file list
3876
3877 This option has no effect when 'autochpos' is disabled.
3878
3879 Note that the list is not exhaustive and there are other situa‐
3880 tions when cursor is positioned automatically.
3881
3882 'history' 'hi'
3883 type: integer
3884 default: 15
3885 Maximum number of stored items in all histories.
3886
3887 'hlsearch' 'hls'
3888 type: boolean
3889 default: true
3890 Automatically select files that are search matches.
3891
3892 'iec' type: boolean
3893 default: false
3894 Use KiB, MiB, ... suffixes instead of K, M, ... when printing
3895 size in human-friendly format.
3896
3897 'ignorecase' 'ic'
3898 type: boolean
3899 default: false
3900 Ignore case in search patterns (:substitute, / and ? commands),
3901 local filter (but not the rest of filters) and other things
3902 detailed in the description of 'caseoptions'.
3903
3904 'incsearch' 'is'
3905 type: boolean
3906 default: false
3907 When this option is set, search and view update for local filter
3908 is be performed starting from initial cursor position each time
3909 search pattern is changed.
3910
3911 'iooptions'
3912 type: set
3913 default:
3914 Controls details of file operations. The following values are
3915 available:
3916 - fastfilecloning - perform fast file cloning (copy-on-write),
3917 when available
3918 (available on Linux and btrfs file system).
3919
3920 'laststatus' 'ls'
3921 type: boolean
3922 default: true
3923 Controls if status bar is visible.
3924
3925 'lines'
3926 type: integer
3927 default: terminal height on startup
3928 Terminal height in lines.
3929
3930 'locateprg'
3931 type: string
3932 default: "locate %a"
3933 Specifies format for an external command to be invoked by the
3934 :locate command. The format supports expanding of macros, spe‐
3935 cific for a particular *prg option, and %% sequence for insert‐
3936 ing percent sign literally. This option should include the %a
3937 macro to specify placement of arguments passed to the :locate
3938 command. If the macro is not used, it will be implicitly added
3939 after a space to the value of this option.
3940
3941 Optional %u or %U macro could be used (if both specified %U is
3942 chosen) to force redirection to custom or unsorted custom view
3943 respectively.
3944
3945 'mediaprg'
3946 type: string
3947 default: path to bundled script that supports udevil, udisks and
3948 udisks2
3949 (using udisks2 requires python with dbus module
3950 installed)
3951 OS X: path points to a python script that uses diskutil
3952 {only for *nix}
3953 Specifies command to be used to manage media devices. Used by
3954 :media command.
3955
3956 The command can be passed the following parameters:
3957 - list -- list media
3958 - mount {device} -- mount a device
3959 - unmount {path} -- unmount given mount point
3960
3961 The output of `list` subcommand is parsed in search of lines
3962 that start with one of the following prefixes:
3963 - device= - specifies device path (e.g., "/dev/sde")
3964 - label= - specifies optional device label (e.g., "Memory
3965 card")
3966 - info= - specifies arbitrary text to display next to
3967 device (by
3968 default "[label]" is used, if label is pro‐
3969 vided)
3970 - mount-point= - specifies a mount point (can be absent or
3971 appear more than once)
3972
3973 All other lines are ignored. Each `device=` starts a new sec‐
3974 tion describing a device which should include two other possible
3975 prefixes.
3976
3977 `list` subcommand is assumed to always succeed, while exit code
3978 of `mount` and `unmount` is taken into account to determine
3979 whether operation was performed successfully.
3980
3981 'lsoptions'
3982 type: string list
3983 default: ""
3984 scope: local
3985
3986 Configures ls-like view.
3987
3988 item used for
3989 transposed filling view grid by columns rather than by
3990 lines
3991
3992
3993 'lsview'
3994 type: boolean
3995 default: false
3996 scope: local
3997 When this option is set, directory view will be displayed in
3998 multiple columns with file names similar to output of `ls -x`
3999 command. See "ls-like view" section below for format descrip‐
4000 tion. This option has no effect if 'millerview' is on.
4001
4002 'milleroptions'
4003 type: string list
4004 default: "lsize:1,csize:1,rsize:1,rpreview:dirs"
4005 scope: local
4006
4007 Configures miller view.
4008
4009 item default used for
4010 lsize:num 0 left column
4011 csize:num 1 center column (can't be disabled)
4012 rsize:num 0 right column
4013 rpreview:str dirs right column
4014
4015 *size specifies ratios of columns. Each ratio is in the range
4016 from 0 to 100 and values are adjusted to fit the limits. Zero
4017 disables a column, but central (main) column can't be disabled.
4018
4019 rpreview specifies what file-system objects should be previewed
4020 in the right column and can take two values: dirs (only directo‐
4021 ries) or all. Both options don't include parent directory
4022 ("..").
4023
4024 Example of two-column mode which is useful in combination with
4025 :view command:
4026
4027 set milleroptions=lsize:1,csize:2
4028
4029
4030 'millerview'
4031 type: boolean
4032 default: false
4033 scope: local
4034 When this option is set, directory view will be displayed in
4035 multiple cascading columns. Ignores 'lsview'.
4036
4037 'mintimeoutlen'
4038 type: integer
4039 default: 150
4040 The fracture of 'timeoutlen' in milliseconds that is waited
4041 between subsequent input polls, which affects various asynchro‐
4042 nous operations (detecting changes made by external applica‐
4043 tions, monitoring background jobs, redrawing UI). There are no
4044 strict guarantees, however the higher this value is, the less is
4045 CPU load in idle mode.
4046
4047 'number' 'nu'
4048 type: boolean
4049 default: false
4050 scope: local
4051 Print line number in front of each file name when 'lsview'
4052 option is turned off. Use 'numberwidth' to control width of
4053 line number. Also see 'relativenumber'.
4054
4055 'numberwidth' 'nuw'
4056 type: integer
4057 default: 4
4058 scope: local
4059 Minimal number of characters for line number field.
4060
4061 'previewprg'
4062 type: string
4063 default: ""
4064 scope: local
4065
4066 External command to be used instead of preview programs config‐
4067 ured via :fileviewer command.
4068
4069 Example:
4070
4071 " always show git log in preview of files inside some repository
4072 au DirEnter '~/git-repo/**/*' setl previewprg='git log --color -- %c 2>&1'
4073
4074 'quickview'
4075 type: boolean
4076 default: false
4077 Whether quick view (:view) is currently active or not.
4078
4079 'relativenumber' 'rnu'
4080 type: boolean
4081 default: false
4082 scope: local
4083 Print relative line number in front of each file name when
4084 'lsview' option is turned off. Use 'numberwidth' to control
4085 width of line number. Various combinations of 'number' and
4086 'relativenumber' lead to such results:
4087
4088 nonumber number
4089
4090 norelativenumber | first | 1 first
4091 | second | 2 second
4092 | third | 3 third
4093
4094 relativenumber | 1 first | 1 first
4095 | 0 second |2 second
4096 | 1 third | 1 third
4097
4098
4099 'rulerformat' 'ruf'
4100 type: string
4101 default: "%l/%S "
4102 Determines the content of the ruler. Its minimal width is 13
4103 characters and it's right aligned. Following macros are sup‐
4104 ported:
4105 %= - separation point between left and right aligned halves of
4106 the line
4107 %l - file number
4108 %L - total number of files in view (including filtered out
4109 ones)
4110 %x - number of files excluded by filters
4111 %0- - old name for %x macro
4112 %S - number of displayed files
4113 %= - separation point between left and right align items
4114 %% - literal percent sign
4115 %[ - designates beginning of an optional block
4116 %] - designates end of an optional block
4117
4118 Percent sign can be followed by optional minimum field width.
4119 Add '-' before minimum field width if you want field to be right
4120 aligned.
4121
4122 Optional blocks are ignored unless at least one macro inside of
4123 them is expanded to a non-empty value.
4124
4125 Example:
4126
4127 set rulerformat='%2l-%S%[ +%x%]'
4128
4129 'runexec'
4130 type: boolean
4131 default: false
4132 Run executable file on Enter, l or Right Arrow key. Behaviour
4133 of the last two depends on the value of the 'lsview' option.
4134
4135 'scrollbind' 'scb'
4136 type: boolean
4137 default: false
4138 When this option is set, vifm will try to keep difference of
4139 scrolling positions of two windows constant.
4140
4141 'scrolloff' 'so'
4142 type: integer
4143 default: 0
4144 Minimal number of screen lines to keep above and below the cur‐
4145 sor. If you want cursor line to always be in the middle of the
4146 view (except at the beginning or end of the file list), set this
4147 option to some large value (e.g. 999).
4148
4149 'sessionoptions' 'ssop'
4150 sessionoptions ssop
4151 type: set
4152 default: tui,state,tabs,savedirs,dhistory
4153 An equivalent of 'vifminfo' for sessions, uses the same values.
4154 When both options include the same value, data from session file
4155 has higher priority (data from vifminfo isn't necessarily com‐
4156 pletely discarded, instead it's merged with the state of a ses‐
4157 sion the same way state of multiple instances is merged on
4158 exit).
4159
4160 'shell' 'sh'
4161 type: string
4162 default: $SHELL or "/bin/sh" or "cmd" (on MS-Windows)
4163 Full path to the shell to use to run external commands. On *nix
4164 a shell argument can be supplied.
4165
4166 'shellcmdflag' 'shcf'
4167 type: string
4168 default: "-c" or "/C" (for cmd.exe on MS-Windows)
4169 Command-line option used to pass a command to 'shell'. It's
4170 used in contexts where command comes from the user.
4171
4172 Note that using this option to force interactive mode of the
4173 shell is most likely a BAD IDEA. In general interactive host
4174 and interactive child shell can't share the same terminal ses‐
4175 sion. You can't even run such a shell in background. Consider
4176 writing a wrapper for your shell that preloads aliases and com‐
4177 mands without making the shell interactive and ending up using
4178 it in a way it was not meant to be used.
4179
4180 Note that this option is ignored when 'shell' is set to Power‐
4181 Shell due to the internal use of `-encodedCommand`.
4182
4183 'shortmess' 'shm'
4184 type: charset
4185 default: "p"
4186 Contains a sequence of single-character flags. Each flag
4187 enables shortening of some message displayed by vifm in the TUI.
4188 Flags:
4189 - L - display only last directory in tab line instead of full
4190 path.
4191 - M - shorten titles in windows of terminal multiplexers cre‐
4192 ated by vifm down to file name instead of using full path.
4193 - T - truncate status-bar messages in the middle if they are
4194 too long to fit on the command line. "..." will appear in the
4195 middle.
4196 - p - use tilde shortening in view titles.
4197
4198
4199 'showtabline' 'stal'
4200 type: enumeration
4201 default: multiple
4202 Specifies when tab line should be displayed. Possible values:
4203 - never - never display tab line
4204 - multiple - show tab line only when there are at least two
4205 tabs
4206 - always - display tab line always
4207
4208 Alternatively 0, 1 and 2 Vim-like values are also accepted and
4209 correspond to "never", "multiple" and "always" respectively.
4210
4211
4212 'sizefmt'
4213 type: string list
4214 default: "units:iec"
4215 Configures the way size is formatted in human-friendly way.
4216
4217 item value meaning
4218 units: iec Use 1024 byte units (K or KiB,
4219 etc.).
4220 See 'iec' option.
4221 si Use 1000 byte units (KB, etc.).
4222 precision: i > 0 How many fraction digits to con‐
4223 sider.
4224 {not set} Precision of 1 for integer part
4225 < 10,
4226 0 otherwise (provides old behav‐
4227 iour).
4228 space {present} Insert space before unit sym‐
4229 bols.
4230 This is the default.
4231 nospace {present} Do not insert space before unit
4232 symbols.
4233
4234 Numbers are rounded from zero. Trailing zeros are dropped.
4235
4236 Example:
4237
4238 set sizefmt=units:iec,precision:2,nospace
4239
4240
4241 'slowfs'
4242 type: string list
4243 default: ""
4244 only for *nix
4245 A list of mounter fs name beginnings (first column in /etc/mtab
4246 or /proc/mounts) or paths prefixes for fs/directories that work
4247 too slow for you. This option can be used to stop vifm from
4248 making some requests to particular kinds of file systems that
4249 can slow down file browsing. Currently this means don't check
4250 if directory has changed, skip check if target of symbolic links
4251 exists, assume that link target located on slow fs to be a
4252 directory (allows entering directories and navigating to files
4253 via gf). If you set the option to "*", it means all the systems
4254 are considered slow (useful for cygwin, where all the checks
4255 might render vifm very slow if there are network mounts).
4256
4257 Example for autofs root /mnt/autofs:
4258
4259 set slowfs+=/mnt/autofs
4260
4261 'smartcase' 'scs'
4262 type: boolean
4263 default: false
4264 Overrides the ignorecase option if a pattern contains at least
4265 one upper case character. Only used when 'ignorecase' option is
4266 enabled.
4267
4268 'sort' type: string list
4269 default: +name on *nix and +iname on Windows
4270 scope: local
4271 Sets list of sorting keys (first item is primary key, second is
4272 secondary key, etc.):
4273 [+-]ext - extension of files and directories
4274 [+-]fileext - extension of files only
4275 [+-]name - name (including extension)
4276 [+-]iname - name (including extension, ignores case)
4277 [+-]type - file type
4278 (dir/reg/exe/link/char/block/sock/fifo)
4279 [+-]dir - directory grouping (directory < file)
4280 [+-]gid - group id (*nix only)
4281 [+-]gname - group name (*nix only)
4282 [+-]mode - file type derived from its mode (*nix only)
4283 [+-]perms - permissions string (*nix only)
4284 [+-]uid - owner id (*nix only)
4285 [+-]uname - owner name (*nix only)
4286 [+-]nlinks - number of hard links (*nix only)
4287 [+-]inode - inode number (*nix only)
4288 [+-]size - size
4289 [+-]nitems - number of items in a directory (zero for files)
4290 [+-]groups - groups extracted via regexps from 'sortgroups'
4291 [+-]target - symbolic link target (empty for other file
4292 types)
4293 [+-]atime - time accessed (e.g. read, executed)
4294 [+-]ctime - time changed (changes in metadata, e.g. mode)
4295 [+-]mtime - time modified (when file contents is changed)
4296
4297 Note: look for st_atime, st_ctime and st_mtime in "man 2 stat"
4298 for more information on time keys.
4299
4300 '+' means ascending sort for this key, and '-' means descending
4301 sort.
4302
4303 "dir" key is somewhat similar in this regard but it's added
4304 implicitly: when "dir" is not specified, sorting behaves as if
4305 it was the first key in the list. That's why if one wants sort‐
4306 ing algorithm to mix directories and files, "dir" should be
4307 appended to sorting option, for example like this:
4308
4309 set sort+=dir
4310
4311 or
4312
4313 set sort=-size,dir
4314
4315 Value of the option is checked to include dir key and default
4316 sorting key (name on *nix, iname on Windows). Here is what hap‐
4317 pens if one of them is missing:
4318
4319 - type key is added at the beginning;
4320
4321 - default key is added at the end;
4322
4323 all other keys are left untouched (at most they are moved).
4324
4325 This option also changes view columns according to primary sort‐
4326 ing key set, unless 'viewcolumns' option is not empty.
4327
4328 'sortnumbers'
4329 type: boolean
4330 default: false
4331 scope: local
4332 Natural sort of (version) numbers within text.
4333
4334 'sortgroups'
4335 type: string
4336 default: ""
4337 scope: local
4338 Sets comma-separated list of regular expressions for group type
4339 of sorting. Double the comma to insert it literally.
4340
4341 The regular expressions are used to extract substrings of file
4342 names to serve as keys for sorting. It is essentially a way to
4343 ignore uninteresting parts of file names during sorting by name.
4344
4345 Each expression should contain at least one group or its value
4346 will be considered to be always empty. Also, only the first
4347 match of regular expression is processed.
4348
4349 The first group divides list of files into sub-groups, each of
4350 which is then sorted by substrings extracted using second regu‐
4351 lar expression and so on recursively.
4352
4353 Example:
4354 set sortgroups=-(todo|done).*
4355 this would group files with "-done" in their names and files
4356 with "-todo" separately. On ascending sorting, group containing
4357 "-done" would appear before the other one.
4358
4359 'sortorder'
4360 type: enumeration
4361 default: ascending
4362 Sets sort order for primary key: ascending, descending.
4363
4364 'statusline' 'stl'
4365 type: string
4366 default: ""
4367 Determines the content of the status line (the line right above
4368 command-line). Empty string means use same format like in pre‐
4369 vious versions. Following macros are supported:
4370
4371 - %t - file name (considering value of the 'classify' option)
4372
4373 - %T - symbolic link target (empty for other filetypes)
4374
4375 - %f - file name relative to current directory (considers 'clas‐
4376 sify')
4377
4378 - %A - file attributes (permissions on *nix or properties on
4379 Windows)
4380
4381 - %u - user name or uid (if it cannot be resolved)
4382
4383 - %g - group name or gid (if it cannot be resolved)
4384
4385 - %s - file size in human readable format
4386
4387 - %E - size of selected files in human readable format, same as
4388 %s when no files are selected, except that it will never show
4389 size of ../ in visual mode, since it cannot be selected
4390
4391 - %d - file modification date (uses 'timefmt' option)
4392
4393 - %D - path of the other pane for single-pane layout
4394
4395 - %a - amount of free space available at current partition
4396
4397 - %z - short tips/tricks/hints that chosen randomly after one
4398 minute period
4399
4400 - %{<expr>} - evaluate arbitrary vifm expression '<expr>', e.g.
4401 '&sort'
4402
4403 - %* - resets or applies one of User1..User9 highlight groups;
4404 reset happens when width field is 0 or not specified, one of
4405 groups gets picked when width field is in the range from 1 to
4406 9
4407
4408 - all 'rulerformat' macros
4409
4410 Percent sign can be followed by optional minimum field width.
4411 Add '-' before minimum field width if you want field to be right
4412 aligned.
4413
4414 On Windows file properties include the following flags (upper
4415 case means flag is on):
4416 A - archive
4417 H - hidden
4418 I - content isn't indexed
4419 R - readonly
4420 S - system
4421 C - compressed
4422 D - directory
4423 E - encrypted
4424 P - reparse point (e.g. symbolic link)
4425 Z - sparse file
4426
4427 Example without colors:
4428
4429 set statusline=" %t%= %A %10u:%-7g %15s %20d %{&sort} "
4430
4431 Example with colors:
4432
4433 highlight User1 ctermbg=yellow
4434 highlight User2 ctermbg=blue ctermfg=white cterm=bold
4435 set statusline="%1* %-26t %2* %= %1* %A %2* %7u:%-7g %1* %-5s %2* %d "
4436
4437
4438 'suggestoptions'
4439 type: string list
4440 default:
4441 Controls when, for what and how suggestions are displayed. The
4442 following values are available:
4443 - normal - in normal mode;
4444 - visual - in visual mode;
4445 - view - in view mode;
4446 - otherpane - use other pane to display suggestions, when
4447 available;
4448 - delay[:num] - display suggestions after a small delay (to
4449 do not annoy if you just want to type a fast shortcut consisting
4450 of multiple keys), num specifies the delay in ms (500 by
4451 default), 'timeoutlen' at most;
4452 - keys - include shortcuts (commands and selectors);
4453 - foldsubkeys - fold multiple keys with common prefix;
4454 - marks - include marks;
4455 - registers[:num] - include registers, at most num files (5 by
4456 default).
4457
4458 'syncregs'
4459 type: string
4460 default:
4461 Specifies identifier of group of instances that share registers
4462 between each other. When several instances of vifm have this
4463 option set to identical value, they automatically synchronize
4464 contents of their registers on operations which use them.
4465
4466 'syscalls'
4467 type: boolean
4468 default: false
4469 When disabled, vifm will rely on external applications to per‐
4470 form file-system operations, otherwise system calls are used
4471 instead (much faster and supports progress tracking). The
4472 option should eventually be removed. Mostly *nix-like systems
4473 are affected.
4474
4475 'tablabel'
4476 type: string
4477 default: ""
4478 When non-empty, determines format of the main part of a single
4479 tab's label.
4480
4481 When empty, tab label is set to either tab name for named tabs
4482 or to view title (usually current path) for unnamed tabs.
4483
4484 The following macros can appear in the format (see below for
4485 what a flag is):
4486
4487 - %C - flag of a current tab
4488
4489 - %N - number of the tab
4490
4491 - %T - flag of a tree mode
4492
4493 - %c - description of a custom view
4494
4495 - %n - name of the tab
4496
4497 - %p - path of the view (handles filename modifiers)
4498
4499 - %t - title of the view (affected by 'shortmess' flags)
4500
4501 - %% - literal percent sign
4502
4503 - %[ - designates beginning of an optional block
4504
4505 - %] - designates end of an optional block
4506
4507 - %*, %0* - resets highlighting
4508
4509 - %1-%9 - applies one of User1..User9 highlight groups
4510
4511 In global tabs the view in bullets above refers to currently
4512 active view of that tab.
4513
4514 Flag macros are a special kind of macros that always expand to
4515 an empty value and are ment to be used inside optional blocks to
4516 control their visibility.
4517
4518 Optional blocks are ignored unless at least one macro inside of
4519 them is expanded to a non-empty value or is a set flag macro.
4520
4521 " %[(%n)%] -- optional name of the tab
4522 " %[ -- optional description of the view
4523 " %[%T{tree}%] -- mark of tree mode
4524 " %[{%c}%] -- description of custom view
4525 " @ -- just an extra separator before the path
4526 ' %]
4527 " %p:t -- tail part of view's location
4528 set tablabel=%[(%n)%]%[%[%T{tree}%]%[{%c}%]@%]%p:t
4529
4530 'tabprefix'
4531 type: string
4532 default: "[%N:"
4533 Determines prefix of a tab's label. Formatting is done as for
4534 'tablabel' option.
4535
4536 'tabscope'
4537 type: enumeration
4538 default: global
4539 Picks style of tabs, which defines what a single tab contains.
4540 Possible values:
4541 - global - tab describes complete UI of two views and how they
4542 are arranged
4543 - pane - tab is located "inside" a pane and manages it and
4544 quick view
4545
4546 'tabstop' 'ts'
4547 type: integer
4548 default: value from curses library
4549 Number of spaces that a Tab in the file counts for.
4550
4551 'tabsuffix'
4552 type: string
4553 default: "]"
4554 Determines suffix of a tab's label. Formatting is done as for
4555 'tablabel' option.
4556
4557 'timefmt'
4558 type: string
4559 default: "%m/%d %H:%M"
4560 Format of time in file list. See "man 1 date" or "man 3 strf‐
4561 time" for details.
4562
4563 'timeoutlen' 'tm'
4564 type: integer
4565 default: 1000
4566 The time in milliseconds that is waited for a mapped key in case
4567 of already typed key sequence is ambiguous.
4568
4569 'title'
4570 type: boolean
4571 default: true when title can be restored, false otherwise
4572 When enabled, title of the terminal or terminal multiplexer's
4573 window is updated according to current location. Because not
4574 all terminals support setting title, this works only if `$TERM`
4575 value matches one of the following conditions:
4576 - equals "xterm" or starts with "xterm-"
4577 - equals "rxvt" or starts with "rxvt-"
4578 - equals "screen" or starts with "screen-"
4579 - equals "aterm"
4580 - equals "Eterm"
4581
4582 'trash'
4583 type: boolean
4584 default: true
4585 Use trash directory. See "Trash directory" section below.
4586
4587 'trashdir'
4588 type: string
4589 default: on *nix:
4590 "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash"
4591 or if $VIFM/Trash doesn't exist
4592 "%r/.vifm-Trash-%u,$XDG_DATA_HOME/vifm/Trash,%r/.vifm-Trash"
4593 on Windows:
4594 "%r/.vifm-Trash,$XDG_DATA_HOME/vifm/Trash"
4595 List of trash directory path specifications, separated with com‐
4596 mas. Each list item either defines an absolute path to trash
4597 directory or a path relative to a mount point root when list
4598 element starts with "%r/". Value of the option can contain
4599 environment variables (of form "$envname"), which will be
4600 expanded (prepend $ with a slash to prevent expansion). Envi‐
4601 ronment variables are expanded when the option is set.
4602
4603 On *nix, if element ends with "%u", the mark is replaced with
4604 real user ID and permissions are set so that only that only
4605 owner is able to use it.
4606 Note that even this setup is not completely secure when combined
4607 with "%r/" and it's overall safer to keep files in home direc‐
4608 tory, but that implies cost of copying files between partitions.
4609
4610 When new file gets cut (deleted) vifm traverses each element of
4611 the option in the order of their appearance and uses first trash
4612 directory that it was able to create or that is already
4613 writable.
4614
4615 Default value tries to use trash directory per mount point and
4616 falls back to ~/.vifm/Trash on failure.
4617
4618 Will attempt to create the directory if it does not exist. See
4619 "Trash directory" section below.
4620
4621 'tuioptions' 'to'
4622 type: charset
4623 default: "psv"
4624 Each flag configures some aspect of TUI appearance. The flags
4625 are:
4626 p - when included:
4627 * file list inside a pane gets additional single character
4628 padding on left and right sides;
4629 * quick view and view mode get single character padding.
4630 s - when included, left and right borders (side borders, hence
4631 "s" character) are visible.
4632 u - use Unicode characters in the TUI (Unicode ellipsis instead
4633 of "...").
4634 v - vary width of middle border to equalize view sizes.
4635
4636 'undolevels' 'ul'
4637 type: integer
4638 default: 100
4639 Maximum number of changes that can be undone. Note that here
4640 single file operation is used as a unit, not operation, i.e.
4641 deletion of 101 files will exceed default limit.
4642
4643 'vicmd'
4644 type: string
4645 default: "vim"
4646 Command used to edit files in various contexts. Ampersand sign
4647 at the end (regardless whether it's preceded by space or not)
4648 means backgrounding of command.
4649
4650 Background flag is ignored in certain context where vifm waits
4651 for the editor to finish. Such contexts include any command
4652 that spawns editor to change list of file names or a command,
4653 with :rename being one example. `-f` is also appended to pre‐
4654 vent forking in such cases, so the command needs to handle the
4655 flag.
4656
4657 Additionally `+{num}` and `+'call cursor()'` arguments are used
4658 to position cursor when location is known.
4659
4660 'viewcolumns'
4661 type: string
4662 default: ""
4663 scope: local
4664 Format string containing list of columns in the view. When this
4665 option is empty, view columns to show are chosen automatically
4666 using sorting keys (see 'sort') as a base. Value of this option
4667 is ignored if 'lsview' is set. See "Column view" section below
4668 for format description.
4669
4670 An example of setting the options for both panes (note :windo
4671 command):
4672
4673 windo set viewcolumns=-{name}..,6{size},11{perms}
4674
4675 'vixcmd'
4676 type: string
4677 default: value of 'vicmd'
4678 Same as 'vicmd', but takes precedence over it when running
4679 inside a graphical environment.
4680
4681 'vifminfo'
4682 type: set
4683 default: bookmarks,bmarks
4684 Controls what will be saved in the $VIFM/vifminfo file.
4685
4686 bmarks - named bookmarks (see :bmark command)
4687 bookmarks - marks, except special ones like '< and '>
4688 tui - state of the user interface (sorting, number of
4689 windows, quick
4690 view state, active view)
4691 dhistory - directory history
4692 state - file name and dot filters and terminal multiplex‐
4693 ers integration
4694 state
4695 cs - primary color scheme
4696 savedirs - save last visited directory
4697 chistory - command line history
4698 shistory - search history (/ and ? commands)
4699 phistory - prompt history
4700 fhistory - history of local filter (see description of the
4701 "=" normal mode
4702 command)
4703 dirstack - directory stack overwrites previous stack, unless
4704 stack of
4705 current instance is empty
4706 registers - registers content
4707 tabs - global or pane tabs
4708 options - all options that can be set with the :set command
4709 (obsolete)
4710 filetypes - associated programs and viewers (obsolete)
4711 commands - user defined commands (see :command description)
4712 (obsolete)
4713
4714 'vimhelp'
4715 type: boolean
4716 default: false
4717 Use vim help format.
4718
4719 'wildmenu' 'wmnu'
4720 type: boolean
4721 default: false
4722 Controls whether possible matches of completion will be shown
4723 above the command line.
4724
4725 'wildstyle'
4726 type: enumeration
4727 default: bar
4728 Picks presentation style of wild menu. Possible values:
4729 - bar - one-line with left-to-right cursor
4730 - popup - multi-line with top-to-bottom cursor
4731
4732 'wordchars'
4733 type: string list
4734 default: "1-8,14-31,33-255" (that is all non-whitespace charac‐
4735 ters)
4736 Specifies which characters in command-line mode should be con‐
4737 sidered as part of a word. Value of the option is comma-sepa‐
4738 rated list of ranges. If both endpoints of a range match, sin‐
4739 gle endpoint is enough (e.g. "a" = "a-a"). Both endpoints are
4740 inclusive. There are two accepted forms: character representing
4741 itself or number encoding character according to ASCII table.
4742 In case of ambiguous characters (dash, comma, digit) use numeric
4743 form. Accepted characters are in the range from 0 to 255. Any
4744 Unicode character with code greater than 255 is considered to be
4745 part of a word.
4746
4747 The option affects Alt-D, Alt-B and Alt-F, but not Ctrl-W. This
4748 is intentionally to allow two use cases:
4749
4750 - Moving by WORDS and deletion by words.
4751 - Moving by words and deletion by WORDS.
4752
4753 To get the latter use the following mapping:
4754
4755 cnoremap <c-w> <a-b><a-d>
4756
4757 Also used for abbreviations.
4758
4759 'wrap' type: boolean
4760 default: true
4761 Controls whether to wrap text in quick view.
4762
4763 'wrapscan' 'ws'
4764 type: boolean
4765 default: true
4766 Searches wrap around end of the list.
4767
4769 Map arguments
4770
4771 LHS of mappings can be preceded by arguments which take the form of
4772 special sequences:
4773
4774 <silent>
4775 Postpone UI updates until RHS is completely processed.
4776
4777 <wait> In case of builtin mapping causing conflict for a user-defined
4778 mapping (e.g., `t` builtin to a partially typed `ta` user-
4779 defined mapping), ignore the builtin mapping and wait for input
4780 indefinitely as opposed to default behaviour of triggering the
4781 builtin mapping after a delay defined by 'timeoutlen'. Example:
4782
4783 nnoremap <wait> tw :set wrap!<cr>
4784 nnoremap <wait> tn :set number!<cr>
4785 nnoremap <wait> tr :set relativenumber!<cr>
4786
4787 Special sequences
4788
4789 Since it's not easy to enter special characters there are several spe‐
4790 cial sequences that can be used in place of them. They are:
4791
4792 <cr> Enter key.
4793
4794 <esc> Escape key.
4795
4796 <space>
4797 Space key.
4798
4799 <lt> Less-than character (<).
4800
4801 <nop> provides a way to disable a mapping (by mapping it to <nop>).
4802
4803 <bs> Backspace key (see key conflict description below).
4804
4805 <tab> <s-tab>
4806 Tabulation and Shift+Tabulation keys.
4807
4808 <home> <end>
4809 Home/End.
4810
4811 <left> <right> <up> <down>
4812 Arrow keys.
4813
4814 <pageup> <pagedown>
4815 PageUp/PageDown.
4816
4817 <del> <delete>
4818 Delete key. <del> and <delete> mean different codes, but
4819 <delete> is more common.
4820
4821 <insert>
4822 Insert key.
4823
4824 <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_>
4825 Control + some key (see key conflict description below).
4826
4827 <c-@> only for *nix
4828 Control + Space.
4829
4830 <a-a>,<a-b>,...,<a-z>
4831 <m-a>,<m-b>,...,<m-z> Alt + some key.
4832
4833 <a-c-a>,<a-c-b>,...,<a-c-z>
4834 <m-c-a>,<m-c-b>,...,<m-c-z> only for *nix
4835 Alt + Ctrl + some key.
4836
4837 <f0> - <f63>
4838 Functional keys.
4839
4840 <c-f1> - <c-f12>
4841 only for MS-Windows
4842 functional keys with Control key pressed.
4843
4844 <a-f1> - <a-f12>
4845 only for MS-Windows
4846 functional keys with Alt key pressed.
4847
4848 <s-f1> - <s-f12>
4849 only for MS-Windows
4850 functional keys with Shift key pressed.
4851
4852 Note that due to the way terminals process their input, several key‐
4853 board keys might be mapped to single key code, for example:
4854
4855 - <cr> and <c-m>;
4856
4857 - <tab> and <c-i>;
4858
4859 - <c-h> and <bs>;
4860
4861 - etc.
4862
4863 Most of the time they are defined consistently and don't cause sur‐
4864 prises, but <c-h> and <bs> are treated differently in different envi‐
4865 ronments (although they match each other all the time), that's why they
4866 correspond to different keys in vifm. As a consequence, if you map <c-
4867 h> or <bs> be sure to repeat the mapping with the other one so that it
4868 works in all environments. Alternatively, provide your mapping in one
4869 form and add one of the following:
4870
4871 " if mappings with <c-h> in the LHS work
4872 map <c-h> <bs>
4873 " if mappings with <bs> in the LHS work
4874 map <bs> <c-h>
4875
4876 Whitespace
4877
4878 vifm removes whitespace characters at the beginning and end of com‐
4879 mands. That's why you may want to use <space> at the end of rhs in
4880 mappings. For example:
4881
4882 cmap <f1> man<space>
4883
4884 will put "man " in line when you hit the <f1> key in the command line
4885 mode.
4886
4888 Supported expressions is a subset of what VimL provides.
4889
4890 Expression syntax summary, from least to most significant:
4891
4892 expr1 expr2
4893 expr2 || expr2 .. logical OR
4894
4895 expr2 expr3
4896 expr3 && expr3 .. logical AND
4897
4898 expr3 expr4
4899 expr4 == expr4 equal
4900 expr4 != expr4 not equal
4901 expr4 > expr4 greater than
4902 expr4 >= expr4 greater than or equal
4903 expr4 < expr4 smaller than
4904 expr4 <= expr4 smaller than or equal
4905
4906 expr4 expr5
4907 expr5 + expr5 .. number addition
4908 expr5 - expr5 .. number subtraction
4909
4910 expr5 expr6
4911 expr6 . expr6 .. string concatenation
4912
4913 expr6 expr7
4914 - expr6 unary minus
4915 + expr6 unary plus
4916 ! expr6 logical NOT
4917
4918 expr7 number number constant
4919 "string" string constant, \ is special
4920 'string' string constant, ' is doubled
4921 &option option value
4922 $VAR environment variable
4923 v:var builtin variable
4924 function(expr1, ...) function call
4925 (expr1) nested expression
4926
4927 ".." indicates that the operations in this level can be concatenated.
4928
4929 expr1
4930 -----
4931 expr2 || expr2
4932
4933 Arguments are converted to numbers before evaluation.
4934
4935 Result is non-zero if at least one of arguments is non-zero.
4936
4937 It's right associative and with short-circuiting, so sub-expressions
4938 are evaluated from left to right until result of whole expression is
4939 determined (i.e., until first non-zero) or end of the expression.
4940
4941 expr2
4942 -----
4943 expr3 && expr3
4944
4945 Arguments are converted to numbers before evaluation.
4946
4947 Result is non-zero only if both arguments are non-zero.
4948
4949 It's right associative and with short-circuiting, so sub-expressions
4950 are evaluated from left to right until result of whole expression is
4951 determined (i.e., until first zero) or end of the expression.
4952
4953 expr3
4954 -----
4955 expr4 {cmp} expr4
4956
4957 Compare two expr4 expressions, resulting in a 0 if it evaluates to
4958 false or 1 if it evaluates to true.
4959
4960 equal ==
4961 not equal !=
4962 greater than >
4963 greater than or equal >=
4964 smaller than <
4965 smaller than or equal <=
4966
4967 Examples:
4968
4969 'a' == 'a' == 1
4970 'a' > 'b' == 1
4971 'a' == 'b' == 0
4972 '2' > 'b' == 0
4973 2 > 'b' == 1
4974 2 > '1b' == 1
4975 2 > '9b' == 0
4976 -1 == -'1' == 1
4977 0 == '--1' == 1
4978
4979 expr4
4980 -----
4981 expr5 + expr5 .. number addition expr5 - expr5 .. number sub‐
4982 traction
4983
4984 Examples:
4985
4986 1 + 3 - 3 == 1
4987 1 + '2' == 3
4988
4989 expr5
4990 -----
4991 expr6 . expr6 .. string concatenation
4992
4993 Examples:
4994
4995 'a' . 'b' == 'ab'
4996 'aaa' . '' . 'c' == 'aaac'
4997
4998 expr6
4999 -----
5000
5001 - expr6 unary minus
5002 + expr6 unary plus
5003 ! expr6 logical NOT
5004
5005 For '-' the sign of the number is changed.
5006 For '+' the number is unchanged.
5007 For '!' non-zero becomes zero, zero becomes one.
5008
5009 A String will be converted to a Number first.
5010
5011 These operations can be repeated and mixed. Examples:
5012
5013 --9 == 9
5014 ---9 == -9
5015 -+9 == 9
5016 !-9 == 0
5017 !'' == 1
5018 !'x' == 0
5019 !!9 == 1
5020
5021 expr7
5022 -----
5023
5024 number number constant
5025 -----
5026
5027 Decimal number. Examples:
5028
5029 0 == 0
5030 0000 == 0
5031 01 == 1
5032 123 == 123
5033 10000 == 10000
5034
5035 string
5036 ------
5037 "string" string constant
5038
5039 Note that double quotes are used.
5040
5041 A string constant accepts these special characters:
5042 \b backspace <bs>
5043 \e escape <esc>
5044 \n newline
5045 \r return <cr>
5046 \t tab <tab>
5047 \\ backslash
5048 \" double quote
5049
5050 Examples:
5051
5052 "\"Hello,\tWorld!\""
5053 "Hi,\nthere!"
5054
5055 literal-string
5056 --------------
5057 'string' string constant
5058
5059 Note that single quotes are used.
5060
5061 This string is taken as it is. No backslashes are removed or have a
5062 special meaning. The only exception is that two quotes stand for one
5063 quote.
5064
5065 Examples:
5066
5067 'All\slashes\are\saved.'
5068 'This string contains doubled single quotes ''here'''
5069
5070 option
5071 ------
5072 &option option value (local one is preferred, if exists)
5073 &g:option global option value &l:option local
5074 option value
5075
5076 Examples:
5077
5078 echo 'Terminal size: '.&columns.'x'.&lines
5079 if &columns > 100
5080
5081 Any valid option name can be used here (note that "all" in ":set all"
5082 is a pseudo option). See ":set options" section above.
5083
5084 environment variable
5085 --------------------
5086 $VAR environment variable
5087
5088 The String value of any environment variable. When it is not defined,
5089 the result is an empty string.
5090
5091 Examples:
5092
5093 'This is my $PATH env: ' . $PATH
5094 'vifmrc at ' . $MYVIFMRC . ' is used.'
5095
5096 builtin variable
5097 --------------------
5098 v:var builtin variable
5099
5100 Information exposed by vifm for use in scripting.
5101
5102 v:count
5103 count passed to : command, 0 by default. Can be used in mappings to
5104 passthe count to a different command.
5105 v:count1
5106 same as v:count, but 1 by default.
5107 v:jobcount
5108 number of active jobs (as can be seen in the :jobs menu).
5109 v:session
5110 name of the current session or empty string.
5111 v:servername
5112 See below.
5113
5114 function call
5115 -------------
5116 function(expr1, ...) function call
5117
5118 See "Functions" section below.
5119
5120 Examples:
5121
5122 "'" . filetype('.') . "'"
5123 filetype('.') == 'reg'
5124
5125 expression nesting
5126 ------------------
5127 (expr1) nested expression
5128
5129 Groups any other expression of arbitrary complexity enforcing order in
5130 which operators are applied.
5131
5132
5134 USAGE RESULT DESCRIPTION
5135
5136 chooseopt({opt}) String Queries choose parameters passed on
5137 startup.
5138 executable({expr}) Integer Checks whether {expr} command avail‐
5139 able.
5140 expand({expr}) String Expands special keywords in {expr}.
5141 extcached({cache}, {path}, {extcmd})
5142 String Caches output of {extcmd} per {cache}
5143 and
5144 {path} combination.
5145 filetype({fnum} [, {resolve}])
5146 String Returns file type from position.
5147 fnameescape({expr}) String Escapes {expr} for use in a :command.
5148 getpanetype() String Returns type of current pane.
5149 has({property}) Integer Checks whether instance has {prop‐
5150 erty}.
5151 layoutis({type}) Integer Checks whether layout is of type
5152 {type}.
5153 paneisat({loc}) Integer Checks whether current pane is at
5154 {loc}.
5155 system({command}) String Executes shell command and returns
5156 its output.
5157 tabpagenr([{arg}]) Integer Returns number of current or last
5158 tab.
5159 term({command}) String Like system(), but for interactive
5160 commands.
5161
5162 chooseopt({opt})
5163
5164 Retrieves values of options related to file choosing. {opt} can be one
5165 of:
5166 files returns argument of --choose-files or empty string
5167 dir returns argument of --choose-dir or empty string
5168 cmd returns argument of --on-choose or empty string
5169 delimiter returns argument of --delimiter or the default one (\n)
5170
5171 executable({expr})
5172
5173 If {expr} is absolute or relative path, checks whether path destination
5174 exists and refers to an executable, otherwise checks whether command
5175 named {expr} is present in directories listed in $PATH. Checks for
5176 various executable extensions on Windows. Returns boolean value
5177 describing result of the check.
5178
5179 Example:
5180
5181 " use custom default viewer script if it's available and installed
5182 " in predefined system directory, otherwise try to find it elsewhere
5183 if executable('/usr/local/bin/defviewer')
5184 fileview * /usr/local/bin/defviewer %c
5185 else
5186 if executable('defviewer')
5187 fileview * defviewer %c
5188 endif
5189 endif
5190
5191 expand({expr})
5192
5193 Expands environment variables and macros in {expr} just like it's done
5194 for command-line commands. Returns a string. See "Command macros"
5195 section above.
5196
5197 Examples:
5198
5199 " percent sign
5200 :echo expand('%%')
5201 " the last part of directory name of the other pane
5202 :echo expand('%D:t')
5203 " $PATH environment variable (same as `:echo $PATH`)
5204 :echo expand('$PATH')
5205
5206 extcached({cache}, {path}, {extcmd})
5207
5208 Caches value of {extcmd} external command automatically updating it as
5209 necessary based on monitoring change date of a {path}. The cache is
5210 invalidated when file or its meta-data is updated. A single path can
5211 have multiple caches associated with it.
5212
5213 {path} value is normalized, but symbolic links in it aren't resolved.
5214
5215 Example:
5216
5217 " display number and size of blocks actually used by a file or directory
5218 set statusline+=" Uses: %{ extcached('uses',
5219 expand('%c'),
5220 expand('stat --format=%%bx%%B %c')) }"
5221
5222 filetype({fnum} [, {resolve}])
5223
5224 The result is a string, which represents file type and is one of the
5225 list:
5226 exe executables
5227 reg regular files
5228 link symbolic links
5229 broken broken symbolic links (appears only when resolving)
5230 dir directories
5231 char character devices
5232 block block devices
5233 fifo pipes
5234 sock *nix domain sockets
5235 ? unknown file type (should not normally happen) or
5236 non-file (pseudo-entries in compare view)
5237
5238 The result can also be an empty string in case of invalid argument.
5239
5240 Parameter {fnum} can have following values:
5241 - '.' to get type of file under the cursor in the active pane
5242 - numerical value base 1 to get type of file on specified line num‐
5243 ber
5244
5245 Optional parameter {resolve} is treated as a boolean and specifies
5246 whether symbolic links should be resolved.
5247
5248 fnameescape({expr})
5249
5250 Escapes parameter to make it suitable for use as an argument of a :com‐
5251 mand. List of escaped characters includes %, which is doubled.
5252
5253 Usage example:
5254
5255 " navigate to most recently modified file in current directory
5256 execute 'goto' fnameescape(system('ls -t | head -1'))
5257
5258 getpanetype()
5259
5260 Retrieves string describing type of current pane. Possible return val‐
5261 ues:
5262 regular regular file listing of some directory
5263 custom custom file list (%u)
5264 very-custom very custom file list (%U)
5265 tree tree view
5266
5267 has({property})
5268
5269 Allows examining internal parameters from scripts to e.g. figure out
5270 environment in which application is running. Returns 1 if property is
5271 true/present, otherwise 0 is returned. Currently the following proper‐
5272 ties are supported (anything else will yield 0):
5273 unix runs in *nix-like environment (including Cygwin)
5274 win runs on Windows
5275
5276 Usage example:
5277
5278 " skip user/group on Windows
5279 if !has('win')
5280 let $RIGHTS = '%10u:%-7g '
5281 endif
5282
5283 execute 'set' 'statusline=" %t%= %A '.$RIGHTS.'%15E %20d "'
5284
5285 layoutis({type})
5286
5287 Checks whether current interface layout is {type} or not, where {type}
5288 can be:
5289 only single-pane mode
5290 split double-pane mode (either vertical or horizontal split)
5291 vsplit vertical split (left and right panes)
5292 hsplit horizontal split (top and bottom panes)
5293
5294 Usage example:
5295
5296 " automatically split vertically before enabling preview
5297 :nnoremap w :if layoutis('only') | vsplit | endif | view!<cr>
5298
5299 paneisat({loc})
5300
5301 Checks whether position of active pane in current layout matches one of
5302 the following locations:
5303 top pane reaches top border
5304 bottom pane reaches bottom border
5305 left pane reaches left border
5306 right pane reaches right border
5307
5308 system({command})
5309
5310 Runs the command in shell and returns its output (joined standard out‐
5311 put and standard error streams). All trailing newline characters are
5312 stripped to allow easy appending to command output. Ctrl-C should
5313 interrupt the command.
5314
5315 Use this function to consume output of external commands that don't
5316 require user interaction and term() for interactive commands that make
5317 use of terminal and are capable of handling stream redirection.
5318
5319 Usage example:
5320
5321 " command to enter .git/ directory of git-repository (when ran inside one)
5322 command! cdgit :execute 'cd' fnameescape(system('git rev-parse --git-dir'))
5323
5324 tabpagenr([{arg}])
5325
5326 When called without arguments returns number of current tab page base
5327 one.
5328
5329 When called with "$" as an argument returns number of the last tab page
5330 base one, which is the same as number of tabs.
5331
5332 term({command})
5333
5334 Same as system() function, but user interface is shutdown during the
5335 execution of the command, which makes sure that external interactive
5336 applications won't affect the way terminal is used by vifm.
5337
5338 Usage example:
5339
5340 " command to change directory by picking it via fzf
5341 command! fzfcd :execute 'cd'
5342 fnameescape(term('find -type d | fzf 2> /dev/tty'))
5343
5345 When navigating to some path from a menu there is a difference in end
5346 location depending on whether path has trailing slash or not. Files
5347 normally don't have trailing slashes so "file/" won't work and one can
5348 only navigate to a file anyway. On the other hand with directories
5349 there are two options: navigate to a directory or inside of it. To
5350 allow both use cases, the first one is used on paths like "dir" and the
5351 second one for "dir/".
5352
5353 Commands
5354
5355 :range navigate to a menu line.
5356
5357 :exi[t][!] :q[uit][!] :x[it][!]
5358 leave menu mode.
5359
5360 :noh[lsearch]
5361 reset search match highlighting.
5362
5363 :w[rite] {dest}
5364 write all menu lines into file specified by {dest}.
5365
5366 General
5367
5368 j, Ctrl-N - move down.
5369 k, Ctrl-P - move up.
5370 Enter, l - select and exit the menu.
5371 Ctrl-L - redraw the menu.
5372
5373 Escape, Ctrl-C, ZZ, ZQ, q - quit.
5374
5375 In all menus
5376
5377 The following set of keys has the same meaning as in normal mode.
5378
5379 Ctrl-B, Ctrl-F
5380 Ctrl-D, Ctrl-U
5381 Ctrl-E, Ctrl-Y
5382 /, ?
5383 n, N
5384 [count]G, [count]gg
5385 H, M, L
5386 zb, zt, zz
5387
5388 zh - scroll menu items [count] characters to the right.
5389 zl - scroll menu items [count] characters to the left.
5390 zH - scroll menu items half of screen width characters to the right.
5391 zL - scroll menu items half of screen width characters to the left.
5392
5393 : - enter command line mode for menus (currently only :exi[t], :q[uit],
5394 :x[it] and :{range} are supported).
5395
5396 b - interpret content of the menu as list of paths and use it to create
5397 custom view in place of previously active pane. See "Custom views"
5398 section below.
5399 B - same as above, but creates unsorted view.
5400
5401 v - load menu content into quickfix list of the editor (Vim compatible
5402 by assumption) or if list doesn't have separators after file names
5403 (colons) open each line as a file name.
5404
5405
5406 Below is description of additional commands and reaction on selection
5407 in some menus and dialogs.
5408
5409 Apropos menu
5410
5411 Selecting menu item runs man on a given topic. Menu won't be closed
5412 automatically to allow view several pages one by one.
5413
5414 Command-line mode abbreviations menu
5415
5416 Type dd on an abbreviation to remove it.
5417
5418 c leaves menu preserving file selection and inserts right-hand side of
5419 selected command into command-line.
5420
5421 Color scheme menu
5422
5423 Selecting name of a color scheme applies it the same way as if ":col‐
5424 orscheme <name>" was executed on the command-line.
5425
5426 Commands menu
5427
5428 Selecting command executes it with empty arguments (%a).
5429
5430 dd on a command to remove.
5431
5432 Marks menu
5433
5434 Selecting mark navigates to it.
5435
5436 dd on a mark to remove it.
5437
5438 Bookmarks menu
5439
5440 Selecting a bookmark navigates to it.
5441
5442 Type dd on a bookmark to remove it.
5443
5444 gf and e also work to make it more convenient to bookmark files.
5445
5446 Trash (:lstrash) menu
5447
5448 r on a file name to restore it from trash.
5449
5450 dd deletes file under the cursor.
5451
5452 Trashes (:trashes) menu
5453
5454 dd empties selected trash in background.
5455
5456 Directory history and Trashes menus
5457
5458 Selecting directory name will change directory of the current view as
5459 if :cd command was used.
5460
5461 Directory stack menu
5462
5463 Selecting directory name will rotate stack to put selected directory
5464 pair at the top of the stack.
5465
5466 File (:file) menu
5467
5468 Commands from vifmrc or typed in command-line are displayed above empty
5469 line. All commands below empty line are from .desktop files.
5470
5471 c leaves menu preserving file selection and inserts command after :! in
5472 command-line mode.
5473
5474 Grep, find, locate, bookmarks and user menu with navigation (%M macro)
5475
5476 gf - navigate previously active view to currently selected item.
5477 Leaves menu mode except for grep menu. Pressing Enter key has the same
5478 effect.
5479
5480 e - open selected path in the editor, stays in menu mode.
5481
5482 c - leave menu preserving file selection and insert file name after :!
5483 in command-line mode.
5484
5485 User menu without navigation (%m macro)
5486
5487 c leaves menu preserving file selection and inserts whole line after :!
5488 in command-line mode.
5489
5490 Grep menu
5491
5492 Selecting file (via Enter or l key) opens it in editor set by 'vicmd'
5493 at given line number. Menu won't be closed automatically to allow
5494 viewing more than one result.
5495
5496 See above for "gf" and "e" keys description.
5497
5498 Command-line history menu
5499
5500 Selecting an item executes it as command-line command, search query or
5501 local filter.
5502
5503 c leaves menu preserving file selection and inserts line into command-
5504 line of appropriate kind.
5505
5506 Volumes menu
5507
5508 Selecting a drive navigates previously active pane to the root of that
5509 drive.
5510
5511 Fileinfo dialog
5512
5513 Enter, q - close dialog
5514
5515 Sort dialog
5516
5517 h, Space - switch ascending/descending.
5518 q - close dialog
5519
5520 One shortcut per sorting key (see the dialog).
5521
5522 Attributes (permissions or properties) dialog
5523
5524 h, Space - check/uncheck.
5525 q - close dialog
5526
5527 Item states:
5528
5529 - * - checked flag.
5530
5531 - X - means that it has different value for files in selection.
5532
5533 - d (*nix only) - (only for execute flags) means u-x+X, g-x+X or o-x+X
5534 argument for the chmod program. If you're not on OS X and want to
5535 remove execute permission bit from all files, but preserve it for
5536 directories, set all execute flags to 'd' and check 'Set Recursively'
5537 flag.
5538
5539 Jobs menu
5540
5541 dd requests cancellation of job under cursor. The job won't be removed
5542 from the list, but marked as being cancelled (if cancellation was suc‐
5543 cessfully requested). A message will pop up if the job has already
5544 stopped. Note that on Windows cancelling external programs like this
5545 might not work, because their parent shell doesn't have any windows.
5546
5547 e key displays errors of selected job if any were collected. They are
5548 displayed in a new menu, but you can get back to jobs menu by pressing
5549 h.
5550
5551
5552 Undolist menu
5553
5554 r - reset undo position to group under the cursor.
5555
5556
5557 Media menu
5558
5559 Selecting a device either mounts (if it wasn't mounted yet) or navi‐
5560 gates to its first mount point.
5561
5562 Selecting a mount point navigates to it.
5563
5564 Selecting "not mounted" line causes mounting.
5565
5566 Selecting any other line does nothing.
5567
5568 r - reload the list.
5569
5570 m - mount/unmount device (cursor should be positioned on lines under
5571 device information).
5572
5573 [ - put cursor on the previous device.
5574
5575 ] - put cursor on the next device.
5576
5577
5579 Definition
5580
5581 Normally file views contain list of files from a single directory, but
5582 sometimes it's useful to populate them with list of files that do not
5583 belong to the same directory, which is what custom views are for.
5584
5585 Presentation
5586
5587 Custom views are still related to directory they were in before custom
5588 list was loaded. Path to that directory (original directory) can be
5589 seen in the title of a custom view.
5590
5591 Files in same directory have to be named differently, this doesn't hold
5592 for custom views thus seeing just file names might be rather confusing.
5593 In order to give an idea where files come from and when possible, rela‐
5594 tive paths to original directory of the view is displayed, otherwise
5595 full path is used instead.
5596
5597 Custom views normally don't contain any inexistent files.
5598
5599 Navigation
5600
5601 Custom views have some differences related to navigation in regular
5602 views.
5603
5604 gf - acts similar to gf on symbolic links and navigates to the file at
5605 its real
5606 location.
5607
5608 h - go to closes parent node in tree view, otherwise return to the
5609 original directory.
5610
5611 gh - return to the original directory.
5612
5613 Opening ".." entry also causes return to the original directory.
5614
5615 History
5616
5617 Custom list exists only while it's visible, once left one can't return
5618 to it, so there is no appearances of it in any history.
5619
5620 Filters
5621
5622 Only local filter affects content of the view. This is intentional,
5623 presumably if one loads list, precisely that list should be displayed
5624 (except for inexistent paths, which are ignored).
5625
5626 Search
5627
5628 Although directory names are visible in listing, they are not search‐
5629 able. Only file names are taken into account (might be changed in
5630 future, searching whole lines seems quite reasonable).
5631
5632 Sorting
5633
5634 Contrary to search sorting by name works on whole visible part of file
5635 path.
5636
5637 Highlight
5638
5639 Whole file name is highlighted as one entity, even if there are direc‐
5640 tory elements.
5641
5642 Updates
5643
5644 Reloads can occur, though they are not automatic due to files being
5645 scattered among different places. On a reload, inexistent files are
5646 removed and meta-data of all other files is updated.
5647
5648 Once custom view forgets about the file, it won't add it back even if
5649 it's created again. So not seeing file previously affected by an oper‐
5650 ation, which was undone is normal.
5651
5652 Operations
5653
5654 All operations that add files are forbidden for custom views. For
5655 example, moving/copying/putting files into a custom view doesn't work,
5656 because it doesn't make much sense.
5657
5658 On the other hand, operations that use files of a custom view as a
5659 source (e.g. yanking, copying, moving file from custom view, deletion)
5660 and operations that modify names are all allowed.
5661
5663 Kinds
5664
5665 :compare can produce four different results depending on arguments:
5666 - single compare view (ofone and either listall or listdups);
5667 - single custom view (ofone and listunique);
5668 - two compare views (ofboth and either listall or listdups);
5669 - two custom views (ofboth and listunique).
5670
5671 The first two display files of one file system tree. Here duplicates
5672 are files that have at least one copy in the same tree. The other two
5673 kinds of operation compare two trees, in which duplicates are files
5674 that are found in both trees.
5675
5676 Lists of unique files are presented in custom views because there is no
5677 file grouping to preserve as all file ids are guaranteed to be dis‐
5678 tinct.
5679
5680 Creation
5681
5682 Arguments passed to :compare form four categories each with its own
5683 prefix and is responsible for particular property of operation.
5684
5685 Which files to compare:
5686 - ofboth - compares files of two panes against each other;
5687 - ofone - compares files of the same directory.
5688
5689 How files are compared:
5690 - byname - by their name only;
5691 - bysize - only by their size;
5692 - bycontents - by data they contain (combination of size and hash of
5693 small chunk of contents is used as first approximation, so don't worry
5694 too much about large files).
5695
5696 Which files to display:
5697 - listall - all files;
5698 - listunique - unique files only;
5699 - listdups - only duplicated files.
5700
5701 How results are grouped (has no effect if "ofone" specified):
5702 - groupids - files considered identical are always adjacent in out‐
5703 put;
5704 - grouppaths - file system ordering is preferred (this also enables
5705 displaying identically named files as mismatches).
5706
5707 Which files to omit:
5708 - skipempty - ignore empty files.
5709
5710 Each argument can appear multiple times, the rightmost one of the group
5711 is considered. Arguments alter default behaviour instead of substitut‐
5712 ing it.
5713
5714 Examples
5715
5716 The defaults corresponds to probably the most common use case of com‐
5717 paring files in two trees with grouping by paths, so the following are
5718 equivalent:
5719
5720 :compare
5721 :compare bycontents grouppaths
5722 :compare bycontents listall ofboth grouppaths
5723
5724 Another use case is to find duplicates in the current sub-tree:
5725
5726 :compare listdups ofone
5727
5728 The following command lists files that are unique to each pane:
5729
5730 :compare listunique
5731
5732 Look
5733
5734 The view can't switch to ls-like view as it's unable to display diff-
5735 like data.
5736
5737 Comparison views have second column displaying id of the file, files
5738 with same id are considered to be equal. The view columns configura‐
5739 tion is predefined.
5740
5741 Behaviour
5742
5743 When two views are being compared against each other the following
5744 changes to the regular behaviour apply:
5745 - views are scrolled synchronously (as if 'scrollbind' was set);
5746 - views' cursors are synchronized;
5747 - local filtering is disabled (its results wouldn't be meaningful);
5748 - zd excludes groups of adjacent identical files, 1zd gives usual be‐
5749 haviour;
5750 - sorting is permanently disabled (ordering is fixed);
5751 - removed files hide their counter pairs;
5752 - exiting one of the views terminates the other immediately;
5753 - renaming files isn't blocked, but isn't taken into account and might
5754 require regeneration of comparison;
5755 - entries which indicate absence of equivalent file have empty names
5756 and can be matched as such;
5757 - when unique files of both views are listed custom views can be
5758 empty, this absence of unique files is stated clearly.
5759
5760 One compare view has similar properties (those that are applicable for
5761 single pane).
5762
5763 Files are gathered in this way:
5764 - recursively starting at current location of the view;
5765 - dot files are excluded if view hides them at the moment of compari‐
5766 son;
5767 - directories are not taken into account;
5768 - symbolic links to directories are ignored.
5769
5771 On startup vifm determines several variables that are used during exe‐
5772 cution. They are determined in the order they appear below.
5773
5774 On *nix systems $HOME is normally present and used as is. On Windows
5775 systems vifm tries to find correct home directory in the following
5776 order:
5777 - $HOME variable;
5778 - $USERPROFILE variable (on Windows only);
5779 - a combination of $HOMEDRIVE and $HOMEPATH variables (on Windows
5780 only).
5781
5782 vifm tries to find correct configuration directory by checking the fol‐
5783 lowing places:
5784 - $VIFM variable;
5785 - parent directory of the executable file (on Windows only);
5786 - $HOME/.vifm directory;
5787 - $APPDATA/Vifm directory (on Windows only);
5788 - $XDG_CONFIG_HOME/vifm directory;
5789 - $HOME/.config/vifm directory.
5790
5791 vifm tries to find correct configuration file by checking the following
5792 places:
5793 - $MYVIFMRC variable;
5794 - vifmrc in parent directory of the executable file (on Windows only);
5795 - $VIFM/vifmrc file.
5796
5798 See "Startup" section above for the explanations on $VIFM and $MYV‐
5799 IFMRC.
5800
5801 The vifmrc file contains commands that will be executed on vifm
5802 startup. There are two such files: global and local. Global one is at
5803 {prefix}/etc/vifm/vifmrc, see $MYVIFMRC variable description for the
5804 search algorithm used to find local vifmrc. Global vifmrc is loaded
5805 before the local one, so that the later one can redefine anything con‐
5806 figured globally.
5807
5808 Use vifmrc to set settings, mappings, filetypes etc. To use multi line
5809 commands precede each next line with a slash (whitespace before slash
5810 is ignored, but all spaces at the end of the lines are saved). For
5811 example:
5812
5813 set
5814 \smartcase
5815
5816 equals "setsmartcase". When
5817
5818 set<space here>
5819 \ smartcase
5820
5821 equals "set smartcase".
5822
5823 The $VIFM/vifminfo file contains generic state of the application. You
5824 can control what is stored in vifminfo by setting 'vifminfo' option.
5825 Vifm always writes this file on exit unless 'vifminfo' option is empty.
5826 Marks, bookmarks, commands, histories, filetypes, fileviewers and reg‐
5827 isters in the file are merged with vifm configuration (which has bigger
5828 priority).
5829
5830 Generally, runtime configuration has bigger priority during merging,
5831 but there are some exceptions:
5832
5833 - directory stack stored in the file is not overwritten unless some‐
5834 thing is changed in vifm instance that performs merge;
5835
5836 - each mark or bookmark is marked with a timestamp, so that newer
5837 value is not overwritten by older one, thus no matter from where it
5838 comes, the newer one wins;
5839
5840 - all histories are marked with timestamps on storing, this means
5841 that last instance to quit puts its elements on top of the list;
5842
5843 - tabs are merged only if both current instance and stored state con‐
5844 tain exactly one tab of any kind.
5845
5846 The $VIFM/scripts directory can contain shell scripts. vifm modifies
5847 its PATH environment variable to let user run those scripts without
5848 specifying full path. All subdirectories of the $VIFM/scripts will be
5849 added to PATH too. Script in a subdirectory overlaps script with the
5850 same name in all its parent directories.
5851
5852 The $VIFM/colors/ and {prefix}/etc/vifm/colors/ directories contain
5853 color schemes. Available color schemes are searched in that order, so
5854 on name conflict the one in $VIFM/colors/ wins.
5855
5856 Each color scheme should have ".vifm" extension. This wasn't the case
5857 before and for this reason the following rules apply during lookup:
5858
5859 - if there is no file with .vifm extension, all regular files are
5860 listed;
5861
5862 - otherwise only files with .vifm extension are listed (with the
5863 extension being truncated).
5864
5866 Sessions provide a way to have multiple persistent runtime configura‐
5867 tions. Think of them as second-level vifminfo files in addition to the
5868 first-level one used by all sessions. In other words, they aren't a
5869 replacement for vifminfo file that exists without sessions, but an
5870 addition to it. One can empty 'vifminfo' option and rely solely on
5871 sessions, but in practice one might want to share some state among
5872 instances in different sessions or have an "out-of-sessions" state for
5873 tasks that don't deserve a session of their own.
5874
5875 This leads to a two-level structure where data in session files has
5876 higher priority than data in vifminfo files (where this makes sense)
5877 following the same rules that merging of vifminfo file obeys. In addi‐
5878 tion to that, history items from session files are never ordered before
5879 history items from vifminfo file.
5880
5881 Format
5882
5883 Sessions have the format of vifminfo files, they do not consist of
5884 sequence of command-line commands and are not meant to be sourced via
5885 :source command.
5886
5887 Storage and naming
5888
5889 `$VIFM/sessions/` directory serves as a storage for sessions. Conse‐
5890 quently names should be valid filenames. The structure of the storage
5891 is flat meaning that there are no subdirectories, that's why names of
5892 sessions can't contain slashes.
5893
5894 Usage model
5895
5896 Contrary to Vim, vifm automates basic management of sessions. You can
5897 start, switch, stop or delete a session using builtin means.
5898
5899 Current session is saved at the same time vifminfo is saved (on normal
5900 exits or explicitly on :write command) and right before switching to
5901 another session. To avoid saving in those cases use :session command
5902 to detach (without saving) from a session before proceeding.
5903
5904 Related topics
5905
5906 Commands: :session, :delsession
5907 Options: 'sessionoptions'
5908 Variables: v:session
5909
5911 vifm has a builtin support of automated FUSE file system mounts. It is
5912 implemented using file associations mechanism. To enable automated
5913 mounts, one needs to use a specially formatted program line in filetype
5914 or filextype commands. These use special macros, which differ from
5915 macros in commands unrelated to FUSE. Currently three formats are sup‐
5916 ported:
5917
5918 1) FUSE_MOUNT This format should be used in case when all information
5919 needed for mounting all files of a particular type is the same. E.g.
5920 mounting of tar files don't require any file specific options.
5921
5922 Format line:
5923 FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND]
5924
5925 Example filetype command:
5926
5927 :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
5928
5929 2) FUSE_MOUNT2 This format allows one to use specially formatted files
5930 to perform mounting and is useful for mounting remotes, for example
5931 remote file systems over ftp or ssh.
5932
5933 Format line:
5934 FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]
5935
5936 Example filetype command:
5937
5938 :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
5939
5940 Example file content:
5941
5942 root@127.0.0.1:/
5943
5944 3) FUSE_MOUNT3
5945
5946 This format is equivalent to FUSE_MOUNT, but omits unmounting. It is
5947 useful for cases, when unmounting isn't needed, like when using AVFS.
5948
5949 Example :filetype command:
5950
5951 :filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz,*.deb
5952 \ {Mount with avfs}
5953 \ FUSE_MOUNT3|mount-avfs %DESTINATION_DIR %SOURCE_FILE
5954
5955 Example `mount-avfs` helper script:
5956
5957 #!/bin/sh
5958
5959 dest=$1
5960 file=$2
5961
5962 rmdir "$dest"
5963 ln -s "$HOME/.avfs$file#/" "$dest"
5964
5965 All % macros are expanded by vifm at runtime and have the following
5966 meaning:
5967 - %SOURCE_FILE is replaced by full path to selected file;
5968 - %DESTINATION_DIR is replaced by full path to mount directory, which
5969 is created by vifm basing on the value of 'fusehome' option;
5970 - %PARAM value is filled from the first line of file (whole line),
5971 though in the future it can be changed to whole file content;
5972 - %FOREGROUND means that you want to run mount command as a regular
5973 command (required to be able to provide input for communication with
5974 mounter in interactive way).
5975
5976 %FOREGROUND is an optional macro. Other macros are not mandatory, but
5977 mount commands likely won't work without them.
5978
5979 %CLEAR is obsolete name of %FOREGROUND, which is still supported, but
5980 might be removed in future. Its use is discouraged.
5981
5982 Unlike macros elsewhere, these are recognized only if they appear at
5983 the end of a command or are followed by a space. There is no way to
5984 escape % either. These are historical limitations, which might be
5985 addressed in the future.
5986
5987 The mounted FUSE file systems will be automatically unmounted in two
5988 cases:
5989
5990 - when vifm quits (with ZZ, :q, etc. or when killed by signal);
5991
5992 - when you explicitly leave mount point going up to its parent direc‐
5993 tory (with h, Enter on "../" or ":cd ..") and other pane is not in
5994 the same directory or its child directories.
5995
5997 vifm supports displaying of file list view in two different ways:
5998
5999 - in a table mode, when multiple columns can be set using 'view‐
6000 columns' option (see "Column view" section below for details);
6001
6002 - in a multicolumn list manner which looks almost like `ls -x` com‐
6003 mand output (see "ls-like view" section below for details).
6004
6005 The look is local for each view and can be chosen by changing value of
6006 the 'lsview' boolean option.
6007
6008 Depending on view look some of keys change their meaning to allow more
6009 natural cursor moving. This concerns mainly h, j, k, l and other simi‐
6010 lar navigation keys.
6011
6012 Also some of options can be ignored if they don't affect view display‐
6013 ing in selected look. For example value of 'viewcolumns' when 'lsview'
6014 is set.
6015
6017 When this view look is enabled by setting 'lsview' option on, vifm will
6018 display files in multiple columns. Number of columns depends on the
6019 length of the longest file name present in current directory of the
6020 view. Whole file list is automatically reflowed on directory change,
6021 terminal or view resize.
6022
6023 View looks close to output of `ls -x` command, so files are listed left
6024 to right in rows.
6025
6026 In this mode file manipulation commands (e.g. d) don't work line-wise
6027 like they do in Vim, since such operations would be uncommon for file
6028 manipulation tasks. Thus, for example, dd will remove only current
6029 file.
6030
6031 By default the view is filled by lines, 'lsoptions' can be used to get
6032 filling by columns.
6033
6034 Note that tree-view and compare view inhibit ls-like view.
6035
6037 View columns are described by a comma-separated list of column descrip‐
6038 tions, each of which has the following format
6039 [ '-' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type '}' '.'{0,3}
6040 where fw stands for full width and tw stands for text width.
6041
6042 So it basically consists of four parts:
6043 1. Optional alignment specifier
6044 2. Optional width specifier
6045 3. Mandatory column name
6046 4. Optional cropping specifier
6047
6048 Alignment specifier
6049
6050 It's an optional minus or asterisk sign as the first symbol of the
6051 string.
6052
6053 Specifies type of text alignment within a column. Three types are sup‐
6054 ported:
6055
6056 - left align
6057
6058 set viewcolumns=-{name}
6059
6060 - right align (default)
6061
6062 set viewcolumns={name}
6063
6064 - dynamic align
6065
6066 It's like left alignment, but when the text is bigger than the col‐
6067 umn, the alignment is made at the right (so the part of the field is
6068 always visible).
6069
6070 set viewcolumns=*{name}
6071
6072 Width specifier
6073
6074 It's a number followed by a percent sign, two numbers (second one
6075 should be less than or equal to the first one) separated with a dot or
6076 a single number.
6077
6078 Specifies column width and its units. There are three size types:
6079
6080 - absolute size - column width is specified in characters
6081
6082 set viewcolumns=-100{name},20.15{ext}
6083
6084 results in two columns with lengths of 100 and 20 and a reserved
6085 space of five characters on the left of second column.
6086
6087 - relative (percent) size - column width is specified in percents of
6088 view width
6089
6090 set viewcolumns=-80%{name},15%{ext},5%{mtime}
6091
6092 results in three columns with lengths of 80/100, 15/100 and 5/100 of
6093 view width.
6094
6095 - auto size (default) - column width is automatically determined
6096
6097 set viewcolumns=-{name},{ext},{mtime}
6098
6099 results in three columns with length of one third of view width.
6100 There is no size adjustment to content, since it will slow down ren‐
6101 dering.
6102
6103 Columns of different sizing types can be freely mixed in one view.
6104 Though sometimes some of columns can be seen partly or be completely
6105 invisible if there is not enough space to display them.
6106
6107 Column name
6108
6109 This is just a sort key surrounded with curly braces or {root}, e.g.
6110
6111 {name},{ext},{mtime}
6112
6113 {name} and {iname} keys are the same and present both for consistency
6114 with 'sort' option.
6115
6116 Following keys don't have corresponding sorting keys:
6117
6118 - {root} - display name without extension (as a complement for
6119 {ext})
6120
6121 - {fileroot} - display name without extension for anything except for
6122 directories and symbolic links to directories (as a complement for
6123 {fileext})
6124
6125 Empty curly braces ({}) are replaced with the default secondary column
6126 for primary sort key. So after the next command view will be displayed
6127 almost as if 'viewcolumns' is empty, but adding ellipsis for long file
6128 names:
6129
6130 set viewcolumns=-{name}..,6{}.
6131
6132 Cropping specifier
6133
6134 It's from one to three dots after closing curly brace in column format.
6135
6136 Specifies type of text truncation if it doesn't fit in the column.
6137 Currently three types are supported:
6138
6139 - truncation - text is truncated
6140
6141 set viewcolumns=-{name}.
6142
6143 results in truncation of names that are too long too fit in the
6144 view.
6145
6146 - adding of ellipsis - ellipsis on the left or right are added when
6147 needed
6148
6149 set viewcolumns=-{name}..
6150
6151 results in that ellipsis are added at the end of too long file
6152 names.
6153
6154 - none (default) - text can pass column boundaries
6155
6156 set viewcolumns=-{name}...,{ext}
6157
6158 results in that long file names can partially be written on the ext
6159 column.
6160
6162 The color schemes in vifm can be applied in two different ways:
6163
6164 - as the primary color scheme;
6165
6166 - as local to a pane color scheme.
6167
6168 Both types are set using :colorscheme command, but of different forms:
6169
6170 - :colorscheme color_scheme_name - for the primary color scheme;
6171
6172 - :colorscheme color_scheme_name directory - for local color schemes.
6173
6174 Look of different parts of the TUI (Text User Interface) is determined
6175 in this way:
6176
6177 - Border, TabLine, TabLineSel, TopLineSel, TopLine, CmdLine,
6178 ErrorMsg, StatusLine, JobLine, SuggestBox and WildMenu are always
6179 determined by the primary color scheme;
6180
6181 - CurrLine, Selected, Directory, Link, BrokenLink, Socket, Device,
6182 Executable, Fifo, CmpMismatch, Win, AuxWin and OtherWin are deter‐
6183 mined by primary color scheme and a set of local color schemes,
6184 which can be empty.
6185
6186 There might be a set of local color schemes because they are structured
6187 hierarchically according to file system structure. For example, having
6188 the following piece of file system:
6189
6190 ~
6191 `-- bin
6192 |
6193 `-- my
6194
6195 Two color schemes:
6196
6197 # ~/.vifm/colors/for_bin
6198 highlight Win cterm=none ctermfg=white ctermbg=red
6199 highlight CurrLine cterm=none ctermfg=red ctermbg=black
6200
6201 # ~/.vifm/colors/for_bin_my
6202 highlight CurrLine cterm=none ctermfg=green ctermbg=black
6203
6204 And these three commands in the vifmrc file:
6205
6206 colorscheme Default
6207 colorscheme for_bin ~/bin
6208 colorscheme for_bin_my ~/bin/my
6209
6210 File list will look in the following way for each level:
6211
6212 - ~/ - Default color scheme
6213 black background
6214 cursor with blue background
6215
6216 - ~/bin/ - mix of Default and for_bin color schemes
6217 red background
6218 cursor with black background and red foreground
6219
6220 - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes
6221 red background
6222 cursor with black background and green foreground
6223
6225 vifm has support of trash directory, which is used as temporary storage
6226 for deleted files or files that were cut. Using trash is controlled by
6227 the 'trash' option, and exact path to the trash can be set with
6228 'trashdir' option. Trash directory in vifm differs from the system-
6229 wide one by default, because of possible incompatibilities of storing
6230 deleted files among different file managers. But one can set
6231 'trashdir' to "~/.local/share/Trash" to use a "standard" trash direc‐
6232 tory.
6233
6234 There are two scenarios of using trash in vifm:
6235
6236 1. As a place for storing files that were cut by "d" and may be
6237 inserted to some other place in file system.
6238
6239 2. As a storage of files, that are deleted but not purged yet.
6240
6241 The first scenario uses deletion ("d") operations to put files to trash
6242 and put ("p") operations to restore files from trash directory. Note
6243 that such operations move files to and from trash directory, which can
6244 be long term operations in case of different partitions or remote
6245 drives mounted locally.
6246
6247 The second scenario uses deletion ("d") operations for moving files to
6248 trash directory and :empty command-line command to purge all previously
6249 deleted files.
6250
6251 Deletion and put operations depend on registers, which can point to
6252 files in trash directory. Normally, there are no nonexistent files in
6253 registers, but vifm doesn't keep track of modifications under trash
6254 directory, so one shouldn't expect value of registers to be absolutely
6255 correct if trash directory was modified not by operation that are meant
6256 for it. But this won't lead to any issues with operations, since they
6257 ignore nonexistent files.
6258
6260 vifm supports remote execution of command-line mode commands, remote
6261 changing of directories and expression evaluation. This is possible
6262 using --remote and --remote-expr command-line arguments.
6263
6264 To execute a command remotely combine --remote argument with -c <com‐
6265 mand> or +<command>. For example:
6266
6267 vifm --remote -c 'cd /'
6268 vifm --remote '+cd /'
6269
6270 To change directory not using command-line mode commands one can spec‐
6271 ify paths right after --remote argument, like this:
6272
6273 vifm --remote /
6274 vifm --remote ~
6275 vifm --remote /usr/bin /tmp
6276
6277 Evaluating expression remotely might be useful to query information
6278 about an instance, for example its location:
6279
6280 vifm --remote-expr 'expand("%d")'
6281
6282 If there are several running instances, the target can be specified
6283 with --server-name option (otherwise, the first one lexicographically
6284 is used):
6285
6286 vifm --server-name work --remote ~/work/project
6287
6288 List of names of running instances can be obtained via --server-list
6289 option. Name of the current one is available via v:servername.
6290
6291
6292 v:servername
6293 server name of the running vifm instance. Empty if client-
6294 server feature is disabled.
6295
6297 Plugin for using vifm in vim as a file selector.
6298
6299 Commands:
6300
6301 :EditVifm select a file or files to open in the current buffer.
6302 :Vifm alias for :EditVifm.
6303 :SplitVifm split buffer and select a file or files to open.
6304 :VsplitVifm vertically split buffer and select a file or files to
6305 open.
6306 :DiffVifm select a file or files to compare to the current file
6307 with
6308 :vert diffsplit.
6309 :TabVifm select a file or files to open in tabs.
6310
6311 Each command accepts up to two arguments: left pane directory and right
6312 pane directory. After arguments are checked, vifm process is spawned
6313 in a special "file-picker" mode. To pick files just open them either
6314 by pressing l, i or Enter keys, or by running :edit command. If no
6315 files are selected, file under the cursor is opened, otherwise whole
6316 selection is passed to the plugin and opened in vim.
6317
6318 The plugin have only two settings. It's a string variable named
6319 g:vifm_term to let user specify command to run GUI terminal. By
6320 default it's equal to 'xterm -e'. And another string variable named
6321 g:vifm_exec, which equals "vifm" by default and specifies path to
6322 vifm's executable. To pass arguments to vifm use g:vifm_exec_args,
6323 which is empty by default.
6324
6325 To use the plugin copy the vifm.vim file to either the system wide
6326 vim/plugin directory or into ~/.vim/plugin.
6327
6328 If you would prefer not to use the plugin and it is in the system wide
6329 plugin directory add
6330
6331 let loaded_vifm=1
6332
6333 to your ~/.vimrc file.
6334
6336 The following command names are reserved and shouldn't be used for user
6337 commands.
6338
6339 g[lobal]
6340 v[global]
6341
6343 VIFM Points to main configuration directory (usually ~/.vifm/).
6344
6345 MYVIFMRC
6346 Points to main configuration file (usually ~/.vifm/vifmrc).
6347
6348 These environment variables are valid inside vifm and also can be used
6349 to configure it by setting some of them before running vifm.
6350
6351 When $MYVIFMRC isn't set, it's made as $VIFM/vifmrc (exception for Win‐
6352 dows: vifmrc in the same directory as vifm.exe has higher priority than
6353 $VIFM/vifmrc).
6354
6355 See "Startup" section above for more details.
6356
6357 VIFM_FUSE_FILE
6358 On execution of external commands this variable is set to the
6359 full path of file used to initiate FUSE mount of the closest
6360 mount point from current pane's directory up. It's not set when
6361 outside FUSE mount point. When vifm is used inside terminal
6362 multiplexer, it tries to set this variable as well (it doesn't
6363 work this way on its own).
6364
6366 vifm-convert-dircolors(1), vifm-pause(1)
6367
6368 Website: https://vifm.info/
6369 Wiki: https://wiki.vifm.info/
6370
6371 Esperanto translation of the documentation by Sebastian Cyprych:
6372 http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html
6373
6375 Vifm was written by ksteen <ksteen@users.sourceforge.net>
6376 And currently is developed by xaizek <xaizek@posteo.net>
6377
6378
6379
6380vifm 0.11 September 24, 2020 VIFM(1)