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