1VIFM(1)                     General Commands Manual                    VIFM(1)
2
3
4

NAME

6       vifm - vi file manager
7

SYNOPSIS

9       vifm [OPTION]...
10       vifm [OPTION]... path
11       vifm [OPTION]... path path
12

DESCRIPTION

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

OPTIONS

19       vifm  starts  in  the  current directory unless it is given a different
20       directory on the command line or 'vifminfo' option includes  "savedirs"
21       (in which case last visited directories are used as defaults).
22
23       -      Read list of files from standard input stream and compose custom
24              view out of them (see "Custom views" section).  Current  working
25              directory is used as a base for relative paths.
26
27       <path> Starts Vifm in the specified path.
28
29       <path> <path>
30              Starts Vifm in the specified paths.
31
32       Specifying  two  directories  triggers split view even when vifm was in
33       single-view mode on finishing previous run.  To suppress this behaviour
34       :only command can be put in the vifmrc file.
35
36       When only one path argument is found on command-line, the left/top pane
37       is automatically set as the current view.
38
39       Paths to files are also allowed in case you want  vifm  to  start  with
40       some archive opened.
41
42       --select <path>
43              Open  parent  directory  of  the given path and select specified
44              file in it.
45
46       -f     Makes  vifm  instead  of  opening  files  write   selection   to
47              $VIFM/vimfiles and quit.
48
49       --choose-files <path>|-
50              Sets  output  file  to  write  selection into on exit instead of
51              opening files.  "-" means standard output.  Use empty  value  to
52              disable it.
53
54       --choose-dir <path>|-
55              Sets  output  file to write last visited directory into on exit.
56              "-" means standard output.  Use empty value to disable it.
57
58       --delimiter <delimiter>
59              Sets separator for list of  file  paths  written  out  by  vifm.
60              Empty  value  means null character.  Default is new line charac‐
61              ter.
62
63       --on-choose <command>
64              Sets command to be executed on selected files instead of opening
65              them.   The  command may use any of macros described in "Command
66              macros" section below.  The command is executed once  for  whole
67              selection.
68
69       --logging[=<startup log path>]
70              Log some operational details $VIFM/log.  If the optional startup
71              log path is specified and permissions allow to open it for writ‐
72              ing, then logging of early initialization (before value of $VIFM
73              is determined) is put there.
74
75       --server-list
76              List available server names and exit.
77
78       --server-name <name>
79              Name of target or this instance (sequential numbers are appended
80              on name conflict).
81
82       --remote
83              Sends  the rest of the command line to another instance of vifm,
84              --server-name is treated just like any other argument and should
85              precede  --remote on the command line.  When there is no server,
86              quits silently.  There is no limit on how many arguments can  be
87              processed.  One can combine --remote with -c <command> or +<com‐
88              mand> to execute commands in already running instance  of  vifm.
89              See also "Client-Server" section below.
90
91       --remote-expr
92              passes  expression  to  vifm server and prints result.  See also
93              "Client-Server" section below.
94
95       -c <command> or +<command>
96              Run command-line mode <command> on startup.   Commands  in  such
97              arguments are executed in the order they appear in command line.
98              Commands with spaces or special symbols must be enclosed in dou‐
99              ble  or  single  quotes or all special symbols should be escaped
100              (the exact syntax strongly depends on shell).  "+"  argument  is
101              equivalent to "$" and thus picks last item of of the view.
102
103       --help, -h
104              Show a brief command summary and exit vifm.
105
106       --version, -v
107              Show version information and quit.
108
109       --no-configs
110              Skip reading vifmrc and vifminfo.
111
112
113       See "Startup" section below for the explanations on $VIFM.
114

General keys

116       Ctrl-C or Escape
117              cancel most operations (see "Cancellation" section below), clear
118              all selected files.
119
120       Ctrl-L clear and redraw the screen.
121

Basic Movement

123       The basic vi key bindings are used to move through the files and pop-up
124       windows.
125
126       k, gk, or Ctrl-P
127              move cursor up one line.
128
129       j, gj or Ctrl-N
130              move cursor down one line.
131
132       h      when  'lsview'  is  off  move  up one directory (moves to parent
133              directory node in tree view), otherwise move left one file.
134
135       l      when 'lsview' is off move into a directory  or  launch  a  file,
136              otherwise move right one file.  See "Selection" section below.
137
138       gg     move to the first line of the file list.
139
140       G      move to the last line in the file list.
141
142       gh     go  up one directory regardless of view representation (regular,
143              ls-like).  Also can be used to leave custom views including tree
144              view.
145
146       gl or Enter
147              enter  directory  or  launch  a  file.   See "Selection" section
148              below.
149
150       H      move to the first file in the window.
151
152       M      move to the file in the middle of the window.
153
154       L      move to the last file in the window.
155
156       Ctrl-F or Page Down
157              move forward one page.
158
159       Ctrl-B or Page Up
160              move back one page.
161
162       Ctrl-D jump back one half page.
163
164       Ctrl-U jump forward one half page.
165
166       n%     move to the file that is n percent from the top of the list (for
167              example 25%).
168
169       0 or ^ move  cursor  to the first column.  See 'lsview' option descrip‐
170              tion.
171
172       $      move cursor to the last column.  See  'lsview'  option  descrip‐
173              tion.
174
175       Space  switch file lists.
176
177       gt     switch to the next tab (wrapping around).
178
179       {n}gt  switch to the tab number {n} (wrapping around).
180
181       gT     switch to the previous tab (wrapping around).
182
183       {n}gT  switch to {n}-th previous tab.
184

Movement with Count

186       Most  movement  commands  also  accept  a count, 12j would move down 12
187       files.
188
189       [count]%
190              move to percent of the file list.
191
192       [count]j
193              move down [count] files.
194
195       [count]k
196              move up [count] files.
197
198       [count]G or [count]gg
199              move to list position [count].
200
201       [count]h
202              go up [count] directories.
203

Scrolling panes

205       zt     redraw pane with file in top of list.
206
207       zz     redraw pane with file in center of list.
208
209       zb     redraw pane with file in bottom of list.
210
211       Ctrl-E scroll pane one line down.
212
213       Ctrl-Y scroll pane one line up.
214

Pane manipulation

216       Second character can be entered with or without Control key.
217
218       Ctrl-W H
219              move the pane to the far left.
220
221       Ctrl-W J
222              move the pane to the very bottom.
223
224       Ctrl-W K
225              move the pane to the very top.
226
227       Ctrl-W L
228              move the pane to the far right.
229
230
231       Ctrl-W h
232              switch to the left pane.
233
234       Ctrl-W j
235              switch to the pane below.
236
237       Ctrl-W k
238              switch to the pane above.
239
240       Ctrl-W l
241              switch to the right pane.
242
243
244       Ctrl-W b
245              switch to bottom-right window.
246
247       Ctrl-W t
248              switch to top-left window.
249
250
251       Ctrl-W p
252              switch to previous window.
253
254       Ctrl-W w
255              switch to other pane.
256
257
258       Ctrl-W o
259              leave only one pane.
260
261       Ctrl-W s
262              split window horizontally.
263
264       Ctrl-W v
265              split window vertically.
266
267
268       Ctrl-W x
269              exchange panes.
270
271       Ctrl-W z
272              quit preview pane or view modes.
273
274
275       Ctrl-W -
276              decrease size of the view by count.
277
278       Ctrl-W +
279              increase size of the view by count.
280
281       Ctrl-W <
282              decrease size of the view by count.
283
284       Ctrl-W >
285              increase size of the view by count.
286
287
288       Ctrl-W |
289              set current view size to count.
290
291       Ctrl-W _
292              set current view size to count.
293
294       Ctrl-W =
295              make size of two views equal.
296
297       For Ctrl-W +, Ctrl-W -, Ctrl-W <, Ctrl-W >, Ctrl-W | and Ctrl-W _  com‐
298       mands  count  can  be  given before and/or after Ctrl-W.  The resulting
299       count is a multiplication of those two.  So "2 Ctrl-W  2  -"  decreases
300       window size by 4 lines or columns.
301
302       Ctrl-W | and Ctrl-W _ maximise current view by default.
303

Marks

305       Marks are set the same way as they are in vi.
306
307       You can use these characters for marks [a-z][A-Z][0-9].
308
309       m[a-z][A-Z][0-9]
310              set a mark for the file at the current cursor position.
311
312       '[a-z][A-Z][0-9]
313              navigate to the file set for the mark.
314
315
316       There are also several special marks that can't be set manually:
317
318         - '  (single  quote) - previously visited directory of the view, thus
319           hitting '' allows switching between two last locations
320
321         - < - the first file of the last visually selected block
322
323         - > - the last file of the last visually selected block
324

Searching

326       /regular expression pattern
327              search for files matching regular expression in  forward  direc‐
328              tion and advance cursor to next match.
329
330       /      perform forward search with top item of search pattern history.
331
332       ?regular expression pattern
333              search  for files matching regular expression in backward direc‐
334              tion and advance cursor to previous match.
335
336       ?      perform backward search with top item of search pattern history.
337
338       Trailing slash for directories is taken into account, so  /\/  searches
339       for  directories  and  symbolic links to directories.  At the moment //
340       works too, but this can change in the future, so consider escaping  the
341       slash if not typing pattern by hand.
342
343       Matches  are  automatically  selected  if  'hlsearch' is set.  Enabling
344       'incsearch' makes search  interactive.   'ignorecase'  and  'smartcase'
345       options affect case sensitivity of search queries as well as local fil‐
346       ter and other things detailed in the description of 'caseoptions'.
347
348
349       [count]n
350              go to the next file matching last search  pattern.   Takes  last
351              search direction into account.
352
353       [count]N
354              go  to  the  previous  file matching last search pattern.  Takes
355              last search direction into account.
356
357       If 'hlsearch' option is set, hitting n/N to perform search  and  go  to
358       the first matching item resets current selection in normal mode.  It is
359       not the case if search was already performed on files in the directory,
360       thus  selection  is  not reset after clearing selection with escape key
361       and hitting n/N key again.
362
363       Note: vifm uses extended regular expressions for / and ?.
364
365
366       [count]f[character]
367              search forward for file with [character] as first  character  in
368              name.  Search wraps around the end of the list.
369
370       [count]F[character]
371              search  backward for file with [character] as first character in
372              name.  Search wraps around the end of the list.
373
374       [count];
375              find the next match of f or F.
376
377       [count],
378              find the previous match of f or F.
379
380       Note: f, F, ; and , wrap around list beginning and end  when  they  are
381       used alone and they don't wrap when they are used as selectors.
382

File Filters

384       There are three basic file filters:
385
386         - dot files filter (does not affect "." and ".." special directories,
387           whose appearance is controlled by the 'dotdirs' option), see  'dot‐
388           files' option;
389
390         - permanent filter;
391
392         - local filter (see description of the "=" normal mode command).
393
394       Permanent  filter  essentially  allows  defining a group of files names
395       which are not desirable to be seen by default, like temporary or backup
396       files,  which  might  be  created alongside normal ones.  Just like you
397       don't usually need to see hidden dot files (files starting with a dot).
398       Local  filter on the other hand is for temporary immediate filtering of
399       file list at hand, to get rid of uninterested files in the view  or  to
400       make it possible to use % range in a :command.
401
402       For  the  purposes  of  more  deterministic editing permanent filter is
403       split into two parts:
404
405         - one edited explicitly via :filter command;
406
407         - another one which is edited implicitly via zf shortcut.
408
409       Files are tested against both parts and a match counts if at least  one
410       of the parts matched.
411
412
413       Each file list has its own copy of each filter.
414
415       Filtered files are not checked in / search or :commands.
416
417       Files and directories are filtered separately.  This is done by append‐
418       ing a slash to a directory name before testing whether it  matches  the
419       filter. Examples:
420
421
422         " filter directories which names end with '.files'
423         :filter /^.*\.files\/$/
424
425         " filter files which names end with '.d'
426         :filter {*.d}
427
428         " filter files and directories which names end with '.o'
429         :filter /^.*\.o\/?$/
430
431       Note: vifm uses extended regular expressions.
432
433       The basic vim folding key bindings are used for managing filters.
434
435
436       za     toggle visibility of dot files.
437
438       zo     show dot files.
439
440       zm     hide dot files.
441
442       zf     add selected files to permanent filter.
443
444       zO     reset permanent filter.
445
446       zR     save and reset all filters.
447
448       zr     clear local filter.
449
450       zM     restore all filters (undoes last zR).
451
452       zd     exclude  selection  or  current  file  from a custom view.  Does
453              nothing for regular view.  For  tree  view  excluding  directory
454              excludes  that  sub-tree.   For  compare views zd hides group of
455              adjacent identical files, count can be specified as 1 to exclude
456              just single file or selected items instead.  Files excluded this
457              way are not counted as filtered out and can't be returned unless
458              view is reloaded.
459
460       =regular expression pattern
461              filter  out  files that don't match regular expression.  Whether
462              view is updated as regular expression is changed depends on  the
463              value  of  the 'incsearch' option.  This kind of filter is auto‐
464              matically reset when directory is changed.
465

Other Normal Mode Keys

467       [count]:
468              enter command line mode.  [count] generates range.
469
470       q:     open external editor to prompt for  command-line  command.   See
471              "Command line editing" section for details.
472
473       q/     open external editor to prompt for search pattern to be searched
474              in forward direction.  See "Command line  editing"  section  for
475              details.
476
477       q?     open external editor to prompt for search pattern to be searched
478              in backward direction.  See "Command line editing"  section  for
479              details.
480
481       q=     open external editor to prompt for filter pattern.  See "Command
482              line editing" section for details.  Unlike other  q{x}  commands
483              this one doesn't work in Visual mode.
484
485       [count]!! and [count]!<selector>
486              enter  command  line mode with entered ! command.  [count] modi‐
487              fies range.
488
489       Ctrl-O go backwards through directory history of current view.   Nonex‐
490              istent directories are automatically skipped.
491
492       Ctrl-I if  'cpoptions' contains "t" flag, <tab> and <c-i> switch active
493              pane just like <space> does, otherwise it goes  forward  through
494              directory  history of current view.  Nonexistent directories are
495              automatically skipped.
496
497       Ctrl-G show a dialog with detailed information about current file.  See
498              "Menus and dialogs" section for controls.
499
500       Shift-Tab
501              enter  view  mode  (works  only  after activating view pane with
502              :view command).
503
504       ga     calculate directory size.  Uses cached directory sizes when pos‐
505              sible  for  better  performance.   As a special case calculating
506              size of ".." entry results in calculation  of  size  of  current
507              directory.
508
509       gA     like  ga,  but  force  update.   Ignores old values of directory
510              sizes.
511
512       If file under cursor is selected, each selected item is processed, oth‐
513       erwise only current file is updated.
514
515       gf     find  link  destination (like l with 'followlinks' off, but also
516              finds directories).  On Windows additionally follows .lnk-files.
517
518       gF     Same as gf, but resolves final path of  the  chain  of  symbolic
519              links.
520
521       gr     only for MS-Windows
522              same  as  l  key,  but  tries to run program with administrative
523              privileges.
524
525       av     go to visual mode into selection amending state preserving  cur‐
526              rent selection.
527
528       gv     go to visual mode restoring last selection.
529
530       [reg]gs
531              when no register is specified, restore last t selection (similar
532              to what gv does for visual  mode  selection).   If  register  is
533              present,  then  all  files listed in that register and which are
534              visible in current view are selected.
535
536       gu<selector>
537              make names of selected files lowercase.
538
539       [count]guu and [count]gugu
540              make names of [count] files starting from the current one lower‐
541              case.  Without [count] only current file is affected.
542
543       gU<selector>
544              make names of selected files uppercase.
545
546       [count]gUU and [count]gUgU
547              make names of [count] files starting from the current one upper‐
548              case.  Without [count] only current file is affected.
549
550       e      explore file in the current pane.
551
552       i      handle file (even if it's an executable and 'runexec' option  is
553              set).
554
555       cw     change word is used to rename a file or files.
556
557       cW     change  WORD is used to change only name of file (without exten‐
558              sion).
559
560       cl     change link target.
561
562       co     only for *nix
563              change file owner.
564
565       cg     only for *nix
566              change file group.
567
568       [count]cp
569              change file attributes (permission on  *nix  and  properties  on
570              Windows).   If  [count]  is specified, it's treated as numerical
571              argument  for  non-recursive  `chmod`  command  (of   the   form
572              [0-7]{3,4}).  See "Menus and dialogs" section for controls.
573
574       [count]C
575              clone file [count] times.
576
577       [count]dd or d[count]selector
578              move  selected  file  or  files  to  trash directory (if 'trash'
579              option is set, otherwise delete).  See "Trash directory" section
580              below.
581
582       [count]DD or D[count]selector
583              like dd and d<selector>, but omitting trash directory (even when
584              'trash' option is set).
585
586       Y, [count]yy or y[count]selector
587              yank selected files.
588
589       p      copy yanked files to the current directory or move the files  to
590              the  current directory if they were deleted with dd or :d[elete]
591              or if the files were yanked from trash  directory.   See  "Trash
592              directory" section below.
593
594       P      move the last yanked files.  The advantage of using P instead of
595              d followed by p is that P moves files  only  once.   This  isn't
596              important  in  case  you're moving files in the same file system
597              where your home directory is, but using P to move files on  some
598              other  file  system  (or  file systems, in case you want to move
599              files from fs1 to fs2 and your home is on  fs3)  can  save  your
600              time.
601
602       al     put symbolic links with absolute paths.
603
604       rl     put symbolic links with relative paths.
605
606       t      select or unselect (tag) the current file.
607
608       u      undo last change.
609
610       Ctrl-R redo last change.
611
612       dp     in compare view of "ofboth grouppaths" kind, makes corresponding
613              entry of the other pane equal to the current one.  The semantics
614              is as follows:
615               - nothing done for identical entries
616               - if file is missing in current view, its pair gets removed
617               - if file is missing or differs in other view, it's replaced
618               - file pairs are defined by matching relative paths
619              File  removal obeys 'trash' option.  When the option is enabled,
620              the operation can be undone/redone (although  results  won't  be
621              visible automatically).
622              Unlike  in  Vim,  this  operation  is performed on a single line
623              rather than a set of adjacent changes.
624
625       do     same as dp, but applies changes in the opposite direction.
626
627       v or V enter visual mode, clears current selection.
628
629       [count]Ctrl-A
630              increment first number in file name by [count] (1 by default).
631
632       [count]Ctrl-X
633              decrement first number in file name by [count] (1 by default).
634
635       ZQ     same as :quit!.
636
637       ZZ     same as :quit.
638
639       .      repeat last command-line command (not normal  mode  command)  of
640              this run (does nothing right after startup or :restart command).
641              The command doesn't depend on command-line history  and  can  be
642              used with completely disabled history.
643
644       (      go  to  previous  group.   Groups are defined by primary sorting
645              key.  For name and iname members of each group have  same  first
646              letter, for all other sorting keys vifm uses size, uid, ...
647
648       )      go to next group.  See ( key description above.
649
650       {      speeds  up  navigation to closest previous entry of the opposite
651              type by moving to the first file backwards when cursor is  on  a
652              directory and to the first directory backwards when cursor is on
653              a file.  This is essentially a special case of ( that is  locked
654              on "dirs".
655
656       }      same as {, but in forward direction.
657
658       [c     go  to previous mismatched entry in directory comparison view or
659              do nothing.
660
661       ]c     go to next mismatched entry in directory comparison view  or  do
662              nothing.
663
664       [d     go to previous directory entry or do nothing.
665
666       ]d     go to next directory entry or do nothing.
667
668       [r     same as :siblprev.
669
670       ]r     same as :siblnext.
671
672       [R     same as :siblprev!.
673
674       ]R     same as :siblnext!.
675
676       [s     go to previous selected entry or do nothing.
677
678       ]s     go to next selected entry or do nothing.
679
680       [z     go to first sibling of current entry.
681
682       ]z     go to last sibling of current entry.
683
684       zj     go to next directory sibling of current entry or do nothing.
685
686       zk     go to previous directory sibling of current entry or do nothing.
687

Using Count

689       You can use count with commands like yy.
690
691       [count]yy
692              yank count files starting from current cursor position downward.
693
694       Or you can use count with motions passed to y, d or D.
695
696       d[count]j
697              delete  (count  + 1) files starting from current cursor position
698              upward.
699

Registers

701       vifm supports multiple registers for temporary storing list  of  yanked
702       or deleted files.
703
704       Registers should be specified by hitting double quote key followed by a
705       register name.  Count is specified after  register  name.   By  default
706       commands use unnamed register, which has double quote as its name.
707
708       Though  all  commands  accept  registers, most of commands ignores them
709       (for example H or Ctrl-U).  Other commands can fill register or  append
710       new files to it.
711
712       Presently vifm supports ", _, a-z and A-Z characters as register names.
713
714       As mentioned above " is unnamed register and has special meaning of the
715       default register.  Every time when you use named registers (a-z and  A-
716       Z)  unnamed  register  is  updated to contain same list of files as the
717       last used register.
718
719       _ is black hole register.  It can be used for writing, but its list  is
720       always empty.
721
722       Registers  with names from a to z and from A to Z are named ones.  Low‐
723       ercase registers are cleared before adding new files,  while  uppercase
724       aren't and should be used to append new files to the existing file list
725       of appropriate lowercase register (A for a, B for b, ...).
726
727       Registers can be changed on :empty command if they contain files  under
728       trash directory (see "Trash directory" section below).
729
730       Registers do not contain one file more than once.
731
732       Example:
733
734         "a2yy
735
736       puts names of two files to register a (and to the unnamed register),
737
738         "Ad
739
740       removes  one file and append its name to register a (and to the unnamed
741       register),
742
743         p or "ap or "Ap
744
745       inserts previously yanked and deleted files into current directory.
746

Selectors

748       y, d, D, !, gu and gU commands accept selectors.  You can combine  them
749       with any of selectors below to quickly remove or yank several files.
750
751       Most  of  selectors are like vi motions: j, k, gg, G, H, L, M, %, f, F,
752       ;, comma, ', ^, 0 and $.  But there are some additional ones.
753
754       a      all files in current view.
755
756       s      selected files.
757
758       S      all files except selected.
759
760       Examples:
761
762         - dj - delete file under cursor and one below;
763
764         - d2j - delete file under cursor and two below;
765
766         - y6gg - yank all files from cursor position to 6th file in the list.
767
768       When you pass a count to whole command and its selector they are multi‐
769       plied. So:
770
771         - 2d2j - delete file under cursor and four below;
772
773         - 2dj - delete file under cursor and two below;
774
775         - 2y6gg  -  yank  all  files from cursor position to 12th file in the
776           list.
777

Visual Mode

779       Visual mode has two generic operating submodes:
780
781         - plain selection as it is in Vim;
782
783         - selection editing submode.
784
785       Both modes select files in range from cursor position at  which  visual
786       mode  was  entered to current cursor position (let's call it "selection
787       region").  Each of two borders can be adjusted by swapping them via "o"
788       or  "O"  keys  and  updating cursor position with regular cursor motion
789       keys.  Obviously, once initial cursor position  is  altered  this  way,
790       real start position becomes unavailable.
791
792       Plain  Vim-like visual mode starts with cleared selection, which is not
793       restored on rejecting selection ("Escape", "Ctrl-C", "v",  "V").   Con‐
794       trary  to it, selection editing doesn't clear previously selected files
795       and restores them after reject.  Accepting selection by  performing  an
796       operation on selected items (e.g. yanking them via "y") moves cursor to
797       the top of current selection region (not to the top most selected  file
798       of the view).
799
800       In  turn,  selection  editing  supports three types of editing (look at
801       statusbar to know which one is currently active):
802
803         - append - amend selection by selecting elements in selection region;
804
805         - remove - amend  selection  by  deselecting  elements  in  selection
806           region;
807
808         - invert  -  amend  selection  by  inverting selection of elements in
809           selection region.
810
811       No matter how you activate selection editing  it  starts  in  "append".
812       One  can switch type of operation (in the order given above) via "Ctrl-
813       G" key.
814
815       Almost all normal mode keys work in visual mode, but instead of accept‐
816       ing selectors they operate on selected items.
817
818       Enter  save selection and go back to normal mode not moving cursor.
819
820       av     leave  visual mode if in amending mode (restores previous selec‐
821              tion), otherwise switch to amending selection mode.
822
823       gv     restore previous visual selection.
824
825       v, V, Ctrl-C or Escape
826              leave visual mode if not in amending mode, otherwise  switch  to
827              normal visual selection.
828
829       Ctrl-G switch  type of amending by round robin scheme: append -> remove
830              -> invert.
831
832       :      enter command line mode.  Selection is cleared  on  leaving  the
833              mode.
834
835       o      switch active selection bound.
836
837       O      switch active selection bound.
838
839       gu, u  make names of selected files lowercase.
840
841       gU, U  make names of selected files uppercase.
842

View Mode

844       This mode tries to imitate the less program.  List of builtin shortcuts
845       can be found below.  Shortcuts can be customized using :qmap, :qnoremap
846       and :qunmap command-line commands.
847
848       Shift-Tab, Tab, q, Q, ZZ
849              return to normal mode.
850
851       [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter
852              scroll forward one line (or [count] lines).
853
854       [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P
855              scroll backward one line (or [count] lines).
856
857       [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space
858              scroll forward one window (or [count] lines).
859
860       [count]b, [count]Ctrl-B, [count]Alt-V
861              scroll backward one window (or [count] lines).
862
863       [count]z
864              scroll forward one window (and set window to [count]).
865
866       [count]w
867              scroll backward one window (and set window to [count]).
868
869       [count]Alt-Space
870              scroll forward one window, but don't stop at end-of-file.
871
872       [count]d, [count]Ctrl-D
873              scroll forward one half-window (and set half-window to [count]).
874
875       [count]u, [count]Ctrl-U
876              scroll   backward   one  half-window  (and  set  half-window  to
877              [count]).
878
879       r, Ctrl-R, Ctrl-L
880              repaint screen.
881
882       R      reload view preserving scroll position.
883
884       F      toggle automatic forwarding.   Roughly  equivalent  to  periodic
885              file reload and scrolling to the bottom.  The behaviour is simi‐
886              lar to `tail -F` or F key in less.
887
888       [count]/pattern
889              search forward for ([count]‐th) matching line.
890
891       [count]?pattern
892              search backward for ([count]‐th) matching line.
893
894       [count]n
895              repeat previous search (for [count]‐th occurrence).
896
897       [count]N
898              repeat previous search  in  reverse  direction  (for  [count]‐th
899              occurrence).
900
901       [count]g, [count]<, [count]Alt-<
902              scroll to the first line of the file (or line [count]).
903
904       [count]G, [count]>, [count]Alt->
905              scroll to the last line of the file (or line [count]).
906
907       [count]p, [count]%
908              scroll to the beginning of the file (or N percent into file).
909
910       v      invoke  an  editor  to  edit the current file being viewed.  The
911              command for editing is taken from  the  'vicmd'/'vixcmd'  option
912              value  and  extended with middle line number prepended by a plus
913              sign and name of the current file.
914
915       All "Ctrl-W x" keys work the same was as in Normal mode.   Active  mode
916       is  automatically  changed on navigating among windows.  When less-like
917       mode activated on file preview is left using one by  "Ctrl-W  x"  keys,
918       its state is stored until another file is displayed using preview (it's
919       possible to leave the mode, hide preview pane, do something else,  then
920       get back to the file and show preview pane again with previously stored
921       state in it).
922

Command line Mode

924       These keys are available in all submodes of the command line mode: com‐
925       mand, search, prompt and filtering.
926
927       Down,  Up, Left, Right, Home, End and Delete are extended keys and they
928       are not available if  vifm  is  compiled  with  --disable-extended-keys
929       option.
930
931       Esc, Ctrl-C
932              leave  command  line  mode,  cancels  input.  Cancelled input is
933              saved into appropriate history and can be recalled later.
934
935       Ctrl-M, Enter
936              execute command and leave command line mode.
937
938       Ctrl-I, Tab
939              complete command or its argument.
940
941       Shift-Tab
942              complete in reverse order.
943
944       Ctrl-_ stop completion and return original input.
945
946       Ctrl-B, Left
947              move cursor to the left.
948
949       Ctrl-F, Right
950              move cursor to the right.
951
952       Ctrl-A, Home
953              go to line beginning.
954
955       Ctrl-E, End
956              go to line end.
957
958       Alt-B  go to the beginning of previous word.
959
960       Alt-F  go to the end of next word.
961
962       Ctrl-U remove characters from cursor position  till  the  beginning  of
963              line.
964
965       Ctrl-K remove characters from cursor position till the end of line.
966
967       Ctrl-H, Backspace
968              remove character before the cursor.
969
970       Ctrl-D, Delete
971              remove character under the cursor.
972
973       Ctrl-W remove  characters  from  cursor  position till the beginning of
974              previous word.
975
976       Alt-D  remove characters from cursor position  till  the  beginning  of
977              next word.
978
979       Ctrl-T swap the order of current and previous character and move cursor
980              forward or, if cursor past the end of line, swap  the  order  of
981              two last characters in the line.
982
983       Alt-.  insert last part of previous command to current cursor position.
984              Each next call will insert last part of older command.
985
986       Ctrl-G edit command-line content in external editor.  See "Command line
987              editing" section for details.
988
989       Ctrl-N recall more recent command-line from history.
990
991       Ctrl-P recall older command-line from history.
992
993       Up     recall more recent command-line from history, that begins as the
994              current command-line.
995
996       Down   recall older command-line from history, that begins as the  cur‐
997              rent command-line.
998
999       Ctrl-] trigger abbreviation expansion.
1000

Pasting special values

1002       The  shortcuts listed below insert specified values into current cursor
1003       position.  Last key of every shortcut references value that it inserts:
1004         - c - [c]urrent file
1005         - d - [d]irectory path
1006         - e - [e]xtension of a file name
1007         - r - [r]oot part of a file name
1008         - t - [t]ail part of directory path
1009
1010         - a - [a]utomatic filter
1011         - m - [m]anual filter
1012         - = - local filter, which is bound to "=" in normal mode
1013
1014       Values related to filelist in current pane are available through Ctrl-X
1015       prefix,  while  values  from  the other pane have doubled Ctrl-X key as
1016       their prefix (doubled Ctrl-X is presumably easier to type  than  upper‐
1017       case  letters; it's still easy to remap the keys to correspond to names
1018       of similar macros).
1019
1020       Ctrl-X c
1021              name of the current file of the active pane.
1022
1023       Ctrl-X d
1024              path to the current directory of the active pane.
1025
1026       Ctrl-X e
1027              extension of the current file of the active pane.
1028
1029       Ctrl-X r
1030              name root of current file of the active pane.
1031
1032       Ctrl-X t
1033              the last component of path  to  the  current  directory  of  the
1034              active pane.
1035
1036       Ctrl-X Ctrl-X c
1037              name of the current file of the inactive pane.
1038
1039       Ctrl-X Ctrl-X d
1040              path to the current directory of the inactive pane.
1041
1042       Ctrl-X Ctrl-X e
1043              extension of the current file of the inactive pane.
1044
1045       Ctrl-X Ctrl-X r
1046              name root of current file of the inactive pane.
1047
1048       Ctrl-X Ctrl-X t
1049              the last component of path to the current directory of the inac‐
1050              tive pane.
1051
1052
1053       Ctrl-X a
1054              value of implicit permanent filter (old name "automatic") of the
1055              active pane.
1056
1057       Ctrl-X m
1058              value  of  explicit  permanent filter (old name "manual") of the
1059              active pane.
1060
1061       Ctrl-X =
1062              value of local filter of the active pane.
1063
1064
1065       Ctrl-X /
1066              last pattern from search history.
1067

Command line editing

1069       vifm provides a facility to edit several kinds of data, that is usually
1070       edited  in  command-line mode, in external editor (using command speci‐
1071       fied by 'vicmd' or 'vixcmd' option).  This has at least two  advantages
1072       over built-in command-line mode:
1073         - one can use full power of Vim to edit text;
1074         - finding and reusing history entries becomes possible.
1075
1076       The facility is supported by four input submodes of the command-line:
1077         - command;
1078         - forward search;
1079         - backward search;
1080         - file rename (see description of cw and cW normal mode keys).
1081
1082       Editing  command-line  using external editor is activated by the Ctrl-G
1083       shortcut.  It's also possible to do almost the  same  from  Normal  and
1084       Visual modes using q:, q/ and q? commands.
1085
1086       Temporary file created for the purpose of editing the line has the fol‐
1087       lowing structure:
1088
1089         1. First line, which is either empty or contains text already entered
1090            in command-line.
1091
1092         2. 2nd  and all other lines with history items starting with the most
1093            recent one.  Altering this lines in any way won't  change  history
1094            items stored by vifm.
1095
1096       After  editing  application  is  finished the first line of the file is
1097       taken as the result of operation, when  the  application  returns  zero
1098       exit  code.  If the application returns an error (see :cquit command in
1099       Vim), all the edits made to the file are ignored, but the initial value
1100       of the first line is saved in appropriate history.
1101

More Mode

1103       This is the mode that appears when status bar content is so big that it
1104       doesn't fit on the screen.  One can identify the mode by "--  More  --"
1105       message at the bottom.
1106
1107       The following keys are handled in this mode:
1108
1109
1110       Enter, Ctrl-J, j or Down
1111              scroll one line down.
1112
1113       Backspace, k or Up
1114              scroll one line up.
1115
1116
1117       d      scroll one page (half of a screen) down.
1118
1119       u      scroll one page (half of a screen) up.
1120
1121
1122       Space, f or PageDown
1123              scroll down a screen.
1124
1125       b or PageUp
1126              scroll up a screen.
1127
1128
1129       G      scroll to the bottom.
1130
1131       g      scroll to the top.
1132
1133
1134       q, Escape or Ctrl-C
1135              quit the mode.
1136
1137       :      switch to command-line mode.
1138

Commands

1140       Commands are executed with :command_name<Enter>
1141
1142       Commented  out  lines  should  start  with the double quote symbol ("),
1143       which may be preceded by whitespace characters intermixed with  colons.
1144       Inline  comments can be added at the end of the line after double quote
1145       symbol, only last line of a multi-line command can  contain  such  com‐
1146       ment.   Not  all  commands support inline comments as their syntax con‐
1147       flicts with names of registers  and  fields  where  double  quotes  are
1148       allowed.
1149
1150       Most of the commands have two forms: complete and the short one.  Exam‐
1151       ple:
1152
1153         :noh[lsearch]
1154
1155       This means the complete command is nohlsearch, and  the  short  one  is
1156       noh.
1157
1158       Most of command-line commands completely reset selection in the current
1159       view.  However, there are several exceptions:
1160
1161         - `:invert s` most likely leaves some files selected;
1162
1163         - :normal command (when it doesn't leave command-line mode);
1164
1165         - :if and :else commands don't affect selection on successful  execu‐
1166           tion.
1167
1168       '|' can be used to separate commands, so you can give multiple commands
1169       in one line.  If you want to use '|' in an argument,  precede  it  with
1170       '\'.
1171
1172       These  commands  see  '|'  as  part  of  their arguments even when it's
1173       escaped:
1174
1175           :[range]!
1176           :autocmd
1177           :cabbrev
1178           :cmap
1179           :cnoreabbrev
1180           :cnoremap
1181           :command
1182           :dmap
1183           :dnoremap
1184           :filetype
1185           :fileviewer
1186           :filextype
1187           :map
1188           :mmap
1189           :mnoremap
1190           :nmap
1191           :nnoremap
1192           :noremap
1193           :normal
1194           :qmap
1195           :qnoremap
1196           :vmap
1197           :vnoremap
1198           :wincmd
1199           :windo
1200           :winrun
1201
1202       To be able to use another command after one of these, wrap it with  the
1203       :execute command.  An example:
1204
1205         if filetype('.') == 'reg' | execute '!!echo regular file' | endif
1206
1207       :[count]
1208
1209       :number
1210              move to the file number.
1211              :12 would move to the 12th file in the list.
1212              :0 move to the top of the list.
1213              :$ move to the bottom of the list.
1214
1215       :[count]command
1216              The   only  builtin  :[count]command  are  :[count]d[elete]  and
1217              :[count]y[ank].
1218
1219       :d3    would delete three files starting at the current  file  position
1220              moving down.
1221
1222       :3d    would delete one file at the third line in the list.
1223
1224       :command [args]
1225
1226       :[range]!program
1227              execute command via shell.  Accepts macros.
1228
1229       :[range]!command &
1230
1231       same  as  above,  but the command is run in the background using vifm's
1232       means.
1233
1234       Programs that write to stderr create error dialogs  showing  errors  of
1235       the command.
1236
1237       Note the space before ampersand symbol, if you omit it, command will be
1238       run in the background using job control of your shell.
1239
1240       Accepts macros.
1241
1242                                                :!!
1243
1244       :[range]!!command
1245              same as :!, but pauses before returning.
1246
1247       :!!    repeat the last command.
1248
1249                                                :alink
1250
1251       :[range]alink[!?]
1252              create absolute symbolic links to files in directory of inactive
1253              view.   With  "?"  prompts for destination file names in an edi‐
1254              tor.  "!" forces overwrite.
1255
1256       :[range]alink[!] path
1257              create absolute symbolic links to files in  directory  specified
1258              by  the  path  (absolute  or  relative  to directory of inactive
1259              view).
1260
1261       :[range]alink[!] name1 name2...
1262              create absolute symbolic links of files in  directory  of  other
1263              view  giving  each next link a corresponding name from the argu‐
1264              ment list.
1265
1266                                                :apropos
1267
1268       :apropos keyword...
1269              create a menu of items returned by the apropos command.  Select‐
1270              ing  an  item  in  the  menu  opens  corresponding man page.  By
1271              default the command relies on the  external  "apropos"  utility,
1272              which  can  be  customized by altering value of the 'aproposprg'
1273              option.  See "Menus and dialogs" section for controls.
1274
1275                                                :autocmd
1276
1277       :au[tocmd] {event} {pat} {cmd}
1278              register autocommand for the {event}, which can be:
1279                - DirEnter - triggered after directory is changed
1280              Event name is case insensitive.
1281
1282              {pat} is a comma-separated  list  of  modified  globs  patterns,
1283              which can contain tilde or environment variables.  All paths use
1284              slash ('/') as directory separator.  The pattern can start  with
1285              a  '!',  which negates it.  Patterns that do not contain slashes
1286              are matched against the last item of the path only  (e.g.  "dir"
1287              in  "/path/dir").   Literal comma can be entered by doubling it.
1288              Two modifications to globs matching are as follows:
1289                - *  - never matches a slash (i.e., can signify single  direc‐
1290              tory level)
1291                -  **  -  matches any character (i.e., can match path of arbi‐
1292              trary depth)
1293
1294              {cmd} is a :command or several of them separated with '|'.
1295
1296              Examples of patterns:
1297                - conf.d      - matches conf.d directory anywhere
1298                - *.d         - matches directories ending with ".d" anywhere
1299                - **.git      - matches something.git, but not .git anywhere
1300                - **/.git/**  - matches /path/.git/objects, but not /path/.git
1301                - **/.git/**/ - matches /path/.git/ only (because of  trailing
1302              slash)
1303                -  /etc/*       -  matches  /etc/conf.d/,  /etc/X11,  but  not
1304              /etc/X11/fs
1305                - /etc/**/*.d - matches /etc/conf.d, /etc/X11/conf.d, etc.
1306                - /etc/**/*   - matches /etc/ itself and any file below it
1307                - /etc/**/**  - matches /etc/ itself and any file below it
1308
1309       :au[tocmd] [{event}] [{pat}]
1310              list those autocommands that match given event-pattern  combina‐
1311              tion.
1312              {event}  and  {pat} can be omitted to list all autocommands.  To
1313              list any autocommands for specific pattern one can use *  place‐
1314              holder in place of {event}.
1315
1316       :au[tocmd]! [{event}] [{pat}]
1317              remove  autocommands that match given event-pattern combination.
1318              Syntax is the same as for listing above.
1319
1320       :apropos
1321              repeat last :apropos command.
1322
1323                                                :bmark
1324
1325       :bmark tag1 [tag2 [tag3...]]
1326              bookmark current directory with specified tags.
1327
1328       :bmark! path tag1 [tag2 [tag3...]]
1329              same as :bmark, but allows bookmarking specific path instead  of
1330              current  directory.  This is for use in vifmrc and for bookmark‐
1331              ing files.
1332
1333              Path can contain macros that expand to single path (%c, %C,  %d,
1334              %D) or those that can expand to multiple paths, but contain only
1335              one (%f, %F, %rx).  The latter is done for convenience on  using
1336              the  command  interactively.  Complex macros that include spaces
1337              (e.g. "%c:gs/ /_") should be escaped.
1338
1339                                                :bmarks
1340
1341       :bmarks
1342              display all bookmarks in a menu.
1343
1344       :bmarks [tag1 [tag2...]]
1345              display menu of bookmarks that  include  all  of  the  specified
1346              tags.  See "Menus and dialogs" section for controls.
1347
1348                                                :bmgo
1349
1350       :bmgo [tag1 [tag2...]]
1351              when  there  are  more than one match acts exactly like :bmarks,
1352              otherwise navigates to single match immediately  (and  fails  if
1353              there is no match).
1354
1355                                                :cabbrev
1356
1357       :ca[bbrev]
1358              display menu of command-line mode abbreviations.  See "Menus and
1359              dialogs" section for controls.
1360
1361       :ca[bbrev] lhs-prefix
1362              display command-line mode  abbreviations  which  left-hand  side
1363              starts with specified prefix.
1364
1365       :ca[bbrev] lhs rhs
1366              register  new  or  overwrites existing abbreviation for command-
1367              line mode.  rhs can contain spaces  and  any  special  sequences
1368              accepted  in  rhs  of  mappings  (see "Mappings" section below).
1369              Abbreviations are expanded non-recursively.
1370
1371                                                :cnoreabbrev
1372
1373       :cnorea[bbrev]
1374              display menu of command-line mode abbreviations.  See "Menus and
1375              dialogs" section for controls.
1376
1377       :cnorea[bbrev] lhs-prefix
1378              display  command-line  mode  abbreviations  which left-hand side
1379              starts with specified prefix.
1380
1381       :cnorea[bbrev] lhs rhs
1382              same as :cabbrev, but mappings in rhs are ignored during  expan‐
1383              sion.
1384
1385                                                :cd
1386
1387       :cd or :cd ~ or :cd $HOME
1388              change to home directory.
1389
1390       :cd -  go to the last visited directory.
1391
1392       :cd ~/dir
1393              change directory to ~/dir.
1394
1395       :cd /curr/dir /other/dir
1396              change  directory of the current pane to /curr/dir and directory
1397              of the other pane to /other/dir.  Relative paths are assumed  to
1398              be relative to directory of current view.  Command won't fail if
1399              one of directories is invalid.  All forms of the command  accept
1400              macros.
1401
1402       :cd! /dir
1403              same as :cd /dir /dir.
1404
1405                                                :cds
1406
1407       :cds[!] pattern string
1408              navigate to path obtained by substituting first match in current
1409              path.  Arguments can include slashes, but starting  first  argu‐
1410              ment  with  a separator will activate below form of the command.
1411              Specifying "!"  changes directory of both panes.
1412
1413       Available flags:
1414
1415         - i - ignore case (the 'ignorecase' and 'smartcase' options  are  not
1416           used)
1417
1418         - I - don't ignore case (the 'ignorecase' and 'smartcase' options are
1419           not used)
1420
1421       :cds[!]/pattern/string/[flags]
1422              same as above, but with :substitute-like syntax.  Other punctua‐
1423              tion characters can be used as separators.
1424
1425                                                :change
1426
1427       :c[hange]
1428              show a dialog to alter properties of files.
1429
1430                                                :chmod
1431
1432       :[range]chmod
1433              display  file  attributes  (permission on *nix and properties on
1434              Windows) change dialog.
1435
1436       :[range]chmod[!] arg...
1437              only for *nix
1438              change permissions for files.  See `man 1 chmod` for arg format.
1439              "!" means set permissions recursively.
1440
1441                                                :chown
1442
1443       :[range]chown
1444              only for *nix
1445              same as co key in normal mode.
1446
1447       :[range]chown [user][:][group]
1448              only for *nix
1449              change  owner  and/or  group  of files.  Operates on directories
1450              recursively.
1451
1452                                                :clone
1453
1454       :[range]clone[!?]
1455              clones files in current directory.  With "?" vifm will  open  vi
1456              to edit file names.  "!" forces overwrite.  Macros are expanded.
1457
1458       :[range]clone[!] path
1459              clones  files  to directory specified with the path (absolute or
1460              relative to current directory).  "!" forces  overwrite.   Macros
1461              are expanded.
1462
1463       :[range]clone[!] name1 name2...
1464              clones  files in current directory giving each next clone a cor‐
1465              responding name from the argument list.  "!"  forces  overwrite.
1466              Macros are expanded.
1467
1468                                                :colorscheme
1469
1470       :colo[rscheme]?
1471              print current color scheme name on the status bar.
1472
1473       :colo[rscheme]
1474              display  a menu with a list of available color schemes.  You can
1475              choose primary color scheme here.  It is used  for  view  if  no
1476              directory  specific  colorscheme  fits  current path.  It's also
1477              used to set border color (except  view  titles)  and  colors  in
1478              menus  and  dialogs.   See  "Menus and dialogs" section for con‐
1479              trols.
1480
1481       :colo[rscheme] color_scheme_name
1482              change primary color scheme to color_scheme_name.   In  case  of
1483              errors  (e.g.  some colors are not supported by terminal) either
1484              nothing is changed or color scheme is reset to builtin colors to
1485              ensure that TUI is left in a usable state.
1486
1487       :colo[rscheme] color_scheme_name directory
1488              associate  directory with the color scheme.  The directory argu‐
1489              ment can be either absolute or relative path  when  :colorscheme
1490              command  is  executed from command line, but mandatory should be
1491              an absolute path when the command is executed in scripts  loaded
1492              at startup (until vifm is completely loaded).
1493
1494       :colo[rscheme] color_scheme_name color_scheme_name...
1495              loads  the first color scheme in the order given that exists and
1496              is supported by the terminal.   If  none  matches,  current  one
1497              remains unchanged.  For example:
1498
1499                " use a separate color scheme for panes which are inside FUSE mounts
1500                execute 'colorscheme in-fuse' &fusehome
1501
1502                                                :comclear
1503
1504       :comc[lear]
1505              remove all user defined commands.
1506
1507                                                :command
1508
1509       :com[mand]
1510              display  a  menu of user commands.  See "Menus and dialogs" sec‐
1511              tion for controls.
1512
1513       :com[mand] prefix
1514              display user defined commands that start with the prefix.
1515
1516       :com[mand] name action[ &]
1517              set or redefine a user command.
1518              Use :com[mand]! to overwrite a previously  set  command  of  the
1519              same name.  Builtin commands can't be redefined.
1520              Unlike in vim, user commands do not have to start with a capital
1521              letter.  However, command name cannot contain numbers or special
1522              symbols except for single trailing '?' or '!'.
1523              User  commands are run in a shell by default (see below for syn‐
1524              tax of other options).  To run a command in the  background  you
1525              must  mark  it  as a background command by adding " &" after the
1526              command's action (e.g., `:com rm rm %f &`).
1527              User commands of all kinds have macros expanded  in  them.   See
1528              "Command macros" section for more information.
1529
1530       :com[mand] name /pattern
1531              set search pattern.
1532
1533       :com[mand] name =pattern
1534              set local filter value.
1535
1536       :com[mand] name filter{:filter args}
1537              set  file  name  filter  (see :filter command description).  For
1538              example:
1539
1540                " display only audio files
1541                :command onlyaudio filter/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
1542                " display everything except audio files
1543                :command noaudio filter!/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
1544
1545       :com[mand] name :commands
1546              set kind of an alias for internal commands (like  in  a  shell).
1547              Passes  range  given  to alias to an aliased command, so running
1548              :%cp after
1549                :command cp :copy %a
1550              equals
1551                :%copy
1552
1553                                                :compare
1554
1555       :compare [byname |  bysize  |  bycontents  |  listall  |  listunique  |
1556       listdups | ofboth | ofone | groupids | grouppaths | skipempty]...
1557              compare  files in one or two views according the arguments.  The
1558              default is "bycontents listall ofboth grouppaths".  See "Compare
1559              views"  section below for details.  Tree structure is incompati‐
1560              ble with alternative representations, so values of 'lsview'  and
1561              'millerview' options are ignored.
1562
1563                                                :copen
1564
1565       :cope[n]
1566              opens menu with contents of the last displayed menu with naviga‐
1567              tion to files by default, if any.
1568
1569                                                :copy
1570
1571       :[range]co[py][!?][ &]
1572              copy files to directory of other view.   With  "?"  prompts  for
1573              destination file names in an editor.  "!" forces overwrite.
1574
1575       :[range]co[py][!] path[ &]
1576              copy  files  to  directory  specified with the path (absolute or
1577              relative to directory of other view).  "!" forces overwrite.
1578
1579       :[range]co[py][!] name1 name2...[ &]
1580              copy files to directory of other view giving each  next  file  a
1581              corresponding  name  from  the  argument list.  "!" forces over‐
1582              write.
1583
1584                                                :cquit
1585
1586       :cq[uit][!]
1587              same  as  :quit,  but  also  aborts   directory   choosing   via
1588              --choose-dir  (empties  output  file)  and returns non-zero exit
1589              code.
1590
1591                                                :cunabbrev
1592
1593       :cuna[bbrev] lhs
1594              unregister command-line mode abbreviation by its lhs.
1595
1596       :cuna[bbrev] rhs
1597              unregister command-line mode abbreviation by its  rhs,  so  that
1598              abbreviation could be removed even after expansion.
1599
1600                                                :delbmarks
1601
1602       :delbmarks
1603              remove bookmarks from current directory.
1604
1605       :delbmarks tag1 [tag2 [tag3...]]
1606              remove set of bookmarks that include all of the specified tags.
1607
1608       :delbmarks!
1609              remove all bookmarks.
1610
1611       :delbmarks! path1 [path2 [path3...]]
1612              remove bookmarks of listed paths.
1613
1614                                                :delcommand
1615
1616       :delc[ommand] user_command
1617              remove user defined command named user_command.
1618
1619                                                :delete
1620
1621       :[range]d[elete][!][ &]
1622              delete  selected  file  or  files.   "!"  means complete removal
1623              (omitting trash).
1624
1625       :[range]d[elete][!] [reg] [count][ &]
1626              delete selected or [count] files to the reg register.  "!" means
1627              complete removal (omitting trash).
1628
1629                                                :delmarks
1630
1631       :delm[arks]!
1632              delete all marks.
1633
1634       :delm[arks] marks ...
1635              delete  specified  marks,  each  argument is treated as a set of
1636              marks.
1637
1638                                                :delsession
1639
1640       :delsession
1641              delete specified session if it was stored previously.   Deleting
1642              current session doesn't detach it.
1643
1644                                                :display
1645
1646       :di[splay]
1647              display menu with registers content.
1648
1649       :di[splay] list ...
1650              display  the  contents  of the numbered and named registers that
1651              are mentioned in list (for example "az to display "", "a and  "z
1652              content).
1653
1654                                                :dirs
1655
1656       :dirs  display directory stack in a menu.  See "Menus and dialogs" sec‐
1657              tion for controls.
1658
1659                                                :echo
1660
1661       :ec[ho] [<expr>...]
1662              evaluate each argument as an expression and  output  them  sepa‐
1663              rated  with  a space.  See help on :let command for a definition
1664              of <expr>.
1665
1666                                                :edit
1667
1668       :[range]e[dit] [file...]
1669              open selected or passed file(s) in editor.  Macros and  environ‐
1670              ment variables are expanded.
1671
1672                                                :else
1673
1674       :el[se]
1675              execute  commands until next matching :endif if all other condi‐
1676              tions didn't match.  See also help on :if and :endif commands.
1677
1678                                                :elseif
1679
1680       :elsei[f] {expr1}
1681              execute commands until next matching :elseif, :else or :endif if
1682              conditions  of  previous :if and :elseif branches were evaluated
1683              to zero.  See also help on :if and :endif commands.
1684
1685                                                :empty
1686
1687       :empty permanently remove  files  from  all  existing  non-empty  trash
1688              directories (see "Trash directory" section below).  Trash direc‐
1689              tories which are specified via %r and/or  %u  also  get  deleted
1690              completely.   Also remove all operations from undolist that have
1691              no sense after :empty and remove all records about files located
1692              inside  directories from all registers.  Removal is performed as
1693              background task with undetermined amount  of  work  and  can  be
1694              checked via :jobs menu.
1695
1696                                                :endif
1697
1698       :en[dif]
1699              end conditional block.  See also help on :if and :else commands.
1700
1701                                                :execute
1702
1703       :exe[cute] [<expr>...]
1704              evaluate  each  argument as an expression and join results sepa‐
1705              rated by a space to get a single string which is  then  executed
1706              as a command-line command.  See help on :let command for a defi‐
1707              nition of <expr>.
1708
1709                                                :exit
1710
1711       :exi[t][!]
1712              same as :quit.
1713
1714                                                :file
1715
1716       :f[ile][ &]
1717              display menu of programs set for the file type  of  the  current
1718              file.   "  &"  forces  running associated program in background.
1719              See "Menus and dialogs" section for controls.
1720
1721       :f[ile] arg[ &]
1722              run associated command that begins with the arg skipping opening
1723              menu.  " &" forces running associated program in background.
1724
1725                                                :filetype
1726
1727       :filet[ype] pattern-list [{descr}]def_prog[ &],[{descr}]prog2[ &],...
1728              associate  given  program list to each of the patterns.  Associ‐
1729              ated program (command) is used by handlers of l and  Enter  keys
1730              (and  also in the :file menu).  If you need to insert comma into
1731              command just double it (",,").  Space followed by  an  ampersand
1732              as two last characters of a command means running of the command
1733              in the background.  Optional description can be  given  to  each
1734              command  to  ease  understanding  of what command will do in the
1735              :file menu.  Vifm will try the rest of the programs for an asso‐
1736              ciation  when  the  default  isn't  found.   When  program entry
1737              doesn't contain any of vifm macros,  name  of  current  file  is
1738              appended as if program entry ended with %c macro on *nix and %"c
1739              on Windows.  On Windows path to  executables  containing  spaces
1740              can  (and  should be for correct work with such paths) be double
1741              quoted.  See "Patterns" section below for pattern definition and
1742              "Selection"  section  for  how  selection  is handled.  See also
1743              "Automatic FUSE mounts" section below.  Example for zip archives
1744              and several actions:
1745
1746                filetype *.zip,*.jar,*.war,*.ear
1747                       \ {Mount with fuse-zip}
1748                       \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
1749                       \ {View contents}
1750                       \ zip -sf %c | less,
1751                       \ {Extract here}
1752                       \ tar -xf %c,
1753
1754              Note  that  on  OS X when `open` is used to call an app, vifm is
1755              unable to check whether that app is actually available.   So  if
1756              automatic  skipping  of programs that aren't there is desirable,
1757              `open` should be replaced with an actual command.
1758
1759       :filet[ype] filename
1760              list (in menu mode) currently  registered  patterns  that  match
1761              specified file name.  Same as ":filextype filename".
1762
1763                                                :filextype
1764
1765       :filex[type] pattern-list [{ description }] def_program,program2,...
1766              same as :filetype, but this command is ignored if not running in
1767              X.  In X :filextype is equal to :filetype.  See "Patterns"  sec‐
1768              tion  below  for  pattern definition and "Selection" section for
1769              how selection is handled.  See also "Automatic FUSE mounts" sec‐
1770              tion below.
1771
1772              For  example,  consider  the following settings (the order might
1773              seem strange, but it's for the demonstration purpose):
1774
1775                filetype *.html,*.htm
1776                        \ {View in lynx}
1777                        \ lynx
1778                filextype *.html,*.htm
1779                        \ {Open with dwb}
1780                        \ dwb %f %i &,
1781                filetype *.html,*.htm
1782                        \ {View in links}
1783                        \ links
1784                filextype *.html,*.htm
1785                        \ {Open with firefox}
1786                        \ firefox %f &,
1787                        \ {Open with uzbl}
1788                        \ uzbl-browser %f %i &,
1789
1790              If you're using vifm inside a terminal emulator that is  running
1791              in graphical environment (when X is used on *nix; always on Win‐
1792              dows), vifm attempts to run application in this order:
1793
1794              1. lynx
1795              2. dwb
1796              3. links
1797              4. firefox
1798              5. uzbl
1799
1800              If there is no graphical environment  (checked  by  presence  of
1801              non-empty  $DISPLAY  or $WAYLAND_DISPLAY environment variable on
1802              *nix; never happens on Windows), the list will look like:
1803
1804              1. lynx
1805              2. links
1806
1807              Just as if all :filextype commands were not there.
1808
1809              The purpose of such differentiation is to allow comfortable  use
1810              of vifm with same settings in desktop environment/through remote
1811              connection (SSH)/in native console.
1812
1813              Note that on OS X $DISPLAY isn't defined unless you  define  it,
1814              so  :filextype  should  be used only if you set $DISPLAY in some
1815              way.
1816
1817       :filext[ype] filename
1818              list (in menu mode) currently  registered  patterns  that  match
1819              specified file name.  Same as ":filetype filename".
1820
1821                                                :fileviewer
1822
1823       :filev[iewer] pattern-list command1,command2,...
1824              register  specified  list of commands as viewers for each of the
1825              patterns.  Viewer is a command which output is captured and dis‐
1826              played in one of the panes of vifm after pressing "e" or running
1827              :view command.  When the command doesn't  contain  any  of  vifm
1828              macros,  name  of  current  file is appended as if command ended
1829              with %c macro.  Comma escaping and missing  commands  processing
1830              rules  as  for  :filetype apply to this command.  See "Patterns"
1831              section below for pattern definition.
1832
1833              Example for zip archives:
1834
1835                fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c, echo "No zip to preview:"
1836
1837       :filev[iewer] filename
1838              list (in menu mode) currently  registered  patterns  that  match
1839              specified filename.
1840
1841                                                :filter
1842
1843       :filter[!] {pattern}
1844              filter  files  matching  the  pattern out of directory listings.
1845              '!' controls state of filter  inversion  after  updating  filter
1846              value  (see  also  'cpoptions'  description).  Filter is matched
1847              case sensitively on *nix and case insensitively on Windows.  See
1848              "File Filters" and "Patterns" sections.
1849
1850              Example:
1851
1852                " filter all files ending in .o from the filelist.
1853                :filter /.o$/
1854
1855
1856       :filter[!] {empty-pattern}
1857              same as above, but use last search pattern as pattern value.
1858
1859              Example:
1860
1861                :filter //I
1862
1863
1864       :filter
1865              reset filter (set it to an empty string) and show all files.
1866
1867       :filter!
1868              same as :invert.
1869
1870       :filter?
1871              show information on local, name and auto filters.
1872
1873                                                :find
1874
1875       :[range]fin[d] pattern
1876              display  results  of  find  command in the menu.  Searches among
1877              selected files if any.  Accepts macros.  By default the  command
1878              relies  on  the external "find" utility, which can be customized
1879              by altering value of the 'findprg' option.
1880
1881       :[range]fin[d] -opt...
1882              same as :find  above,  but  user  defines  all  find  arguments.
1883              Searches among selected files if any.
1884
1885       :[range]fin[d] path -opt...
1886              same  as  :find  above,  but  user  defines  all find arguments.
1887              Ignores selection and range.
1888
1889       :[range]fin[d]
1890              repeat last :find command.
1891
1892                                                :finish
1893
1894       :fini[sh]
1895              stop sourcing a script. Can only be used in a vifm script  file.
1896              This is a quick way to skip the rest of the file.
1897
1898                                                :goto
1899
1900       :go[to]
1901              change  directory  if necessary and put specified path under the
1902              cursor.  The path should be existing non-root path.  Macros  and
1903              environment variables are expanded.
1904
1905                                                :grep
1906
1907       :[range]gr[ep][!] pattern
1908              will  show  results  of  grep  command  in the menu.  Add "!" to
1909              request inversion of search (look for lines that  do  not  match
1910              pattern).   Searches  among  selected  files if any and no range
1911              given.  Ignores binary files by default.  By default the command
1912              relies  on  the external "grep" utility, which can be customized
1913              by altering value of the 'grepprg' option.
1914
1915       :[range]gr[ep][!] -opt...
1916              same as :grep above, but user defines all grep arguments,  which
1917              are not escaped.  Searches among selected files if any.
1918
1919       :[range]gr[ep][!]
1920              repeat  last  :grep command.  "!" of this command inverts "!" in
1921              repeated command.
1922
1923                                                :help
1924
1925       :h[elp]
1926              show the help file.
1927
1928       :h[elp] argument
1929              is the same as using ':h argument' in vim.  Use vifm-<something>
1930              to  get  help  on vifm (tab completion works).  This form of the
1931              command doesn't work when 'vimhelp' option is off.
1932
1933                                                :hideui
1934
1935       :hideui
1936              hide interface to show previous commands' output.
1937
1938                                                :highlight
1939
1940       :hi[ghlight]
1941              display information about all highlight  groups  active  at  the
1942              moment.
1943
1944       :hi[ghlight] clear
1945              reset all highlighting to builtin defaults and removed all file‐
1946              name-specific rules.
1947
1948       :hi[ghlight] clear ( {pat1,pat2,...} | /regexp/ )
1949              remove specified rule.
1950
1951       :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/ )
1952              display information on given highlight group or file  name  pat‐
1953              tern of color scheme used in the active view.
1954
1955       :hi[ghlight]   (   group-name   |   {pat1,pat2,...}  |  /regexp/[iI]  )
1956       cterm=style | ctermfg=color | ctermbg=color
1957              set  style  (cterm),  foreground  (ctermfg)  or/and   background
1958              (ctermbg) parameters of highlight group or file name pattern for
1959              color scheme used in the active view.
1960
1961       All style values as well as color names are case insensitive.
1962
1963       Available style values (some of them can be combined):
1964        - bold
1965        - underline
1966        - reverse or inverse
1967        - standout
1968        - italic (on unsupported systems becomes reverse)
1969        - none
1970
1971       Available group-name values:
1972        - Win - color of all windows (views, dialogs, menus) and default color
1973       for their content (e.g. regular files in views)
1974        - AuxWin - color of auxiliary areas of windows
1975        - OtherWin - color of inactive pane
1976        - Border - color of vertical parts of the border
1977        - TabLine - tab line color (for 'tabscope' set to "global")
1978        -  TabLineSel  - color of the tip of selected tab (regardless of 'tab‐
1979       scope')
1980        - TopLine - top line color of the other pane
1981        - TopLineSel - top line color of the current pane
1982        - CmdLine - the command line/status bar color
1983        - ErrorMsg - color of error messages in the status bar
1984        - StatusLine - color of the line above the status bar
1985        - JobLine - color of job line that appears above the status line
1986        - WildMenu - color of the wild menu items
1987        - SuggestBox - color of key suggestion box
1988        - CurrLine - line at cursor position in active view
1989        - OtherLine - line at cursor position in inactive view
1990        - OddLine - color of every second entry line in a pane
1991        - LineNr - line number column of views
1992        - Selected - color of selected files
1993        - Directory - color of directories
1994        - Link - color of symbolic links in the views
1995        - BrokenLink - color of broken symbolic links
1996        - HardLink - color of regular files with more than one hard link
1997        - Socket - color of sockets
1998        - Device - color of block and character devices
1999        - Executable - color of executable files
2000        - Fifo - color of fifo pipes
2001        - CmpMismatch - color of mismatched files in  side-by-side  comparison
2002       by path
2003        - User1..User9 - 9 colors which can be used via %* 'statusline' macro
2004
2005       Available colors:
2006        - -1 or default or none - default or transparent
2007        - black   and lightblack
2008        - red     and lightred
2009        - green   and lightgreen
2010        - yellow  and lightyellow
2011        - blue    and lightblue
2012        - magenta and lightmagenta
2013        - cyan    and lightcyan
2014        - white   and lightwhite
2015        - 0-255 - corresponding colors from 256-color palette
2016
2017       Light  versions  of  colors are regular colors with bold attribute set.
2018       So order of arguments of :highlight command is important and it's  bet‐
2019       ter  to  put  "cterm" in front of others to prevent it from overwriting
2020       attributes set by "ctermfg" or "ctermbg" arguments.
2021
2022       For convenience of color scheme authors xterm-like names for 256  color
2023       palette    is    also   supported.    The   mapping   is   taken   from
2024       http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim   Dupli‐
2025       cated  entries were altered by adding an underscore followed by numeri‐
2026       cal suffix.
2027
2028         0 Black                  86 Aquamarine1           172 Orange3
2029         1 Red                    87 DarkSlateGray2        173 LightSalmon3_2
2030         2 Green                  88 DarkRed_2             174 LightPink3
2031         3 Yellow                 89 DeepPink4_2           175 Pink3
2032         4 Blue                   90 DarkMagenta           176 Plum3
2033         5 Magenta                91 DarkMagenta_2         177 Violet
2034         6 Cyan                   92 DarkViolet            178 Gold3_2
2035         7 White                  93 Purple                179 LightGoldenrod3
2036         8 LightBlack             94 Orange4_2             180 Tan
2037         9 LightRed               95 LightPink4            181 MistyRose3
2038        10 LightGreen             96 Plum4                 182 Thistle3
2039        11 LightYellow            97 MediumPurple3         183 Plum2
2040        12 LightBlue              98 MediumPurple3_2       184 Yellow3_2
2041        13 LightMagenta           99 SlateBlue1            185 Khaki3
2042        14 LightCyan             100 Yellow4               186 LightGoldenrod2
2043        15 LightWhite            101 Wheat4                187 LightYellow3
2044        16 Grey0                 102 Grey53                188 Grey84
2045        17 NavyBlue              103 LightSlateGrey        189 LightSteelBlue1
2046        18 DarkBlue              104 MediumPurple          190 Yellow2
2047        19 Blue3                 105 LightSlateBlue        191 DarkOliveGreen1
2048        20 Blue3_2                106  Yellow4_2              192  DarkOliveG‐
2049       reen1_2
2050        21 Blue1                 107 DarkOliveGreen3       193 DarkSeaGreen1_2
2051        22 DarkGreen             108 DarkSeaGreen          194 Honeydew2
2052        23 DeepSkyBlue4          109 LightSkyBlue3         195 LightCyan1
2053        24 DeepSkyBlue4_2        110 LightSkyBlue3_2       196 Red1
2054        25 DeepSkyBlue4_3        111 SkyBlue2              197 DeepPink2
2055        26 DodgerBlue3           112 Chartreuse2_2         198 DeepPink1
2056        27 DodgerBlue2           113 DarkOliveGreen3_2     199 DeepPink1_2
2057        28 Green4                114 PaleGreen3_2          200 Magenta2_2
2058        29 SpringGreen4          115 DarkSeaGreen3         201 Magenta1
2059        30 Turquoise4            116 DarkSlateGray3        202 OrangeRed1
2060        31 DeepSkyBlue3          117 SkyBlue1              203 IndianRed1
2061        32 DeepSkyBlue3_2        118 Chartreuse1           204 IndianRed1_2
2062        33 DodgerBlue1           119 LightGreen_2          205 HotPink
2063        34 Green3                120 LightGreen_3          206 HotPink_2
2064        35 SpringGreen3          121 PaleGreen1            207 MediumOrchid1_2
2065        36 DarkCyan              122 Aquamarine1_2         208 DarkOrange
2066        37 LightSeaGreen         123 DarkSlateGray1        209 Salmon1
2067        38 DeepSkyBlue2          124 Red3                  210 LightCoral
2068        39 DeepSkyBlue1          125 DeepPink4_3           211 PaleVioletRed1
2069        40 Green3_2              126 MediumVioletRed       212 Orchid2
2070        41 SpringGreen3_2        127 Magenta3              213 Orchid1
2071        42 SpringGreen2          128 DarkViolet_2          214 Orange1
2072        43 Cyan3                 129 Purple_2              215 SandyBrown
2073        44 DarkTurquoise         130 DarkOrange3           216 LightSalmon1
2074        45 Turquoise2            131 IndianRed             217 LightPink1
2075        46 Green1                132 HotPink3              218 Pink1
2076        47 SpringGreen2_2        133 MediumOrchid3         219 Plum1
2077        48 SpringGreen1          134 MediumOrchid          220 Gold1
2078        49  MediumSpringGreen      135  MediumPurple2         221 LightGolden‐
2079       rod2_2
2080        50 Cyan2                 136  DarkGoldenrod          222  LightGolden‐
2081       rod2_3
2082        51 Cyan1                 137 LightSalmon3          223 NavajoWhite1
2083        52 DarkRed               138 RosyBrown             224 MistyRose1
2084        53 DeepPink4             139 Grey63                225 Thistle1
2085        54 Purple4               140 MediumPurple2_2       226 Yellow1
2086        55 Purple4_2             141 MediumPurple1         227 LightGoldenrod1
2087        56 Purple3               142 Gold3                 228 Khaki1
2088        57 BlueViolet            143 DarkKhaki             229 Wheat1
2089        58 Orange4               144 NavajoWhite3          230 Cornsilk1
2090        59 Grey37                145 Grey69                231 Grey100
2091        60 MediumPurple4         146 LightSteelBlue3       232 Grey3
2092        61 SlateBlue3            147 LightSteelBlue        233 Grey7
2093        62 SlateBlue3_2          148 Yellow3               234 Grey11
2094        63 RoyalBlue1            149 DarkOliveGreen3_3     235 Grey15
2095        64 Chartreuse4           150 DarkSeaGreen3_2       236 Grey19
2096        65 DarkSeaGreen4         151 DarkSeaGreen2         237 Grey23
2097        66 PaleTurquoise4        152 LightCyan3            238 Grey27
2098        67 SteelBlue             153 LightSkyBlue1         239 Grey30
2099        68 SteelBlue3            154 GreenYellow           240 Grey35
2100        69 CornflowerBlue        155 DarkOliveGreen2       241 Grey39
2101        70 Chartreuse3           156 PaleGreen1_2          242 Grey42
2102        71 DarkSeaGreen4_2       157 DarkSeaGreen2_2       243 Grey46
2103        72 CadetBlue             158 DarkSeaGreen1         244 Grey50
2104        73 CadetBlue_2           159 PaleTurquoise1        245 Grey54
2105        74 SkyBlue3              160 Red3_2                246 Grey58
2106        75 SteelBlue1            161 DeepPink3             247 Grey62
2107        76 Chartreuse3_2         162 DeepPink3_2           248 Grey66
2108        77 PaleGreen3            163 Magenta3_2            249 Grey70
2109        78 SeaGreen3             164 Magenta3_3            250 Grey74
2110        79 Aquamarine3           165 Magenta2              251 Grey78
2111        80 MediumTurquoise       166 DarkOrange3_2         252 Grey82
2112        81 SteelBlue1_2          167 IndianRed_2           253 Grey85
2113        82 Chartreuse2           168 HotPink3_2            254 Grey89
2114        83 SeaGreen2             169 HotPink2              255 Grey93
2115        84 SeaGreen1             170 Orchid
2116        85 SeaGreen1_2           171 MediumOrchid1
2117
2118       There  are  two  colors  (foreground  and background) and only one bold
2119       attribute.   Thus  single  bold  attribute  affects  both  colors  when
2120       "reverse"  attribute  is used in vifm run inside terminal emulator.  At
2121       the same time linux native console can handle  boldness  of  foreground
2122       and  background colors independently, but for consistency with terminal
2123       emulators this is available only implicitly by using light versions  of
2124       colors.  This behaviour might be changed in the future.
2125
2126       Although  vifm  supports 256 colors in a sense they are supported by UI
2127       drawing library, whether you will be able to use  all  of  them  highly
2128       depends  on your terminal.  To set up terminal properly, make sure that
2129       $TERM in the environment you run vifm is set to name of 256-color  ter‐
2130       minal   (on   *nixes  it  can  also  be  set  via  X  resources),  e.g.
2131       xterm-256color.  One can find list of available terminal names by list‐
2132       ing  /usr/lib/terminfo/.   Number  of colors supported by terminal with
2133       current settings can be checked via "tput colors" command.
2134
2135       Here is the hierarchy of highlight groups, which you need to  know  for
2136       using transparency:
2137         JobLine
2138         SuggestBox
2139         StatusLine
2140           WildMenu
2141           User1..User9
2142         Border
2143         CmdLine
2144           ErrorMsg
2145         Win
2146           OtherWin
2147             AuxWin
2148               OddLine
2149                 File name specific highlights
2150                   Directory
2151                   Link
2152                   BrokenLink
2153                   HardLink
2154                   Socket
2155                   Device
2156                   Fifo
2157                   Executable
2158                     Selected
2159                       CurrLine
2160                         LineNr (in active pane)
2161                       OtherLine
2162                         LineNr (in inactive pane)
2163         TopLine
2164           TopLineSel
2165             TabLineSel (for pane tabs)
2166               User1..User9
2167         TabLine
2168           TabLineSel
2169             User1..User9
2170
2171       "none"  means  default terminal color for highlight groups at the first
2172       level of the hierarchy and transparency for all others.
2173
2174       Here file name specific highlights mean those configured via globs ({})
2175       or  regular  expressions (//).  At most one of them is applied per file
2176       entry, namely the first that matches file name, hence order  of  :high‐
2177       light commands might be important in certain cases.
2178
2179                                                :history
2180
2181       :his[tory]
2182              display a menu with list of visited directories.  See "Menus and
2183              dialogs" section for controls.
2184
2185       :his[tory] x
2186              x can be:
2187                d[ir]     or . show directory history.
2188                c[md]     or : show command line history.
2189                s[earch]  or / show search history and  search  forward  on  l
2190              key.
2191                f[search]  or  /  show  search history and search forward on l
2192              key.
2193                b[search] or ? show search history and search  backward  on  l
2194              key.
2195                i[nput]    or  @  show prompt history (e.g. on one file renam‐
2196              ing).
2197                fi[lter]  or = show filter history (see description of the "="
2198              normal mode command).
2199              See "Menus and dialogs" section for controls.
2200
2201                                                :histnext
2202
2203       :histnext
2204              same  as  <c-i>.   The main use case for this command is to work
2205              around the common pain point of <tab> and <c-i> being  the  same
2206              ASCII  character: one could alter the terminal emulator settings
2207              to emit, for example, the `F1` keycode when Ctrl-I  is  pressed,
2208              then  `:noremap <f1> :histnext<cr>` in vifm, add "t" flag to the
2209              'cpoptions', and thus have  both  <c-i>  and  <tab>  working  as
2210              expected.
2211
2212                                                :histprev
2213
2214       :histprev
2215              same as <c-o>.
2216
2217                                                :if
2218
2219       :if {expr1}
2220              start  conditional  block.   Commands  are  executed  until next
2221              matching :elseif, :else or :endif command if  {expr1}  evaluates
2222              to non-zero, otherwise they are ignored.  See also help on :else
2223              and :endif commands.
2224
2225              Example:
2226
2227                if $TERM == 'screen.linux'
2228                    highlight CurrLine ctermfg=lightwhite ctermbg=lightblack
2229                elseif $TERM == 'tmux'
2230                    highlight CurrLine cterm=reverse ctermfg=black ctermbg=white
2231                else
2232                    highlight CurrLine cterm=bold,reverse ctermfg=black ctermbg=white
2233                endif
2234
2235                                                :invert
2236
2237       :invert [f]
2238              invert file name filter.
2239
2240       :invert? [f]
2241              show current filter state.
2242
2243       :invert s
2244              invert selection.
2245
2246       :invert o
2247              invert sorting order of the primary sorting key.
2248
2249       :invert? o
2250              show sorting order of the primary sorting key.
2251
2252                                                :jobs
2253
2254       :jobs  display menu of current backgrounded processes.  See "Menus  and
2255              dialogs" section for controls.
2256
2257                                                :let
2258
2259       :let $ENV_VAR = <expr>
2260              set an environment variable.  Warning: setting environment vari‐
2261              able to an empty string on Windows removes it.
2262
2263       :let $ENV_VAR .= <expr>
2264              append value to environment variable.
2265
2266       :let &[l:|g:]opt = <expr>
2267              sets option value.
2268
2269       :let &[l:|g:]opt .= <expr>
2270              append value to string option.
2271
2272       :let &[l:|g:]opt += <expr>
2273              increasing option value, adding sub-values.
2274
2275       :let &[l:|g:]opt -= <expr>
2276              decreasing option value, removing sub-values.
2277
2278       Where <expr> could be a single-quoted string, double-quoted string,  an
2279       environment  variable,  function call or a concatanation of any of them
2280       in any order using the '.' operator.  Any whitespace is ignored.
2281
2282                                                :locate
2283
2284       :locate filename
2285              use "locate" command to create a menu of filenames.  Selecting a
2286              file  from the menu will reload the current file list in vifm to
2287              show the selected file.  By default the command  relies  on  the
2288              external  "locate"  utility  (it's  assumed that its database is
2289              already built), which can be customized by altering value of the
2290              'locateprg'  option.   See  "Menus and dialogs" section for con‐
2291              trols.
2292
2293       :locate
2294              repeat last :locate command.
2295
2296                                                :ls
2297
2298       :ls    lists windows of active terminal multiplexer (only when terminal
2299              multiplexer  is  used).  This is achieved by issuing proper com‐
2300              mand for active terminal multiplexer, thus the list is not  han‐
2301              dled by vifm.
2302
2303                                                :lstrash
2304
2305       :lstrash
2306              display a menu with list of files in trash.  Each element of the
2307              list is original path of a deleted file, thus the list can  con‐
2308              tain duplicates.  See "Menus and dialogs" section for controls.
2309
2310                                                :mark
2311
2312       :[range]ma[rk][?] x [/full/path] [filename]
2313              Set  mark  x (a-zA-Z0-9) at /full/path and filename.  By default
2314              current directory is being used.  If no filename was  given  and
2315              /full/path  is  current  directory  then last file in [range] is
2316              used.  Using of macros is allowed.  Question mark will stop com‐
2317              mand from overwriting existing marks.
2318
2319                                                :marks
2320
2321       :marks create  a pop-up menu of marks.  See "Menus and dialogs" section
2322              for controls.
2323
2324       :marks list ...
2325              display the contents of the marks that are mentioned in list.
2326
2327                                                :media
2328
2329       :media only for *nix
2330              display media management menu.  See "Menus and dialogs"  section
2331              for controls.  See also 'mediaprg' option.
2332
2333                                                :messages
2334
2335       :mes[sages]
2336              shows previously given messages (up to 50).
2337
2338                                                :mkdir
2339
2340       :[line]mkdir[!] dir ...
2341              create  directories  at specified paths.  The [line] can be used
2342              to pick node in a tree-view.  "!" means make parent  directories
2343              as needed.  Macros are expanded.
2344
2345                                                :move
2346
2347       :[range]m[ove][!?][ &]
2348              move  files  to  directory  of other view.  With "?" prompts for
2349              destination file names in an editor.  "!" forces overwrite.
2350
2351       :[range]m[ove][!] path[ &]
2352              move files to directory specified with  the  path  (absolute  or
2353              relative to directory of other view).  "!" forces overwrite.
2354
2355       :[range]m[ove][!] name1 name2...[ &]
2356              move  files  to  directory of other view giving each next file a
2357              corresponding name from the argument  list.   "!"  forces  over‐
2358              write.
2359
2360                                                :nohlsearch
2361
2362       :noh[lsearch]
2363              clear selection in current pane.
2364
2365                                                :normal
2366
2367       :norm[al][!] commands
2368              execute normal mode commands.  If "!" is used, user defined map‐
2369              pings are ignored.  Unfinished last command  is  aborted  as  if
2370              <esc>  or  <c-c>  was typed.  A ":" should be completed as well.
2371              Commands can't start with a space, so put a  count  of  1  (one)
2372              before it.
2373
2374                                                :only
2375
2376       :on[ly]
2377              switch to a one window view.
2378
2379                                                :popd
2380
2381       :popd  remove pane directories from stack.
2382
2383                                                :pushd
2384
2385       :pushd[!] /curr/dir [/other/dir]
2386              add  pane  directories  to  stack and process arguments like :cd
2387              command.
2388
2389       :pushd exchange the top two items of the directory stack.
2390
2391                                                :put
2392
2393       :[line]pu[t][!] [reg] [ &]
2394              puts files from specified register (" by default)  into  current
2395              directory.   The [line] can be used to pick node in a tree-view.
2396              "!" moves files "!" moves files  from  their  original  location
2397              instead  of copying them.  During this operation no confirmation
2398              dialogs will be shown, all checks are performed beforehand.
2399
2400                                                :pwd
2401
2402       :pw[d] show the present working directory.
2403
2404                                                :qall
2405
2406       :qa[ll][!]
2407              exit vifm (add ! to skip saving changes and checking for  active
2408              backgrounded commands).
2409
2410                                                :quit
2411
2412       :q[uit][!]
2413              if  there is more than one tab, close the current one, otherwise
2414              exit vifm (add ! to skip saving state and  checking  for  active
2415              backgrounded commands).
2416
2417                                                :redraw
2418
2419       :redr[aw]
2420              redraw the screen immediately.
2421
2422                                                :registers
2423
2424       :reg[isters]
2425              display menu with registers content.
2426
2427       :reg[isters] list ...
2428              display  the  contents  of the numbered and named registers that
2429              are mentioned in list (for example "az to display "", "a and  "z
2430              content).
2431
2432                                                :regular
2433
2434       :regular
2435
2436       switch to regular view leaving custom view.
2437                                                       :rename
2438
2439       :[range]rename[!]
2440              rename  files  using  vi  to  edit names. ! means go recursively
2441              through directories.
2442
2443       :[range]rename name1 name2...
2444              rename each of selected files to a corresponding name.
2445
2446                                                :restart
2447
2448       :restart
2449              free  a  lot  of  things  (histories,  commands,  etc.),  reread
2450              vifminfo,  vifmrc  and  session  files  and run startup commands
2451              passed in the argument list, thus  losing  all  unsaved  changes
2452              (e.g.   recent  history  or  keys  mapped  after  starting  this
2453              instance).  Session that wasn't yet stored gets reset.
2454
2455              While many things get reset, some basic  UI  state  and  current
2456              locations are preserved, including tabs.
2457
2458       :restart full
2459              variation  of  :restart  that  makes no attempt to preserve any‐
2460              thing.
2461
2462                                                :restore
2463
2464       :[range]restore
2465              restore file from trash directory, doesn't work outside  one  of
2466              trash directories.  See "Trash directory" section below.
2467
2468                                                :rlink
2469
2470       :[range]rlink[!?]
2471              create  relative  symbolic  links to files in directory of other
2472              view.  With "?" prompts for destination file names in an editor.
2473              "!" forces overwrite.
2474
2475       :[range]rlink[!] path
2476              create  relative  symbolic links of files in directory specified
2477              with the path (absolute or relative to directory of other view).
2478              "!" forces overwrite.
2479
2480       :[range]rlink[!] name1 name2...
2481              create  relative  symbolic  links of files in directory of other
2482              view giving each next link a corresponding name from  the  argu‐
2483              ment list.  "!" forces overwrite.
2484
2485                                                :screen
2486
2487       :screen
2488              toggle whether to use the terminal multiplexer or not.
2489              A  terminal  multiplexer uses pseudo terminals to allow multiple
2490              windows to be used in the console or in a single xterm.   Start‐
2491              ing  vifm  from  terminal  multiplexer  with appropriate support
2492              turned on will cause vifm to open  a  new  terminal  multiplexer
2493              window for each new file edited or program launched from vifm.
2494              This  requires  screen  version 3.9.9 or newer for the screen -X
2495              argument or tmux (1.8 version or newer is recommended).
2496
2497       :screen!
2498              enable integration with terminal multiplexers.
2499
2500       :screen?
2501              display  whether  integration  with  terminal  multiplexers   is
2502              enabled.
2503
2504       Note:  the  command  is called screen for historical reasons (when tmux
2505       wasn't yet supported) and might be changed in future releases,  or  get
2506       an alias.
2507
2508                                                :select
2509
2510       :[range]select
2511              select  files  in  the  given range (current file if no range is
2512              given).
2513
2514       :select {pattern}
2515              select files that match specified pattern.   Possible  {pattern}
2516              forms are described in "Patterns" section below.  Trailing slash
2517              for directories is taken into account, so `:select! */ |  invert
2518              s` selects only files.
2519
2520       :select //[iI]
2521              same as item above, but reuses last search pattern.
2522
2523       :select !{external command}
2524              select  files from the list supplied by external command.  Files
2525              are matched by full paths, relative paths are converted to abso‐
2526              lute ones beforehand.
2527
2528       :[range]select! [{pattern}]
2529              same  as above, but resets previously selected items before pro‐
2530              ceeding.
2531
2532                                                :session
2533
2534       :session?
2535              print name of the current session.
2536
2537       :session
2538              detach current session without saving it.  Resets v:session.
2539
2540       :session name
2541              create or load and switch to a session with the specified  name.
2542              Name  can't  contain  slashes.   Session active at the moment is
2543              saved before the switch.  Session is  also  automatically  saved
2544              when quiting the application in usual ways.  Sets v:session.
2545
2546                                                :set
2547
2548       :se[t] display all options that differ from their default value.
2549
2550       :se[t] all
2551              display all options.
2552
2553       :se[t] opt1=val1 opt2='val2' opt3="val3" ...
2554              sets given options.  For local options both values are set.
2555              You can use following syntax:
2556               - for all options - option, option? and option&
2557               - for boolean options - nooption, invoption and option!
2558               - for integer options - option=x, option+=x and option-=x
2559               - for string options - option=x and option+=x
2560               -  for string list options - option=x, option+=x, option-=x and
2561              option^=x
2562               - for enumeration options - option=x, option+=x and option-=x
2563               -  for  set  options  -  option=x,  option+=x,  option-=x   and
2564              option^=x
2565               -  for  charset  options  -  option=x, option+=x, option-=x and
2566              option^=x
2567
2568              the meaning:
2569               - option - turn option on (for boolean) or print its value (for
2570              all others)
2571               - nooption - turn option off
2572               - invoption - invert option state
2573               - option! - invert option state
2574               - option? - print option value
2575               - option& - reset option to its default value
2576               - option=x or option:x - set option to x
2577               - option+=x - add/append x to option
2578               - option-=x - remove (or subtract) x from option
2579               - option^=x - toggle x presence among values of the option
2580
2581              Option  name  can  be  prepended  and  appended by any number of
2582              whitespace characters.
2583
2584                                                :setglobal
2585
2586       :setg[lobal]
2587              display all global options that differ from their default value.
2588
2589       :setg[lobal] all
2590              display all global options.
2591
2592       :setg[lobal] opt1=val1 opt2='val2' opt3="val3" ...
2593              same as :set, but changes/prints only global options  or  global
2594              values  of  local  options.   Changes to the latter might be not
2595              visible until directory is changed.
2596
2597                                                :setlocal
2598
2599       :setl[ocal]
2600              display all local options that differ from their default value.
2601
2602       :setl[ocal] all
2603              display all local options.
2604
2605       :setl[ocal] opt1=val1 opt2='val2' opt3="val3" ...
2606              same as :set, but changes/prints  only  local  values  of  local
2607              options.
2608
2609                                                :shell
2610
2611       :sh[ell][!]
2612              start  a  shell  in  current directory.  "!" suppresses spawning
2613              dedicated window of terminal multiplexer for a shell.   To  make
2614              vifm  adaptive  to  environment  it uses $SHELL if it's defined,
2615              otherwise 'shell' value is used.
2616
2617
2618                                                :siblnext
2619
2620       :[count]siblnext[!]
2621
2622              change directory to [count]th next sibling directory after  cur‐
2623              rent  path  using  value  of global sort option of current pane.
2624              "!" enables wrapping.
2625
2626              For example, say, you're at /boot and root listing  starts  like
2627              this:
2628
2629                  bin/
2630                  boot/
2631                  dev/
2632                  ...
2633
2634              Issuing :siblnext will navigate to /dev.
2635
2636
2637                                                :siblprev
2638
2639       :[count]siblprev[!]
2640              same as :siblnext, but in the opposite direction.
2641
2642                                                :sort
2643
2644       :sor[t]
2645              display  dialog  with  different  sorting methods, where one can
2646              select the primary sorting key.  When 'viewcolumns'  options  is
2647              empty  and  'lsview'  is  off, changing primary sorting key will
2648              also affect view look (in particular the second  column  of  the
2649              view will be changed).  See "Menus and dialogs" section for con‐
2650              trols.
2651
2652                                                :source
2653
2654       :so[urce] file
2655              read command-line commands from the file.
2656
2657                                                :split
2658
2659       :sp[lit]
2660              switch to a two window horizontal view.
2661
2662       :sp[lit]!
2663              toggle horizontal window splitting.
2664
2665       :sp[lit] path
2666              splits the window horizontally to show  both  file  directories.
2667              Also changes other pane to path (absolute or relative to current
2668              directory of active pane).
2669
2670                                                :substitute
2671
2672       :[range]s[ubstitute]/pattern/string/[flags]
2673              for each file in range replace a match of pattern with string.
2674
2675       String can contain \0...\9 to link to capture groups (\0 -  all  match,
2676       \1 - first group, etc.).
2677
2678       Pattern is stored in search history.
2679
2680       Available flags:
2681
2682         - i  -  ignore case (the 'ignorecase' and 'smartcase' options are not
2683           used)
2684
2685         - I - don't ignore case (the 'ignorecase' and 'smartcase' options are
2686           not used)
2687
2688         - g - substitute all matches in each file name (each g toggles this)
2689
2690       :[range]s[ubstitute]/pattern
2691              substitute pattern with an empty string.
2692
2693       :[range]s[ubstitute]//string/[flags]
2694              use last pattern from search history.
2695
2696       :[range]s[ubstitute]
2697              repeat previous substitution command.
2698
2699                                                :sync
2700
2701       :sync [relative path]
2702              change  the  other pane to the current pane directory or to some
2703              path  relative  to  the  current  directory.   Using  macros  is
2704              allowed.
2705
2706       :sync! change the other pane to the current pane directory and synchro‐
2707              nize cursor position.  If current pane displays custom  list  of
2708              files,  position  before  entering it is used (current one might
2709              not make any sense).
2710
2711
2712       :sync! [location | cursorpos | localopts | filters | filelist | tree  |
2713       all]...
2714              change  enumerated  properties of the other pane to match corre‐
2715              sponding properties of the current  pane.   Arguments  have  the
2716              following meanings:
2717
2718                - location - current directory of the pane;
2719
2720                - cursorpos  -  cursor  position  (doesn't  make sense without
2721                  "location");
2722
2723                - localopts - all local options;
2724
2725                - filters - all filters;
2726
2727                - filelist - list of files for  custom  view  (implies  "loca‐
2728                  tion");
2729
2730                - tree - tree structure for tree view (implies "location");
2731
2732                - all - all of the above.
2733
2734                                                :tabclose
2735
2736       :tabc[lose]
2737              close  current  tab,  unless  it's  the only one open at current
2738              scope.
2739
2740                                                :tabmove
2741
2742       :tabm[ove] [N]
2743              without the argument or with `$` as the  argument,  current  tab
2744              becomes  the  last tab.  With the argument, current tab is moved
2745              after the tab with the specified number.  Argument of `0`  moves
2746              current tab to the first position.
2747
2748                                                :tabname
2749
2750       :tabname [name]
2751              set,  update or reset (when no argument is provided) name of the
2752              current tab.
2753
2754                                                :tabnew
2755
2756       :tabnew [path]
2757              create new tab.  Accepts optional path for the new tab.   Macros
2758              and environment variables are expanded.
2759
2760                                                :tabnext
2761
2762       :tabn[ext]
2763              switch to the next tab (wrapping around).
2764
2765       :tabn[ext] {n}
2766              go to the tab number {n}.  Tab numeration starts with 1.
2767
2768                                                :tabonly
2769
2770       :tabo[nly]
2771              close  all  tabs  but the current one.  Closes pane tabs only at
2772              the active side.
2773
2774                                                :tabprevious
2775
2776       :tabp[revious]
2777              switch to the previous tab (wrapping around).
2778
2779       :tabp[revious] {n}
2780              go to the {n}-th previous tab.  Note that :tabnext  handles  its
2781              argument differently.
2782
2783                                                :touch
2784
2785       :[line]touch file...
2786              create  files  at  specified  paths.  Aborts on errors.  Doesn't
2787              update time of existing files.  The [line] can be used  to  pick
2788              node in a tree-view.  Macros are expanded.
2789
2790                                                :tr
2791
2792       :[range]tr/pattern/string/
2793              for each file in range transliterate the characters which appear
2794              in pattern to  the  corresponding  character  in  string.   When
2795              string  is shorter than pattern, it's padded with its last char‐
2796              acter.
2797
2798                                                :trashes
2799
2800       :trashes
2801              lists all valid trash directories in a menu.  Only non-empty and
2802              writable  trash directories are shown.  This is exactly the list
2803              of directories that are cleared when :empty command is executed.
2804
2805       :trashes?
2806              same as :trashes, but also displays size of  each  trash  direc‐
2807              tory.
2808
2809                                                :tree
2810
2811       :tree  turn  pane  into  tree  view with current directory as its root.
2812              The tree view is implemented on top of a  custom  view,  but  is
2813              automatically  kept in sync with file system state and considers
2814              all the filters.  Thus the structure  corresponds  to  what  one
2815              would  see  on  visiting the directories manually.  As a special
2816              case for trees built out of  custom  view  file-system  tracking
2817              isn't performed.
2818
2819              To leave tree view go up from its root or use gh at any level of
2820              the tree.  Any command that changes directory will also  do,  in
2821              particular, `:cd ..`.
2822
2823              Tree structure is incompatible with alternative representations,
2824              so values of 'lsview' and 'millerview' options are ignored.
2825
2826       :tree! toggle current view in and out of tree mode.
2827
2828                                                :undolist
2829
2830       :undol[ist]
2831              display list of latest changes.  Use "!" to see actual commands.
2832              See "Menus and dialogs" section for controls.
2833
2834                                                :unlet
2835
2836       :unl[et][!] $ENV_VAR1 $ENV_VAR2 ...
2837              remove  environment variables. Add ! to omit displaying of warn‐
2838              ings about nonexistent variables.
2839
2840                                                :unselect
2841
2842       :[range]unselect
2843              unselect files in the given range (current file if no  range  is
2844              given).
2845
2846       :unselect {pattern}
2847              unselect files that match specified pattern.  Possible {pattern}
2848              forms are described in "Patterns" section below.  Trailing slash
2849              for  directories  is taken into account, so `:unselect */` unse‐
2850              lects directories.
2851
2852       :unselect !{external command}
2853              unselect files from  the  list  supplied  by  external  command.
2854              Files are matched by full paths, relative paths are converted to
2855              absolute ones beforehand.
2856
2857       :unselect //[iI]
2858              same as item above, but reuses last search pattern.
2859
2860                                                :version
2861
2862       :ve[rsion]
2863              show menu with version information.
2864
2865                                                :vifm
2866
2867       :vifm  same as :version.
2868
2869                                                :view
2870
2871       :vie[w]
2872              toggle on and off the quick file view (preview  of  file's  con‐
2873              tents).  See also 'quickview' option.
2874
2875       :vie[w]!
2876              turn on quick file view if it's off.
2877
2878                                                :volumes
2879
2880       :volumes
2881              only for MS-Windows
2882              display  menu  with volume list.  Hitting l (or Enter) key opens
2883              appropriate volume in the current pane.  See "Menus and dialogs"
2884              section for controls.
2885
2886                                                :vsplit
2887
2888       :vs[plit]
2889              switch to a two window vertical view.
2890
2891       :vs[plit]!
2892              toggle window vertical splitting.
2893
2894       :vs[plit] path
2895              split  the window vertically to show both file directories.  And
2896              changes other pane to path  (absolute  or  relative  to  current
2897              directory of active pane).
2898
2899                                                :wincmd
2900
2901       :[count]winc[md] {arg}
2902              same as running Ctrl-W [count] {arg}.
2903
2904                                                :windo
2905
2906       :windo [command...]
2907              execute command for each pane (same as :winrun % command).
2908
2909                                                :winrun
2910
2911       :winrun type [command...]
2912              execute  command  for pane(s), which is determined by type argu‐
2913              ment:
2914                - ^ - top-left pane
2915                - $ - bottom-right pane
2916                - % - all panes
2917                - . - current pane
2918                - , - other pane
2919
2920                                                :write
2921
2922       :w[rite]
2923              write current state to vifminfo and session files (if a  session
2924              is active).
2925
2926                                                :wq
2927
2928       :wq[!] same  as  :quit,  but  ! disables only the check of backgrounded
2929              commands, while state of the application is  always  written.
2930              :wqall
2931
2932       :wqa[ll][!]
2933              same  as  :qall,  but  ! disables only the check of backgrounded
2934              commands, while state of the application is always written.
2935
2936                                                :xall
2937
2938       :xa[ll][!]
2939              same as :qall.
2940
2941                                                :xit
2942
2943       :x[it][!]
2944              same as :quit.
2945
2946                                                :yank
2947
2948       :[range]y[ank] [reg] [count]
2949              will yank files to the reg register.
2950
2951                                                :map lhs rhs
2952
2953       :map lhs rhs
2954              map lhs key sequence to rhs in normal and visual modes.
2955
2956       :map! lhs rhs
2957              map lhs key sequence to rhs in command line mode.
2958
2959
2960                                              :cmap :dmap  :mmap  :nmap  :qmap
2961       :vmap
2962
2963       :cm[ap] lhs rhs
2964              map lhs to rhs in command line mode.
2965
2966       :dm[ap] lhs rhs
2967              map lhs to rhs in dialog modes.
2968
2969       :mm[ap] lhs rhs
2970              map lhs to rhs in menu mode.
2971
2972       :nm[ap] lhs rhs
2973              map lhs to rhs in normal mode.
2974
2975       :qm[ap] lhs rhs
2976              map lhs to rhs in view mode.
2977
2978       :vm[ap] lhs rhs
2979              map lhs to rhs in visual mode.
2980
2981
2982                                                :*map
2983
2984       :cm[ap]
2985              list all maps in command line mode.
2986
2987       :dm[ap]
2988              list all maps in dialog modes.
2989
2990       :mm[ap]
2991              list all maps in menu mode.
2992
2993       :nm[ap]
2994              list all maps in normal mode.
2995
2996       :qm[ap]
2997              list all maps in view mode.
2998
2999       :vm[ap]
3000              list all maps in visual mode.
3001
3002                                                :*map beginning
3003
3004       :cm[ap] beginning
3005              list  all  maps  in command line mode that start with the begin‐
3006              ning.
3007
3008       :dm[ap] beginning
3009              list all maps in dialog modes that start with the beginning.
3010
3011       :mm[ap] beginning
3012              list all maps in menu mode that start with the beginning.
3013
3014       :nm[ap] beginning
3015              list all maps in normal mode that start with the beginning.
3016
3017       :qm[ap] beginning
3018              list all maps in view mode that start with the beginning.
3019
3020       :vm[ap] beginning
3021              list all maps in visual mode that start with the beginning.
3022
3023                                                :noremap
3024
3025       :no[remap] lhs rhs
3026              map the key sequence lhs to rhs for normal and visual modes, but
3027              disallow mapping of rhs.
3028
3029       :no[remap]! lhs rhs
3030              map  the key sequence lhs to rhs for command line mode, but dis‐
3031              allow mapping of rhs.
3032
3033                       :cnoremap  :dnoremap  :mnoremap   :nnoremap   :qnoremap
3034       :vnoremap
3035
3036       :cno[remap] lhs rhs
3037              map  the key sequence lhs to rhs for command line mode, but dis‐
3038              allow mapping of rhs.
3039
3040       :dn[oremap] lhs rhs
3041              map the key sequence lhs to rhs for dialog modes,  but  disallow
3042              mapping of rhs.
3043
3044       :mn[oremap] lhs rhs
3045              map the key sequence lhs to rhs for menu mode, but disallow map‐
3046              ping of rhs.
3047
3048       :nn[oremap] lhs rhs
3049              map the key sequence lhs to rhs for normal  mode,  but  disallow
3050              mapping of rhs.
3051
3052       :qn[oremap] lhs rhs
3053              map the key sequence lhs to rhs for view mode, but disallow map‐
3054              ping of rhs.
3055
3056       :vn[oremap] lhs rhs
3057              map the key sequence lhs to rhs for visual  mode,  but  disallow
3058              mapping of rhs.
3059
3060                                                :unmap
3061
3062       :unm[ap] lhs
3063              remove user mapping of lhs from normal and visual modes.
3064
3065       :unm[ap]! lhs
3066              remove user mapping of lhs from command line mode.
3067
3068                                   :cunmap  :dunmap  :munmap  :nunmap  :qunmap
3069       :vunmap
3070
3071       :cu[nmap] lhs
3072              remove user mapping of lhs from command line mode.
3073
3074       :du[nmap] lhs
3075              remove user mapping of lhs from dialog modes.
3076
3077       :mu[nmap] lhs
3078              remove user mapping of lhs from menu mode.
3079
3080       :nun[map] lhs
3081              remove user mapping of lhs from normal mode.
3082
3083       :qun[map] lhs
3084              remove user mapping of lhs from view mode.
3085
3086       :vu[nmap] lhs
3087              remove user mapping of lhs from visual mode.
3088

Ranges

3090       The ranges implemented include:
3091         2,3 - from second to third file in the list (including it)
3092         % - the entire directory.
3093         . - the current position in the filelist.
3094         $ - the end of the filelist.
3095         't - the mark position t.
3096
3097       Examples:
3098
3099         :%delete
3100
3101       would delete all files in the directory.
3102
3103         :2,4delete
3104
3105       would delete the files in the list positions 2 through 4.
3106
3107         :.,$delete
3108
3109       would delete the files from the current position  to  the  end  of  the
3110       filelist.
3111
3112         :3delete4
3113
3114       would delete the files in the list positions 3, 4, 5, 6.
3115
3116       If a backward range is given :4,2delete - an query message is given and
3117       user can chose what to do next.
3118
3119       The builtin commands that accept a range are :d[elete] and :y[ank].
3120

Command macros

3122       The command macros may be used in user commands.
3123
3124       %a     User arguments.  When user arguments contain  macros,  they  are
3125              expanded before preforming substitution of %a.
3126
3127       %c %"c The current file under the cursor.
3128
3129       %C %"C The current file under the cursor in the other directory.
3130
3131       %f %"f All of the selected files, but see "Selection" section below.
3132
3133       %F %"F All  of  the selected files in the other directory list, but see
3134              "Selection" section below.
3135
3136       %b %"b Same as %f %F.
3137
3138       %d %"d Full path to current directory.
3139
3140       %D %"D Full path to other file list directory.
3141
3142       %rx %"rx
3143              Full paths to files in the register {x}.   In  case  of  invalid
3144              symbol in place of {x}, it's processed with the rest of the line
3145              and default register is used.
3146
3147       %m     Show command output in a menu.
3148
3149       %M     Same as %m, but l (or Enter) key is handled like for :locate and
3150              :find commands.
3151
3152       %u     Process  command output as list of paths and compose custom view
3153              out of it.
3154
3155       %U     Same as %u, but implies less list updates inside vifm, which  is
3156              absence of sorting at the moment.
3157
3158       %Iu    same  as  %u, but gives up terminal before running external com‐
3159              mand.
3160
3161       %IU    same as %U, but gives up terminal before running  external  com‐
3162              mand.
3163
3164       %S     Show command output in the status bar.
3165
3166       %q     redirect  command  output  to  quick view, which is activated if
3167              disabled.
3168
3169       %s     Execute command in split window of active  terminal  multiplexer
3170              (ignored if not running inside one).
3171
3172       %n     Forbid using of terminal multiplexer to run the command.
3173
3174       %i     Completely ignore command output.
3175
3176
3177       %pc    Marks the end of the main command and the beginning of the clear
3178              command for graphical preview, which is invoked on closing  pre‐
3179              view of a file.
3180
3181       %pd    Marks  a  preview command as one that directly communicates with
3182              the terminal.  Beware that this is for things like  sixel  which
3183              are  self-contained sequences that depend only on current cursor
3184              position, using this with anything else is likely to mangle ter‐
3185              minal state.
3186
3187       The following dimensions and coordinates are in characters:
3188
3189       %px    x coordinate of top-left corner of preview area.
3190
3191       %py    y coordinate of top-left corner of preview area.
3192
3193       %pw    width of preview area.
3194
3195       %ph    height of preview area.
3196
3197
3198       Use %% if you need to put a percent sign in your command.
3199
3200       Note  that %m, %M, %s, %S, %i, %u and %U macros are mutually exclusive.
3201       Only the last one of them on the command will take effect.
3202
3203       You can use file name modifiers after %c, %C, %f, %F,  %b,  %d  and  %D
3204       macros.  Supported modifiers are:
3205
3206         - :p           - full path
3207
3208         - :u             -   UNC   name   of   path   (e.g.   "\\server"   in
3209           "\\server\share"), Windows only.  Expands to current computer  name
3210           for not UNC paths.
3211
3212         - :~           - relative to the home directory
3213
3214         - :.           - relative to current directory
3215
3216         - :h           - head of the file name
3217
3218         - :t           - tail of the file name
3219
3220         - :r           - root of the file name (without last extension)
3221
3222         - :e           - extension of the file name (last one)
3223
3224         - :s?pat?sub?   -  substitute  the  first occurrence of pat with sub.
3225           You can use any character for '?', but it must not occur in pat  or
3226           sub.
3227
3228         - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with
3229           sub.
3230
3231       See ':h filename-modifiers' in Vim's  documentation  for  the  detailed
3232       description.
3233
3234       Using  %x means expand corresponding macro escaping all characters that
3235       have special meaning.  And %"x means using of double quotes and  escape
3236       only  backslash  and  double  quote characters, which is more useful on
3237       Windows systems.
3238
3239       Position and quantity (if there is any) of %m, %M, %S or %s  macros  in
3240       the command is unimportant.  All their occurrences are removed from the
3241       resulting command.
3242
3243       %c and %f macros are expanded to file names only, when %C  and  %F  are
3244       expanded to full paths.  %f and %F follow this in %b too.
3245
3246       :com move mv %f %D
3247              set  the  :move command to move all of the files selected in the
3248              current directory to the other directory.
3249
3250       The %a macro is replaced with any arguments given to an alias  command.
3251       All arguments are considered optional.
3252              :com  lsl !!ls -l %a - set the lsl command to execute ls -l with
3253              or without an argument.
3254
3255       :lsl<Enter>
3256              will list the directory contents of the current directory.
3257
3258       :lsl filename<Enter>
3259              will list only the given filename.
3260
3261       The macros can also be used in directly executing commands.   ":!mv  %f
3262       %D" would move the current directory selected files to the other direc‐
3263       tory.
3264
3265       Appending & to the end of a command causes it to  be  executed  in  the
3266       background.   Typically  you want to run two kinds of external commands
3267       in the background:
3268
3269         - GUI applications that doesn't fork thus block vifm (:!sxiv %f &);
3270
3271         - console tools that do not work with terminal (:!mv %f %D &).
3272
3273       You don't want to run terminal commands, which require  terminal  input
3274       or output something in background because they will mess up vifm's TUI.
3275       Anyway, if you did run such a command, you can use Ctrl-L key to update
3276       vifm's TUI.
3277
3278       Rewriting  the example command with macros given above with background‐
3279       ing:
3280
3281       %m, %M, %s, %S, %u and %U macros cannot  be  combined  with  background
3282       mark (" &") as it doesn't make much sense.
3283

Command backgrounding

3285       Copy  and move operation can take a lot of time to proceed.  That's why
3286       vifm supports backgrounding of this  two  operations.   To  run  :copy,
3287       :move  or :delete command in the background just add " &" at the end of
3288       a command.
3289
3290       For each background operation a new thread is created.   Job  cancella‐
3291       tion can be requested in the :jobs menu via dd shortcut.
3292
3293       You  can  see  if  command  is  still running in the :jobs menu.  Back‐
3294       grounded commands have progress instead  of  process  id  at  the  line
3295       beginning.
3296
3297       Background operations cannot be undone.
3298

Cancellation

3300       Note that cancellation works somewhat different on Windows platform due
3301       to different mechanism of break signal  propagation.   One  also  might
3302       need to use Ctrl-Break shortcut instead of Ctrl-C.
3303
3304       There are two types of operations that can be cancelled:
3305
3306         - file system operations;
3307
3308         - mounting  with  FUSE  (but  not  unmounting as it can cause loss of
3309           data);
3310
3311         - calls of external applications.
3312
3313       Note that vifm never terminates applications, it  sends  SIGINT  signal
3314       and lets the application quit normally.
3315
3316       When one of set of operations is cancelled (e.g. copying of 5th file of
3317       10 files), further operations are cancelled too.   In  this  case  undo
3318       history will contain only actually performed operations.
3319
3320       Cancelled  operations are indicated by "(cancelled)" suffix appended to
3321       information message on statusbar.
3322
3323       File system operations
3324
3325       Currently the following commands  can  be  cancelled:  :alink,  :chmod,
3326       :chown,  :clone,  :copy,  :delete,  :mkdir,  :move,  :restore,  :rlink,
3327       :touch.  File putting (on p/P key) can be cancelled as well.  It's  not
3328       hard to see that these are mainly long-running operations.
3329
3330       Cancelling  commands when they are repeated for undo/redo operations is
3331       allowed for convenience, but is not recommended  as  further  undo/redo
3332       operations  might  get  blocked  by side-effects of partially cancelled
3333       group of operations.
3334
3335       These commands can't be cancelled: :empty, :rename, :substitute, :tr.
3336
3337       Mounting with FUSE
3338
3339       It's not considered to be an error, so only notification on the  status
3340       bar is shown.
3341
3342       External application calls
3343
3344       Each  of  this  operations  can  be  cancelled: :apropos, :find, :grep,
3345       :locate.
3346

Selection

3348       If there is a selection, it's stashed before proceeding further  unless
3349       file  under the cursor is part of that selection.  This means that when
3350       macros are expanded for :filetype or :filextype programs, `%f` and `%F`
3351       become  equivalent to `%c` and `%C` respectively if current file is not
3352       selected.  So you run selection by running one of selected files,  oth‐
3353       erwise  you're  running  a single file even if there are other selected
3354       entries.
3355
3356       When running a selection it must not include broken symbolic links, has
3357       to  be consistent and set of file handlers must be compatible.  Consis‐
3358       tency means that selection contains either only directories  (including
3359       links to them) or only files, but not their mix.
3360
3361       Compatibility is a more sophisticated check, but it's defined in a nat‐
3362       ural way so that you get what you'd expect.  The  following  properties
3363       of selection are taken into account while checking it for compatibility
3364       and deciding how to handle it:
3365
3366
3367         1. If there any files for which handler isn't defined, then all files
3368            are opened using 'vicmd' or 'vixcmd'.
3369
3370
3371         2. If all handlers match the following criteria:
3372             - backgrounded
3373             - include `%c` and/or `%C`
3374             - include neither `%f` nor `%F`
3375            then each file is executed independently of the rest.
3376
3377
3378         3. If  all  handlers are equal, the common handler is executed.  This
3379            handler might ignore selection and process  only  file  under  the
3380            cursor.
3381
3382
3383         4. Otherwise,  an error is reported, because handlers differ and they
3384            don't support parallel execution.
3385

Patterns

3387       :highlight, :filetype, :filextype, :fileviewer commands and  'classify'
3388       option  support globs, regular expressions and mime types to match file
3389       names or their paths.
3390
3391       There are six possible ways to write a single pattern:
3392
3393         1. [!]{comma-separated-name-globs}
3394
3395         2. [!]{{comma-separated-path-globs}}
3396
3397         3. [!]/name-regular-expression/[iI]
3398
3399         4. [!]//path-regular-expression//[iI]
3400
3401         5. [!]<comma-separated-mime-type-globs>
3402
3403         6. undecorated-pattern
3404
3405       First five forms can include leading exclamation mark that negates pat‐
3406       tern matching.
3407
3408       The  last  form is implicitly refers to one of others.  :highlight does
3409       not accept undecorated form, while :filetype, :filextype,  :fileviewer,
3410       :select, :unselect and 'classify' treat it as list of name globs.
3411
3412       Path  patterns receive absolute path of the file that includes its name
3413       component as well.
3414
3415       To combine several patterns (AND them), make sure you're using  one  of
3416       the first five forms and write patterns one after another, like this:
3417         <text/plain>{*.vifm}
3418       Mind that if you make a mistake the whole string will be treated as the
3419       sixth form.
3420
3421       :filetype, :filextype and :fileviewer commands  accept  comma-separated
3422       list of patterns instead of a single pattern, thus effectively handling
3423       OR operation on them:
3424         <text/plain>{*.vifm},<application/pdf>{*.pdf}
3425       Forms that accept comma-separated lists of patterns also  process  them
3426       as lists of alternatives.
3427
3428       Patterns with regular expressions
3429
3430       Regular  expression  patterns  are  case  insensitive  by  default, see
3431       description of commands, which might override default behaviour.
3432
3433       Flags of regular expressions mean the following:
3434         - "i" makes filter case insensitive;
3435         - "I" makes filter case sensitive.  They  can  be  repeated  multiple
3436       times,  but  the later one takes precedence (e.g.  "iiiI" is equivalent
3437       to "I" and "IiIi" is the same as "i").
3438
3439       There are no implicit `^` or `$`, so make sure to specify them  explic‐
3440       itly if the pattern should match the whole name or path.
3441
3442       Patterns with globs
3443
3444       "Globs"  section below provides short overview of globs and some impor‐
3445       tant points that one needs to know about them.
3446
3447       Patterns with mime-types
3448
3449       Mime type matching is essentially globs matching applied to  mime  type
3450       of  a  file instead of its name/path.  Note: mime types aren't detected
3451       on Windows.
3452
3453       Examples
3454
3455       Associate `evince` to  PDF-files  only  inside  `/home/user/downloads/`
3456       directory (excluding its subdirectories):
3457
3458         :filextype //^/home/user/downloads/[^/]*.pdf$// evince %f
3459
3460

Globs

3462       Globs are always case insensitive as it makes sense in general case.
3463
3464       `*`,  `?`,  `[`  and `]` are treated as special symbols in the pattern.
3465       E.g.
3466
3467         :filetype * less %c
3468
3469       matches all files.  One can use character classes for escaping, so
3470
3471         :filetype [*] less %c
3472
3473       matches only one file name, the one which contains only  asterisk  sym‐
3474       bol.
3475
3476       `*`  means  any number of any characters (possibly an empty substring),
3477       with one exception: asterisk at the pattern beginning doesn't match dot
3478       in the first position.  E.g.
3479
3480         :fileviewer *.zip,*.jar zip -sf %c
3481
3482       associates  using  of  `zip` program to preview all files with `zip` or
3483       `jar` extensions as listing of their content, but `.file.zip` won't  be
3484       matched.
3485
3486       `?` means any character at this position.  E.g.
3487
3488         :fileviewer ?.out file %c
3489
3490       calls `file` tool for all files which have exactly one character before
3491       their extension (e.g. a.out, b.out).
3492
3493       Square brackets designate character class, which means that whole char‐
3494       acter  class matches against any of characters listed in it.  For exam‐
3495       ple
3496
3497         :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c
3498
3499       makes vifm call `highlight` program to colorize source and header files
3500       in C language for a 256-color terminal.  Equal command would be
3501
3502         :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c
3503
3504
3505       Inside square brackets `^` or `!` can be used for symbol class negotia‐
3506       tion and the `-` symbol to set a range.   `^`  and  `!`  should  appear
3507       right after the opening square bracket.  For example
3508
3509         :filetype *.[!d]/ inspect_dir
3510
3511       associates `inspect_dir` as additional handler for all directories that
3512       have one character extension unless it's "d" letter.  And
3513
3514         :filetype [0-9].jpg sxiv
3515
3516       associates `sxiv` picture viewer only for JPEG-files that contain  sin‐
3517       gle digit in their name.
3518
3519       If  you need to include literal comma, which is normally separates mul‐
3520       tiple globs, double it.
3521

:set options

3523       Local options
3524              These are kind of options that are local to a specific view.  So
3525              you can set ascending sorting order for left pane and descending
3526              order for right pane.
3527
3528              In addition to being local to views, each such option  also  has
3529              two values:
3530
3531                - local  to  current  directory (value associated with current
3532                  location);
3533
3534                - global to  current  directory  (value  associated  with  the
3535                  pane).
3536
3537              The  idea  is  that  current  directory  can be made a temporary
3538              exception to regular configuration of the view, until  directory
3539              change.   Use :setlocal for that.  :setglobal changes view value
3540              not affecting settings until  directory  change.   :set  applies
3541              changes immediately to all values.
3542
3543
3544       'aproposprg'
3545              type: string
3546              default: "apropos %a"
3547              Specifies  format  for  an external command to be invoked by the
3548              :apropos command.  The format supports expanding of macros, spe‐
3549              cific  for a particular *prg option, and %% sequence for insert‐
3550              ing percent sign literally.  This option should include  the  %a
3551              macro  to  specify placement of arguments passed to the :apropos
3552              command.  If the macro is not used, it will be implicitly  added
3553              after a space to the value of this option.
3554
3555       'autochpos'
3556              type: boolean
3557              default: true
3558              When disabled vifm will set cursor to the first line in the view
3559              after :cd and :pushd commands instead of saved cursor  position.
3560              Disabling  this will also make vifm clear information about cur‐
3561              sor position in the view history on :cd and :pushd commands (and
3562              on  startup if 'autochpos' is disabled in the vifmrc).  l key in
3563              the ":history ." and ":trashes" menus are treated like :cd  com‐
3564              mand.   This  option  also affects marks so that navigating to a
3565              mark doesn't restore cursor position.
3566
3567              When this option is enabled, more fine grained control over cur‐
3568              sor position is available via 'histcursor' option.
3569
3570       'columns' 'co'
3571              type: integer
3572              default: terminal width on startup
3573              Terminal width in characters.
3574
3575       'caseoptions'
3576              type: charset
3577              default: ""
3578              This  option  gives  additional control over case sensitivity by
3579              allowing overriding default behaviour to either always  be  case
3580              sensitive  or  always be case insensitive.  Possible values form
3581              pairs of lower and upper case letters  that  configure  specific
3582              aspect of behaviour:
3583                p - always ignore case of paths during completion.
3584                P - always match case of paths during completion.
3585                g - always ignore case of characters for f/F/;/,.
3586                G - always match case of characters for f/F/;/,.
3587
3588              At  most one item of each pair takes affect, if both or more are
3589              present, only the last one matters.  When none  of  pair's  ele‐
3590              ments  are present, the behaviour is default (depends on operat‐
3591              ing system for path completion and on values of 'ignorecase' and
3592              'smartcase' options for file navigation).
3593
3594       'cdpath' 'cd'
3595              type: string list
3596              default: value of $CDPATH with commas instead of colons
3597              Specifies locations to check on changing directory with relative
3598              path that doesn't start with "./"  or  "../".   When  non-empty,
3599              current  directory  is  examined after directories listed in the
3600              option.
3601
3602              This option doesn't affect completion of :cd command.
3603
3604              Example:
3605
3606                set cdpath=~
3607
3608              This way ":cd bin" will switch  to  "~/bin"  even  if  directory
3609              named  "bin" exists in current directory, while ":cd ./bin" com‐
3610              mand will ignore value of 'cdpath'.
3611
3612       'chaselinks'
3613              type: boolean
3614              default: false
3615              When enabled path of view is always resolved to real path  (with
3616              all symbolic links expanded).
3617
3618       'classify'
3619              type: string list
3620              default: ":dir:/"
3621              Specifies file name prefixes and suffixes depending on file type
3622              or name.  The format is either of:
3623                - [{prefix}]:{filetype}:[{suffix}]
3624                - [{prefix}]::{pattern}::[{suffix}]
3625              Possible {pattern} forms are  described  in  "Patterns"  section
3626              above.
3627
3628              Priority rules:
3629                - file name patterns have priority over type patterns
3630                -  file  name  patterns  are matched in left-to-right order of
3631              their appearance in this option
3632
3633              Either {prefix} or {suffix} or both can be omitted (which is the
3634              default  for all unspecified file types), this means empty {pre‐
3635              fix} and/or {suffix}.  {prefix} and {suffix} should  consist  of
3636              at  most  eight  characters.   Elements are separated by commas.
3637              Neither prefixes nor suffixes are part of file  names,  so  they
3638              don't  affect  commands  which operate on file names in any way.
3639              Comma (',') character can be inserted by doubling it.   List  of
3640              file  type  names  can be found in the description of filetype()
3641              function.
3642
3643       'confirm' 'cf'
3644              type: set
3645              default: delete,permdelete
3646              Defines which operations require confirmation:
3647               - delete     - moving files to trash (on d or :delete);
3648               - permdelete - permanent deletion of files (on  D  or  :delete!
3649              command or on undo/redo operation).
3650
3651       'cpoptions' 'cpo'
3652              type: charset
3653              default: "fst"
3654              Contains  a  sequence  of  single-character  flags.   Each  flag
3655              enables behaviour of older versions of vifm.  Flags:
3656               - f - when included, running :filter  command  results  in  not
3657              inverted  (matching  files  are  filtered  out)  and :filter! in
3658              inverted (matching files are left) filter, when omitted, meaning
3659              of the exclamation mark changes to the opposite;
3660               -  s - when included, yy, dd and DD normal mode commands act on
3661              selection, otherwise they operate on current file only;
3662               - t - when included, <tab> (thus <c-i>) behave as  <space>  and
3663              switches  active  pane,  otherwise <tab> and <c-i> go forward in
3664              the view history.  It's possible to make both <tab> and <c-i> to
3665              work  as  expected  by  setting up the terminal to emit a custom
3666              sequence when <c-i> is pressed; see :histnext for details.
3667
3668       'cvoptions'
3669              type: set
3670              default:
3671              Specifies whether entering/leaving custom views triggers  events
3672              that normally happen on entering/leaving directories:
3673               - autocmds    - trigger autocommands on entering/leaving custom
3674              views;
3675               - localopts   - reset local options on entering/leaving  custom
3676              views;
3677               -  localfilter  - reset local filter on entering/leaving custom
3678              views.
3679
3680       'deleteprg'
3681              type: string
3682              default: ""
3683              Specifies program to run on files that are permanently  removed.
3684              When  empty,  files are removed as usual, otherwise this command
3685              is invoked on each file by appending its name.  If  the  command
3686              doesn't remove files, they will remain on the file system.
3687
3688       'dirsize'
3689              type: enumeration
3690              default: size
3691              Controls  how  size  of  directories is displayed in file views.
3692              The following values are possible:
3693               - size   - size of directory (i.e., size used to store list  of
3694              files)
3695               -  nitems - number of entries in the directory (excluding . and
3696              ..)
3697
3698              Size obtained via ga/gA overwrites this setting so seeing  count
3699              of files and occasionally size of directories is possible.
3700
3701       'dotdirs'
3702              type: set
3703              default: nonrootparent,treeleafsparent
3704              Controls  displaying  of  dot directories.  The following values
3705              are possible:
3706               - rootparent      - show "../" in root directory of file system
3707               - nonrootparent   - show "../" in non-root directories of  file
3708              system
3709               -  treeleafsparent  -  show  "../" in empty directories of tree
3710              view
3711
3712              Note that empty directories always contain "../"  entry  regard‐
3713              less of value of this option.  "../" disappears at the moment at
3714              least one file is created.
3715
3716       'dotfiles'
3717              type: boolean
3718              default: false
3719              Whether dot files are shown in the view.  Can be controlled with
3720              z* bindings.
3721
3722       'fastrun'
3723              type: boolean
3724              default: false
3725              With  this  option  turned on you can run partially entered com‐
3726              mands with unambiguous beginning using :! (e.g. :!Te instead  of
3727              :!Terminal or :!Te<tab>).
3728
3729       'fillchars' 'fcs'
3730              type: string list
3731              default: ""
3732              Sets characters used to fill borders.
3733
3734                item         default    used for
3735                vborder:c     '  '        left, middle and right vertical bor‐
3736              ders
3737
3738              If value is omitted, its default value is used.  Example:
3739
3740                set fillchars=vborder:.
3741
3742       'findprg'
3743              type: string
3744              default: "find %s %a -print , -type d \( ! -readable -o !  -exe‐
3745              cutable \) -prune"
3746              Specifies  format  for  an external command to be invoked by the
3747              :find command.  The format supports expansion of macros specific
3748              for this particular option and %% sequence for inserting percent
3749              sign literally.  The macros are:
3750
3751                macro   value/meaning
3752                 %s     literal arguments of :find or
3753                        list of paths to search in
3754
3755                 %A     empty or
3756                        literal arguments of :find
3757                 %a     empty or
3758                        literal arguments of :find or
3759                        predicate followed by escaped arguments of :find
3760                 %p     empty or
3761                        literal arguments of :find or
3762                        escaped arguments (parameters) of :find
3763
3764                 %u     redirect output to custom view instead  of  showing  a
3765              menu
3766                 %U      redirect  output  to  unsorted custom view instead of
3767              showing a menu
3768
3769              Predicate in %a is "-name" on *nix and "-iname" on Windows.
3770
3771              If both %u and %U are specified, %U is chosen.
3772
3773              Some macros can be added implicitly:
3774               - if %s isn't present, it's appended
3775               - if neither of %a, %A and %p is present, %a is appended
3776               - if neither of %s, %a, %A and %p is present,  %s  and  %a  are
3777              appended in this order
3778
3779              The  macros slightly change their meaning depending on format of
3780              :find's arguments:
3781               - if the first argument points to an existing directory, %s  is
3782              assigned all arguments while %a, %A and %p are left empty
3783               - otherwise:
3784                  -  %s  is  assigned a dot (".") meaning current directory or
3785              list of selected file names, if any
3786                  - %a, %A and %p are assigned literal  arguments  when  first
3787              argument  starts with a dash ("-"), otherwise %a gets an escaped
3788              version of the  arguments  with  a  predicate  and  %p  contains
3789              escaped version of the arguments
3790
3791              Starting  with  Windows  Server 2003 a `where` command is avail‐
3792              able.  One can configure vifm to use it in the following way:
3793
3794                  set findprg="where /R %s %A"
3795
3796              As the syntax of this command is rather limited, one  can't  use
3797              :find  command  with selection of more than one item because the
3798              command ignores all directory paths except for the last one.
3799
3800              When using find port on Windows,  another  option  is  to  setup
3801              'findprg' like this:
3802
3803                  set findprg="find %s %a"
3804
3805
3806       'followlinks'
3807              type: boolean
3808              default: true
3809              Follow  links  on  l  or Enter.  That is navigate to destination
3810              file instead of treating the link as if  it  were  target  file.
3811              Doesn't  affects  links to directories, which are always entered
3812              (use gf key for directories).
3813
3814       'fusehome'
3815              type: string
3816              default: "($XDG_DATA_HOME/.local/share | $VIFM)/fuse/"
3817              Directory to be used as a root dir for FUSE  mounts.   Value  of
3818              the   option   can   contain   environment  variables  (in  form
3819              "$envname"), which will be expanded (prepend it with a slash  to
3820              prevent  expansion).   The  value  should  expand to an absolute
3821              path.
3822
3823              If you change this option,  vifm  won't  remount  anything.   It
3824              affects future mounts only.  See "Automatic FUSE mounts" section
3825              below for more information.
3826
3827       'gdefault' 'gd'
3828              type: boolean
3829              default: false
3830              When on, 'g' flag is on for :substitute by default.
3831
3832       'grepprg'
3833              type: string
3834              default: "grep -n -H -I -r %i %a %s"
3835              Specifies format for an external command to be  invoked  by  the
3836              :grep  command.   The  format supports expanding of macros, spe‐
3837              cific for a particular *prg option, and %% sequence for  insert‐
3838              ing  percent  sign literally.  This option should include the %i
3839              macro to specify placement of  "-v"  string  when  inversion  of
3840              results  is  requested,  %a  or %A macro to specify placement of
3841              arguments passed to the :grep command and the %s macro to  spec‐
3842              ify  placement  of  list  of files to search in.  If some of the
3843              macros are not used, they will be implicitly added after a space
3844              to the value of the 'grepprg' option in the following order: %i,
3845              %a, %s.  Note that when neither %a nor %A are specified, it's %a
3846              which is added implicitly.
3847
3848              Optional  %u  or %U macro could be used (if both specified %U is
3849              chosen) to force redirection to custom or unsorted  custom  view
3850              respectively.
3851
3852              See  'findprg'  option  for description of difference between %a
3853              and %A.
3854
3855              Example of setup to use ack (http://beyondgrep.com/) instead  of
3856              grep:
3857
3858                set grepprg='ack -H -r %i %a %s'
3859
3860              or   The   Silver  Searcher  (https://github.com/ggreer/the_sil
3861              ver_searcher):
3862
3863                set grepprg='ag --line-numbers %i %a %s'
3864
3865
3866
3867       'histcursor'
3868              type: set
3869              default: startup,dirmark,direnter
3870              Defines situations when cursor  should  be  moved  according  to
3871              directory history:
3872               - startup  - on loading file lists during startup
3873               -  dirmark   -  after navigating to a mark that doesn't specify
3874              file
3875               - direnter - on opening directory from a file list
3876
3877              This option has no effect when 'autochpos' is disabled.
3878
3879              Note that the list is not exhaustive and there are other  situa‐
3880              tions when cursor is positioned automatically.
3881
3882       'history' 'hi'
3883              type: integer
3884              default: 15
3885              Maximum number of stored items in all histories.
3886
3887       'hlsearch' 'hls'
3888              type: boolean
3889              default: true
3890              Automatically select files that are search matches.
3891
3892       'iec'  type: boolean
3893              default: false
3894              Use  KiB,  MiB,  ... suffixes instead of K, M, ... when printing
3895              size in human-friendly format.
3896
3897       'ignorecase' 'ic'
3898              type: boolean
3899              default: false
3900              Ignore case in search patterns (:substitute, / and ?  commands),
3901              local  filter  (but  not  the  rest of filters) and other things
3902              detailed in the description of 'caseoptions'.
3903
3904       'incsearch' 'is'
3905              type: boolean
3906              default: false
3907              When this option is set, search and view update for local filter
3908              is  be performed starting from initial cursor position each time
3909              search pattern is changed.
3910
3911       'iooptions'
3912              type: set
3913              default:
3914              Controls details of file operations.  The following  values  are
3915              available:
3916               -  fastfilecloning - perform fast file cloning (copy-on-write),
3917              when available
3918                                   (available on Linux and btrfs file system).
3919
3920       'laststatus' 'ls'
3921              type: boolean
3922              default: true
3923              Controls if status bar is visible.
3924
3925       'lines'
3926              type: integer
3927              default: terminal height on startup
3928              Terminal height in lines.
3929
3930       'locateprg'
3931              type: string
3932              default: "locate %a"
3933              Specifies format for an external command to be  invoked  by  the
3934              :locate  command.  The format supports expanding of macros, spe‐
3935              cific for a particular *prg option, and %% sequence for  insert‐
3936              ing  percent  sign literally.  This option should include the %a
3937              macro to specify placement of arguments passed  to  the  :locate
3938              command.   If the macro is not used, it will be implicitly added
3939              after a space to the value of this option.
3940
3941              Optional %u or %U macro could be used (if both specified  %U  is
3942              chosen)  to  force redirection to custom or unsorted custom view
3943              respectively.
3944
3945       'mediaprg'
3946              type: string
3947              default: path to bundled script that supports udevil, udisks and
3948              udisks2
3949                       (using   udisks2   requires  python  with  dbus  module
3950              installed)
3951                       OS X: path points to a python script that uses diskutil
3952              {only for *nix}
3953              Specifies command to be used to manage media devices.   Used  by
3954              :media command.
3955
3956              The command can be passed the following parameters:
3957               - list           -- list media
3958               - mount {device} -- mount a device
3959               - unmount {path} -- unmount given mount point
3960
3961              The  output  of  `list`  subcommand is parsed in search of lines
3962              that start with one of the following prefixes:
3963               - device=      - specifies device path (e.g., "/dev/sde")
3964               - label=       - specifies optional device label (e.g., "Memory
3965              card")
3966               -  info=         -  specifies arbitrary text to display next to
3967              device (by
3968                                default "[label]" is used, if  label  is  pro‐
3969              vided)
3970               -  mount-point=  -  specifies  a  mount point (can be absent or
3971              appear more than once)
3972
3973              All other lines are ignored.  Each `device=` starts a  new  sec‐
3974              tion describing a device which should include two other possible
3975              prefixes.
3976
3977              `list` subcommand is assumed to always succeed, while exit  code
3978              of  `mount`  and  `unmount`  is  taken into account to determine
3979              whether operation was performed successfully.
3980
3981       'lsoptions'
3982              type: string list
3983              default: ""
3984              scope: local
3985
3986              Configures ls-like view.
3987
3988                item          used for
3989                transposed    filling view grid  by  columns  rather  than  by
3990              lines
3991
3992
3993       'lsview'
3994              type: boolean
3995              default: false
3996              scope: local
3997              When  this  option  is  set, directory view will be displayed in
3998              multiple columns with file names similar to output  of  `ls  -x`
3999              command.   See  "ls-like view" section below for format descrip‐
4000              tion.  This option has no effect if 'millerview' is on.
4001
4002       'milleroptions'
4003              type: string list
4004              default: "lsize:1,csize:1,rsize:1,rpreview:dirs"
4005              scope: local
4006
4007              Configures miller view.
4008
4009                item          default  used for
4010                lsize:num     0        left column
4011                csize:num     1        center column (can't be disabled)
4012                rsize:num     0        right column
4013                rpreview:str  dirs     right column
4014
4015              *size specifies ratios of columns.  Each ratio is in  the  range
4016              from  0  to 100 and values are adjusted to fit the limits.  Zero
4017              disables a column, but central (main) column can't be disabled.
4018
4019              rpreview specifies what file-system objects should be  previewed
4020              in the right column and can take two values: dirs (only directo‐
4021              ries) or all.   Both  options  don't  include  parent  directory
4022              ("..").
4023
4024              Example  of  two-column mode which is useful in combination with
4025              :view command:
4026
4027                set milleroptions=lsize:1,csize:2
4028
4029
4030       'millerview'
4031              type: boolean
4032              default: false
4033              scope: local
4034              When this option is set, directory view  will  be  displayed  in
4035              multiple cascading columns.  Ignores 'lsview'.
4036
4037       'mintimeoutlen'
4038              type: integer
4039              default: 150
4040              The  fracture  of  'timeoutlen'  in  milliseconds that is waited
4041              between subsequent input polls, which affects various  asynchro‐
4042              nous  operations  (detecting  changes  made by external applica‐
4043              tions, monitoring background jobs, redrawing UI).  There are  no
4044              strict guarantees, however the higher this value is, the less is
4045              CPU load in idle mode.
4046
4047       'number' 'nu'
4048              type: boolean
4049              default: false
4050              scope: local
4051              Print line number in front  of  each  file  name  when  'lsview'
4052              option  is  turned  off.   Use 'numberwidth' to control width of
4053              line number.  Also see 'relativenumber'.
4054
4055       'numberwidth' 'nuw'
4056              type: integer
4057              default: 4
4058              scope: local
4059              Minimal number of characters for line number field.
4060
4061       'previewprg'
4062              type: string
4063              default: ""
4064              scope: local
4065
4066              External command to be used instead of preview programs  config‐
4067              ured via :fileviewer command.
4068
4069              Example:
4070
4071                " always show git log in preview of files inside some repository
4072                au DirEnter '~/git-repo/**/*' setl previewprg='git log --color -- %c 2>&1'
4073
4074       'quickview'
4075              type: boolean
4076              default: false
4077              Whether quick view (:view) is currently active or not.
4078
4079       'relativenumber' 'rnu'
4080              type: boolean
4081              default: false
4082              scope: local
4083              Print  relative  line  number  in  front  of each file name when
4084              'lsview' option is turned off.   Use  'numberwidth'  to  control
4085              width  of  line  number.   Various  combinations of 'number' and
4086              'relativenumber' lead to such results:
4087
4088                                      nonumber               number
4089
4090                  norelativenumber   | first                |   1 first
4091                                     | second               |   2 second
4092                                     | third                |   3 third
4093
4094                    relativenumber   |   1 first            |   1 first
4095                                     |   0 second           |2    second
4096                                     |   1 third            |   1 third
4097
4098
4099       'rulerformat' 'ruf'
4100              type: string
4101              default: "%l/%S "
4102              Determines the content of the ruler.  Its minimal  width  is  13
4103              characters  and  it's  right aligned.  Following macros are sup‐
4104              ported:
4105               %=  - separation point between left and right aligned halves of
4106              the line
4107               %l  - file number
4108               %L   -  total  number  of files in view (including filtered out
4109              ones)
4110               %x  - number of files excluded by filters
4111               %0- - old name for %x macro
4112               %S  - number of displayed files
4113               %=  - separation point between left and right align items
4114               %%  - literal percent sign
4115               %[  - designates beginning of an optional block
4116               %]  - designates end of an optional block
4117
4118              Percent sign can be followed by optional  minimum  field  width.
4119              Add '-' before minimum field width if you want field to be right
4120              aligned.
4121
4122              Optional blocks are ignored unless at least one macro inside  of
4123              them is expanded to a non-empty value.
4124
4125              Example:
4126
4127                set rulerformat='%2l-%S%[ +%x%]'
4128
4129       'runexec'
4130              type: boolean
4131              default: false
4132              Run  executable  file on Enter, l or Right Arrow key.  Behaviour
4133              of the last two depends on the value of the 'lsview' option.
4134
4135       'scrollbind' 'scb'
4136              type: boolean
4137              default: false
4138              When this option is set, vifm will try  to  keep  difference  of
4139              scrolling positions of two windows constant.
4140
4141       'scrolloff' 'so'
4142              type: integer
4143              default: 0
4144              Minimal  number of screen lines to keep above and below the cur‐
4145              sor.  If you want cursor line to always be in the middle of  the
4146              view (except at the beginning or end of the file list), set this
4147              option to some large value (e.g. 999).
4148
4149       'sessionoptions' 'ssop'
4150              sessionoptions ssop
4151              type: set
4152              default: tui,state,tabs,savedirs,dhistory
4153              An equivalent of 'vifminfo' for sessions, uses the same  values.
4154              When both options include the same value, data from session file
4155              has higher priority (data from vifminfo isn't  necessarily  com‐
4156              pletely  discarded, instead it's merged with the state of a ses‐
4157              sion the same way state  of  multiple  instances  is  merged  on
4158              exit).
4159
4160       'shell' 'sh'
4161              type: string
4162              default: $SHELL or "/bin/sh" or "cmd" (on MS-Windows)
4163              Full path to the shell to use to run external commands.  On *nix
4164              a shell argument can be supplied.
4165
4166       'shellcmdflag' 'shcf'
4167              type: string
4168              default: "-c" or "/C" (for cmd.exe on MS-Windows)
4169              Command-line option used to pass a  command  to  'shell'.   It's
4170              used in contexts where command comes from the user.
4171
4172              Note  that  using  this  option to force interactive mode of the
4173              shell is most likely a BAD IDEA.  In  general  interactive  host
4174              and  interactive  child shell can't share the same terminal ses‐
4175              sion.  You can't even run such a shell in background.   Consider
4176              writing  a wrapper for your shell that preloads aliases and com‐
4177              mands without making the shell interactive and ending  up  using
4178              it in a way it was not meant to be used.
4179
4180              Note  that  this option is ignored when 'shell' is set to Power‐
4181              Shell due to the internal use of `-encodedCommand`.
4182
4183       'shortmess' 'shm'
4184              type: charset
4185              default: "p"
4186              Contains  a  sequence  of  single-character  flags.   Each  flag
4187              enables shortening of some message displayed by vifm in the TUI.
4188              Flags:
4189               - L - display only last directory in tab line instead  of  full
4190              path.
4191               -  M  - shorten titles in windows of terminal multiplexers cre‐
4192              ated by vifm down to file name instead of using full path.
4193               - T - truncate status-bar messages in the middle  if  they  are
4194              too  long  to fit on the command line.  "..." will appear in the
4195              middle.
4196               - p - use tilde shortening in view titles.
4197
4198
4199       'showtabline' 'stal'
4200              type: enumeration
4201              default: multiple
4202              Specifies when tab line should be displayed.  Possible values:
4203               - never    - never display tab line
4204               - multiple - show tab line only when there  are  at  least  two
4205              tabs
4206               - always   - display tab line always
4207
4208              Alternatively  0, 1 and 2 Vim-like values  are also accepted and
4209              correspond to "never", "multiple" and "always" respectively.
4210
4211
4212       'sizefmt'
4213              type: string list
4214              default: "units:iec"
4215              Configures the way size is formatted in human-friendly way.
4216
4217                  item          value         meaning
4218                  units:        iec           Use 1024 byte units (K  or  KiB,
4219              etc.).
4220                                              See 'iec' option.
4221                                si            Use 1000 byte units (KB, etc.).
4222                  precision:    i > 0         How many fraction digits to con‐
4223              sider.
4224                                {not set}     Precision of 1 for integer  part
4225              < 10,
4226                                              0 otherwise (provides old behav‐
4227              iour).
4228                  space         {present}     Insert space  before  unit  sym‐
4229              bols.
4230                                              This is the default.
4231                  nospace        {present}     Do not insert space before unit
4232              symbols.
4233
4234              Numbers are rounded from zero.  Trailing zeros are dropped.
4235
4236              Example:
4237
4238                set sizefmt=units:iec,precision:2,nospace
4239
4240
4241       'slowfs'
4242              type: string list
4243              default: ""
4244              only for *nix
4245              A list of mounter fs name beginnings (first column in  /etc/mtab
4246              or  /proc/mounts) or paths prefixes for fs/directories that work
4247              too slow for you.  This option can be used  to  stop  vifm  from
4248              making  some  requests  to particular kinds of file systems that
4249              can slow down file browsing.  Currently this means  don't  check
4250              if directory has changed, skip check if target of symbolic links
4251              exists, assume that link target located  on  slow  fs  to  be  a
4252              directory  (allows  entering directories and navigating to files
4253              via gf).  If you set the option to "*", it means all the systems
4254              are  considered  slow  (useful  for cygwin, where all the checks
4255              might render vifm very slow if there are network mounts).
4256
4257              Example for autofs root /mnt/autofs:
4258
4259                set slowfs+=/mnt/autofs
4260
4261       'smartcase' 'scs'
4262              type: boolean
4263              default: false
4264              Overrides the ignorecase option if a pattern contains  at  least
4265              one upper case character.  Only used when 'ignorecase' option is
4266              enabled.
4267
4268       'sort' type: string list
4269              default: +name on *nix and +iname on Windows
4270              scope: local
4271              Sets list of sorting keys (first item is primary key, second  is
4272              secondary key, etc.):
4273                 [+-]ext     - extension of files and directories
4274                 [+-]fileext - extension of files only
4275                 [+-]name    - name (including extension)
4276                 [+-]iname   - name (including extension, ignores case)
4277                 [+-]type                 -              file             type
4278              (dir/reg/exe/link/char/block/sock/fifo)
4279                 [+-]dir     - directory grouping (directory < file)
4280                 [+-]gid     - group id (*nix only)
4281                 [+-]gname   - group name (*nix only)
4282                 [+-]mode    - file type derived from its mode (*nix only)
4283                 [+-]perms   - permissions string (*nix only)
4284                 [+-]uid     - owner id (*nix only)
4285                 [+-]uname   - owner name (*nix only)
4286                 [+-]nlinks  - number of hard links (*nix only)
4287                 [+-]inode   - inode number (*nix only)
4288                 [+-]size    - size
4289                 [+-]nitems  - number of items in a directory (zero for files)
4290                 [+-]groups  - groups extracted via regexps from 'sortgroups'
4291                 [+-]target  - symbolic link  target  (empty  for  other  file
4292              types)
4293                 [+-]atime   - time accessed (e.g. read, executed)
4294                 [+-]ctime   - time changed (changes in metadata, e.g. mode)
4295                 [+-]mtime   - time modified (when file contents is changed)
4296
4297              Note:  look  for st_atime, st_ctime and st_mtime in "man 2 stat"
4298              for more information on time keys.
4299
4300              '+' means ascending sort for this key, and '-' means  descending
4301              sort.
4302
4303              "dir"  key  is  somewhat  similar  in this regard but it's added
4304              implicitly: when "dir" is not specified, sorting behaves  as  if
4305              it was the first key in the list.  That's why if one wants sort‐
4306              ing algorithm to mix directories  and  files,  "dir"  should  be
4307              appended to sorting option, for example like this:
4308
4309                set sort+=dir
4310
4311              or
4312
4313                set sort=-size,dir
4314
4315              Value  of  the  option is checked to include dir key and default
4316              sorting key (name on *nix, iname on Windows).  Here is what hap‐
4317              pens if one of them is missing:
4318
4319                - type key is added at the beginning;
4320
4321                - default key is added at the end;
4322
4323              all other keys are left untouched (at most they are moved).
4324
4325              This option also changes view columns according to primary sort‐
4326              ing key set, unless 'viewcolumns' option is not empty.
4327
4328       'sortnumbers'
4329              type: boolean
4330              default: false
4331              scope: local
4332              Natural sort of (version) numbers within text.
4333
4334       'sortgroups'
4335              type: string
4336              default: ""
4337              scope: local
4338              Sets comma-separated list of regular expressions for group  type
4339              of sorting.  Double the comma to insert it literally.
4340
4341              The  regular  expressions are used to extract substrings of file
4342              names to serve as keys for sorting.  It is essentially a way  to
4343              ignore uninteresting parts of file names during sorting by name.
4344
4345              Each  expression  should contain at least one group or its value
4346              will be considered to be always empty.   Also,  only  the  first
4347              match of regular expression is processed.
4348
4349              The  first  group divides list of files into sub-groups, each of
4350              which is then sorted by substrings extracted using second  regu‐
4351              lar expression and so on recursively.
4352
4353              Example:
4354                set sortgroups=-(todo|done).*
4355              this  would  group  files  with "-done" in their names and files
4356              with "-todo" separately.  On ascending sorting, group containing
4357              "-done" would appear before the other one.
4358
4359       'sortorder'
4360              type: enumeration
4361              default: ascending
4362              Sets sort order for primary key: ascending, descending.
4363
4364       'statusline' 'stl'
4365              type: string
4366              default: ""
4367              Determines  the content of the status line (the line right above
4368              command-line).  Empty string means use same format like in  pre‐
4369              vious versions.  Following macros are supported:
4370
4371              - %t - file name (considering value of the 'classify' option)
4372
4373              - %T - symbolic link target (empty for other filetypes)
4374
4375              - %f - file name relative to current directory (considers 'clas‐
4376                sify')
4377
4378              - %A - file attributes (permissions on  *nix  or  properties  on
4379                Windows)
4380
4381              - %u - user name or uid (if it cannot be resolved)
4382
4383              - %g - group name or gid (if it cannot be resolved)
4384
4385              - %s - file size in human readable format
4386
4387              - %E  - size of selected files in human readable format, same as
4388                %s when no files are selected, except that it will never  show
4389                size of ../ in visual mode, since it cannot be selected
4390
4391              - %d - file modification date (uses 'timefmt' option)
4392
4393              - %D - path of the other pane for single-pane layout
4394
4395              - %a - amount of free space available at current partition
4396
4397              - %z  -  short  tips/tricks/hints that chosen randomly after one
4398                minute period
4399
4400              - %{<expr>} - evaluate arbitrary vifm expression '<expr>',  e.g.
4401                '&sort'
4402
4403              - %*  -  resets or applies one of User1..User9 highlight groups;
4404                reset happens when width field is 0 or not specified,  one  of
4405                groups  gets picked when width field is in the range from 1 to
4406                9
4407
4408              - all 'rulerformat' macros
4409
4410              Percent sign can be followed by optional  minimum  field  width.
4411              Add '-' before minimum field width if you want field to be right
4412              aligned.
4413
4414              On Windows file properties include the  following  flags  (upper
4415              case means flag is on):
4416               A - archive
4417               H - hidden
4418               I - content isn't indexed
4419               R - readonly
4420               S - system
4421               C - compressed
4422               D - directory
4423               E - encrypted
4424               P - reparse point (e.g. symbolic link)
4425               Z - sparse file
4426
4427              Example without colors:
4428
4429                set statusline="  %t%= %A %10u:%-7g %15s %20d %{&sort} "
4430
4431              Example with colors:
4432
4433               highlight User1 ctermbg=yellow
4434               highlight User2 ctermbg=blue ctermfg=white cterm=bold
4435               set statusline="%1* %-26t %2* %= %1* %A %2* %7u:%-7g %1* %-5s %2* %d "
4436
4437
4438       'suggestoptions'
4439              type: string list
4440              default:
4441              Controls  when, for what and how suggestions are displayed.  The
4442              following values are available:
4443               - normal          - in normal mode;
4444               - visual          - in visual mode;
4445               - view            - in view mode;
4446               - otherpane       - use other pane to display suggestions, when
4447              available;
4448               - delay[:num]     - display suggestions after a small delay (to
4449              do not annoy if you just want to type a fast shortcut consisting
4450              of  multiple  keys),  num  specifies  the  delay  in  ms (500 by
4451              default), 'timeoutlen' at most;
4452               - keys            - include shortcuts (commands and selectors);
4453               - foldsubkeys     - fold multiple keys with common prefix;
4454               - marks           - include marks;
4455               - registers[:num] - include registers, at most num files (5  by
4456              default).
4457
4458       'syncregs'
4459              type: string
4460              default:
4461              Specifies  identifier of group of instances that share registers
4462              between each other.  When several instances of  vifm  have  this
4463              option  set  to  identical value, they automatically synchronize
4464              contents of their registers on operations which use them.
4465
4466       'syscalls'
4467              type: boolean
4468              default: false
4469              When disabled, vifm will rely on external applications  to  per‐
4470              form  file-system  operations,  otherwise  system calls are used
4471              instead (much  faster  and  supports  progress  tracking).   The
4472              option  should  eventually be removed.  Mostly *nix-like systems
4473              are affected.
4474
4475       'tablabel'
4476              type: string
4477              default: ""
4478              When non-empty, determines format of the main part of  a  single
4479              tab's label.
4480
4481              When  empty,  tab label is set to either tab name for named tabs
4482              or to view title (usually current path) for unnamed tabs.
4483
4484              The following macros can appear in the  format  (see  below  for
4485              what a flag is):
4486
4487              - %C      - flag of a current tab
4488
4489              - %N      - number of the tab
4490
4491              - %T      - flag of a tree mode
4492
4493              - %c      - description of a custom view
4494
4495              - %n      - name of the tab
4496
4497              - %p      - path of the view (handles filename modifiers)
4498
4499              - %t      - title of the view (affected by 'shortmess' flags)
4500
4501              - %%      - literal percent sign
4502
4503              - %[      - designates beginning of an optional block
4504
4505              - %]      - designates end of an optional block
4506
4507              - %*, %0* - resets highlighting
4508
4509              - %1-%9   - applies one of User1..User9 highlight groups
4510
4511              In  global  tabs  the  view in bullets above refers to currently
4512              active view of that tab.
4513
4514              Flag macros are a special kind of macros that always  expand  to
4515              an empty value and are ment to be used inside optional blocks to
4516              control their visibility.
4517
4518              Optional blocks are ignored unless at least one macro inside  of
4519              them is expanded to a non-empty value or is a set flag macro.
4520
4521                " %[(%n)%]        -- optional name of the tab
4522                " %[              -- optional description of the view
4523                "   %[%T{tree}%]  -- mark of tree mode
4524                "   %[{%c}%]      -- description of custom view
4525                "   @             -- just an extra separator before the path
4526                ' %]
4527                " %p:t            -- tail part of view's location
4528                set tablabel=%[(%n)%]%[%[%T{tree}%]%[{%c}%]@%]%p:t
4529
4530       'tabprefix'
4531              type: string
4532              default: "[%N:"
4533              Determines  prefix  of a tab's label.  Formatting is done as for
4534              'tablabel' option.
4535
4536       'tabscope'
4537              type: enumeration
4538              default: global
4539              Picks style of tabs, which defines what a single  tab  contains.
4540              Possible values:
4541               -  global - tab describes complete UI of two views and how they
4542              are arranged
4543               - pane   - tab is located "inside" a pane and  manages  it  and
4544              quick view
4545
4546       'tabstop' 'ts'
4547              type: integer
4548              default: value from curses library
4549              Number of spaces that a Tab in the file counts for.
4550
4551       'tabsuffix'
4552              type: string
4553              default: "]"
4554              Determines  suffix  of a tab's label.  Formatting is done as for
4555              'tablabel' option.
4556
4557       'timefmt'
4558              type: string
4559              default: "%m/%d %H:%M"
4560              Format of time in file list.  See "man 1 date" or "man  3  strf‐
4561              time" for details.
4562
4563       'timeoutlen' 'tm'
4564              type: integer
4565              default: 1000
4566              The time in milliseconds that is waited for a mapped key in case
4567              of already typed key sequence is ambiguous.
4568
4569       'title'
4570              type: boolean
4571              default: true when title can be restored, false otherwise
4572              When enabled, title of the terminal  or  terminal  multiplexer's
4573              window  is  updated  according to current location.  Because not
4574              all terminals support setting title, this works only if  `$TERM`
4575              value matches one of the following conditions:
4576               - equals "xterm" or starts with "xterm-"
4577               - equals "rxvt" or starts with "rxvt-"
4578               - equals "screen" or starts with "screen-"
4579               - equals "aterm"
4580               - equals "Eterm"
4581
4582       'trash'
4583              type: boolean
4584              default: true
4585              Use trash directory.  See "Trash directory" section below.
4586
4587       'trashdir'
4588              type: string
4589              default: on *nix:
4590                 "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash"
4591                 or if $VIFM/Trash doesn't exist
4592                 "%r/.vifm-Trash-%u,$XDG_DATA_HOME/vifm/Trash,%r/.vifm-Trash"
4593                       on Windows:
4594                 "%r/.vifm-Trash,$XDG_DATA_HOME/vifm/Trash"
4595              List of trash directory path specifications, separated with com‐
4596              mas.  Each list item either defines an absolute  path  to  trash
4597              directory  or  a  path  relative to a mount point root when list
4598              element starts with "%r/".  Value  of  the  option  can  contain
4599              environment  variables  (of  form  "$envname"),  which  will  be
4600              expanded (prepend $ with a slash to prevent  expansion).   Envi‐
4601              ronment variables are expanded when the option is set.
4602
4603              On  *nix,  if  element ends with "%u", the mark is replaced with
4604              real user ID and permissions are set  so  that  only  that  only
4605              owner is able to use it.
4606              Note that even this setup is not completely secure when combined
4607              with "%r/" and it's overall safer to keep files in  home  direc‐
4608              tory, but that implies cost of copying files between partitions.
4609
4610              When  new file gets cut (deleted) vifm traverses each element of
4611              the option in the order of their appearance and uses first trash
4612              directory  that  it  was  able  to  create  or  that  is already
4613              writable.
4614
4615              Default value tries to use trash directory per mount  point  and
4616              falls back to ~/.vifm/Trash on failure.
4617
4618              Will  attempt to create the directory if it does not exist.  See
4619              "Trash directory" section below.
4620
4621       'tuioptions' 'to'
4622              type: charset
4623              default: "psv"
4624              Each flag configures some aspect of TUI appearance.   The  flags
4625              are:
4626              p - when included:
4627                *  file  list  inside  a pane gets additional single character
4628              padding on left and right sides;
4629                * quick view and view mode get single character padding.
4630              s - when included, left and right borders (side  borders,  hence
4631              "s" character) are visible.
4632              u  - use Unicode characters in the TUI (Unicode ellipsis instead
4633              of "...").
4634              v - vary width of middle border to equalize view sizes.
4635
4636       'undolevels' 'ul'
4637              type: integer
4638              default: 100
4639              Maximum number of changes that can be undone.   Note  that  here
4640              single  file  operation  is  used as a unit, not operation, i.e.
4641              deletion of 101 files will exceed default limit.
4642
4643       'vicmd'
4644              type: string
4645              default: "vim"
4646              Command used to edit files in various contexts.  Ampersand  sign
4647              at  the  end  (regardless whether it's preceded by space or not)
4648              means backgrounding of command.
4649
4650              Background flag is ignored in certain context where  vifm  waits
4651              for  the  editor  to  finish.  Such contexts include any command
4652              that spawns editor to change list of file names  or  a  command,
4653              with  :rename  being one example.  `-f` is also appended to pre‐
4654              vent forking in such cases, so the command needs to  handle  the
4655              flag.
4656
4657              Additionally  `+{num}` and `+'call cursor()'` arguments are used
4658              to position cursor when location is known.
4659
4660       'viewcolumns'
4661              type: string
4662              default: ""
4663              scope: local
4664              Format string containing list of columns in the view.  When this
4665              option  is  empty, view columns to show are chosen automatically
4666              using sorting keys (see 'sort') as a base.  Value of this option
4667              is  ignored if 'lsview' is set.  See "Column view" section below
4668              for format description.
4669
4670              An example of setting the options for both  panes  (note  :windo
4671              command):
4672
4673                windo set viewcolumns=-{name}..,6{size},11{perms}
4674
4675       'vixcmd'
4676              type: string
4677              default: value of 'vicmd'
4678              Same  as  'vicmd',  but  takes  precedence  over it when running
4679              inside a graphical environment.
4680
4681       'vifminfo'
4682              type: set
4683              default: bookmarks,bmarks
4684              Controls what will be saved in the $VIFM/vifminfo file.
4685
4686                 bmarks    - named bookmarks (see :bmark command)
4687                 bookmarks - marks, except special ones like '< and '>
4688                 tui       - state of the user interface (sorting,  number  of
4689              windows, quick
4690                             view state, active view)
4691                 dhistory  - directory history
4692                 state     - file name and dot filters and terminal multiplex‐
4693              ers integration
4694                             state
4695                 cs        - primary color scheme
4696                 savedirs  - save last visited directory
4697                 chistory  - command line history
4698                 shistory  - search history (/ and ? commands)
4699                 phistory  - prompt history
4700                 fhistory  - history of local filter (see description  of  the
4701              "=" normal mode
4702                             command)
4703                 dirstack  - directory stack overwrites previous stack, unless
4704              stack of
4705                             current instance is empty
4706                 registers - registers content
4707                 tabs      - global or pane tabs
4708                 options   - all options that can be set with the :set command
4709              (obsolete)
4710                 filetypes - associated programs and viewers (obsolete)
4711                 commands   - user defined commands (see :command description)
4712              (obsolete)
4713
4714       'vimhelp'
4715              type: boolean
4716              default: false
4717              Use vim help format.
4718
4719       'wildmenu' 'wmnu'
4720              type: boolean
4721              default: false
4722              Controls whether possible matches of completion  will  be  shown
4723              above the command line.
4724
4725       'wildstyle'
4726              type: enumeration
4727              default: bar
4728              Picks presentation style of wild menu.  Possible values:
4729               - bar   - one-line with left-to-right cursor
4730               - popup - multi-line with top-to-bottom cursor
4731
4732       'wordchars'
4733              type: string list
4734              default:  "1-8,14-31,33-255" (that is all non-whitespace charac‐
4735              ters)
4736              Specifies which characters in command-line mode should  be  con‐
4737              sidered  as  part of a word.  Value of the option is comma-sepa‐
4738              rated list of ranges.  If both endpoints of a range match,  sin‐
4739              gle  endpoint  is enough (e.g. "a" = "a-a").  Both endpoints are
4740              inclusive.  There are two accepted forms: character representing
4741              itself  or  number  encoding character according to ASCII table.
4742              In case of ambiguous characters (dash, comma, digit) use numeric
4743              form.   Accepted characters are in the range from 0 to 255.  Any
4744              Unicode character with code greater than 255 is considered to be
4745              part of a word.
4746
4747              The option affects Alt-D, Alt-B and Alt-F, but not Ctrl-W.  This
4748              is intentionally to allow two use cases:
4749
4750               - Moving by WORDS and deletion by words.
4751               - Moving by words and deletion by WORDS.
4752
4753              To get the latter use the following mapping:
4754
4755                cnoremap <c-w> <a-b><a-d>
4756
4757              Also used for abbreviations.
4758
4759       'wrap' type: boolean
4760              default: true
4761              Controls whether to wrap text in quick view.
4762
4763       'wrapscan' 'ws'
4764              type: boolean
4765              default: true
4766              Searches wrap around end of the list.
4767

Mappings

4769       Map arguments
4770
4771       LHS of mappings can be preceded by arguments which  take  the  form  of
4772       special sequences:
4773
4774       <silent>
4775              Postpone UI updates until RHS is completely processed.
4776
4777       <wait> In  case  of builtin mapping causing conflict for a user-defined
4778              mapping (e.g., `t` builtin  to  a  partially  typed  `ta`  user-
4779              defined  mapping), ignore the builtin mapping and wait for input
4780              indefinitely as opposed to default behaviour of  triggering  the
4781              builtin mapping after a delay defined by 'timeoutlen'.  Example:
4782
4783                nnoremap <wait> tw :set wrap!<cr>
4784                nnoremap <wait> tn :set number!<cr>
4785                nnoremap <wait> tr :set relativenumber!<cr>
4786
4787       Special sequences
4788
4789       Since  it's not easy to enter special characters there are several spe‐
4790       cial sequences that can be used in place of them.  They are:
4791
4792       <cr>   Enter key.
4793
4794       <esc>  Escape key.
4795
4796       <space>
4797              Space key.
4798
4799       <lt>   Less-than character (<).
4800
4801       <nop>  provides a way to disable a mapping (by mapping it to <nop>).
4802
4803       <bs>   Backspace key (see key conflict description below).
4804
4805       <tab> <s-tab>
4806              Tabulation and Shift+Tabulation keys.
4807
4808       <home> <end>
4809              Home/End.
4810
4811       <left> <right> <up> <down>
4812              Arrow keys.
4813
4814       <pageup> <pagedown>
4815              PageUp/PageDown.
4816
4817       <del> <delete>
4818              Delete key.   <del>  and  <delete>  mean  different  codes,  but
4819              <delete> is more common.
4820
4821       <insert>
4822              Insert key.
4823
4824       <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_>
4825              Control + some key (see key conflict description below).
4826
4827       <c-@>  only for *nix
4828              Control + Space.
4829
4830       <a-a>,<a-b>,...,<a-z>
4831              <m-a>,<m-b>,...,<m-z> Alt + some key.
4832
4833       <a-c-a>,<a-c-b>,...,<a-c-z>
4834              <m-c-a>,<m-c-b>,...,<m-c-z> only for *nix
4835              Alt + Ctrl + some key.
4836
4837       <f0> - <f63>
4838              Functional keys.
4839
4840       <c-f1> - <c-f12>
4841              only for MS-Windows
4842              functional keys with Control key pressed.
4843
4844       <a-f1> - <a-f12>
4845              only for MS-Windows
4846              functional keys with Alt key pressed.
4847
4848       <s-f1> - <s-f12>
4849              only for MS-Windows
4850              functional keys with Shift key pressed.
4851
4852       Note  that  due  to the way terminals process their input, several key‐
4853       board keys might be mapped to single key code, for example:
4854
4855         - <cr> and <c-m>;
4856
4857         - <tab> and <c-i>;
4858
4859         - <c-h> and <bs>;
4860
4861         - etc.
4862
4863       Most of the time they are defined consistently  and  don't  cause  sur‐
4864       prises,  but  <c-h> and <bs> are treated differently in different envi‐
4865       ronments (although they match each other all the time), that's why they
4866       correspond to different keys in vifm.  As a consequence, if you map <c-
4867       h> or <bs> be sure to repeat the mapping with the other one so that  it
4868       works  in all environments.  Alternatively, provide your mapping in one
4869       form and add one of the following:
4870
4871         " if mappings with <c-h> in the LHS work
4872         map <c-h> <bs>
4873         " if mappings with <bs> in the LHS work
4874         map <bs> <c-h>
4875
4876       Whitespace
4877
4878       vifm removes whitespace characters at the beginning  and  end  of  com‐
4879       mands.   That's  why  you  may want to use <space> at the end of rhs in
4880       mappings.  For example:
4881
4882         cmap <f1> man<space>
4883
4884       will put "man " in line when you hit the <f1> key in the  command  line
4885       mode.
4886

Expression syntax

4888       Supported expressions is a subset of what VimL provides.
4889
4890       Expression syntax summary, from least to most significant:
4891
4892       expr1      expr2
4893                  expr2 || expr2 ..       logical OR
4894
4895       expr2      expr3
4896                  expr3 && expr3 ..       logical AND
4897
4898       expr3      expr4
4899                  expr4 == expr4          equal
4900                  expr4 != expr4          not equal
4901                  expr4 >  expr4          greater than
4902                  expr4 >= expr4          greater than or equal
4903                  expr4 <  expr4          smaller than
4904                  expr4 <= expr4          smaller than or equal
4905
4906       expr4      expr5
4907                  expr5 + expr5 ..        number addition
4908                  expr5 - expr5 ..        number subtraction
4909
4910       expr5      expr6
4911                  expr6 . expr6 ..        string concatenation
4912
4913       expr6      expr7
4914                  - expr6                 unary minus
4915                  + expr6                 unary plus
4916                  ! expr6                 logical NOT
4917
4918       expr7      number                  number constant
4919                  "string"                string constant, \ is special
4920                  'string'                string constant, ' is doubled
4921                  &option                 option value
4922                  $VAR                    environment variable
4923                  v:var                   builtin variable
4924                  function(expr1, ...)    function call
4925                  (expr1)                 nested expression
4926
4927       ".." indicates that the operations in this level can be concatenated.
4928
4929       expr1
4930       -----
4931       expr2 || expr2
4932
4933       Arguments are converted to numbers before evaluation.
4934
4935       Result is non-zero if at least one of arguments is non-zero.
4936
4937       It's  right  associative  and with short-circuiting, so sub-expressions
4938       are evaluated from left to right until result of  whole  expression  is
4939       determined (i.e., until first non-zero) or end of the expression.
4940
4941       expr2
4942       -----
4943       expr3 && expr3
4944
4945       Arguments are converted to numbers before evaluation.
4946
4947       Result is non-zero only if both arguments are non-zero.
4948
4949       It's  right  associative  and with short-circuiting, so sub-expressions
4950       are evaluated from left to right until result of  whole  expression  is
4951       determined (i.e., until first zero) or end of the expression.
4952
4953       expr3
4954       -----
4955       expr4 {cmp} expr4
4956
4957       Compare  two  expr4  expressions,  resulting  in a 0 if it evaluates to
4958       false or 1 if it evaluates to true.
4959
4960       equal                   ==
4961       not equal               !=
4962       greater than            >
4963       greater than or equal   >=
4964       smaller than            <
4965       smaller than or equal   <=
4966
4967       Examples:
4968
4969         'a' ==  'a'         == 1
4970         'a' >   'b'         == 1
4971         'a' ==  'b'         == 0
4972         '2' >   'b'         == 0
4973          2  >   'b'         == 1
4974          2  >   '1b'        == 1
4975          2  >   '9b'        == 0
4976         -1  == -'1'         == 1
4977          0  ==  '--1'       == 1
4978
4979       expr4
4980       -----
4981       expr5 + expr5 ..     number addition expr5 - expr5 ..      number  sub‐
4982       traction
4983
4984       Examples:
4985
4986         1 + 3 - 3          == 1
4987         1 + '2'            == 3
4988
4989       expr5
4990       -----
4991       expr6 . expr6 ..     string concatenation
4992
4993       Examples:
4994
4995         'a' . 'b'           == 'ab'
4996         'aaa' . '' . 'c'    == 'aaac'
4997
4998       expr6
4999       -----
5000
5001       - expr6              unary minus
5002       + expr6              unary plus
5003       ! expr6              logical NOT
5004
5005       For '-' the sign of the number is changed.
5006       For '+' the number is unchanged.
5007       For '!' non-zero becomes zero, zero becomes one.
5008
5009       A String will be converted to a Number first.
5010
5011       These operations can be repeated and mixed.  Examples:
5012
5013          --9                == 9
5014         ---9                == -9
5015          -+9                == 9
5016          !-9                == 0
5017          !''                == 1
5018         !'x'                == 0
5019          !!9                == 1
5020
5021       expr7
5022       -----
5023
5024       number               number constant
5025       -----
5026
5027       Decimal number.  Examples:
5028
5029         0                   == 0
5030         0000                == 0
5031         01                  == 1
5032         123                 == 123
5033         10000               == 10000
5034
5035       string
5036       ------
5037       "string"             string constant
5038
5039       Note that double quotes are used.
5040
5041       A string constant accepts these special characters:
5042         \b      backspace <bs>
5043         \e      escape <esc>
5044         \n      newline
5045         \r      return <cr>
5046         \t      tab <tab>
5047         \\      backslash
5048         \"      double quote
5049
5050       Examples:
5051
5052         "\"Hello,\tWorld!\""
5053         "Hi,\nthere!"
5054
5055       literal-string
5056       --------------
5057       'string'             string constant
5058
5059       Note that single quotes are used.
5060
5061       This  string  is  taken as it is.  No backslashes are removed or have a
5062       special meaning.  The only exception is that two quotes stand  for  one
5063       quote.
5064
5065       Examples:
5066
5067         'All\slashes\are\saved.'
5068         'This string contains doubled single quotes ''here'''
5069
5070       option
5071       ------
5072       &option                option value (local one is preferred, if exists)
5073       &g:option             global option value  &l:option              local
5074       option value
5075
5076       Examples:
5077
5078         echo 'Terminal size: '.&columns.'x'.&lines
5079         if &columns > 100
5080
5081       Any  valid  option name can be used here (note that "all" in ":set all"
5082       is a pseudo option).  See ":set options" section above.
5083
5084       environment variable
5085       --------------------
5086       $VAR                  environment variable
5087
5088       The String value of any environment variable.  When it is not  defined,
5089       the result is an empty string.
5090
5091       Examples:
5092
5093         'This is my $PATH env: ' . $PATH
5094         'vifmrc at ' . $MYVIFMRC . ' is used.'
5095
5096       builtin variable
5097       --------------------
5098       v:var                 builtin variable
5099
5100       Information exposed by vifm for use in scripting.
5101
5102       v:count
5103         count  passed to : command, 0 by default.  Can be used in mappings to
5104       passthe count to a different command.
5105       v:count1
5106         same as v:count, but 1 by default.
5107       v:jobcount
5108         number of active jobs (as can be seen in the :jobs menu).
5109       v:session
5110         name of the current session or empty string.
5111       v:servername
5112         See below.
5113
5114       function call
5115       -------------
5116       function(expr1, ...)  function call
5117
5118       See "Functions" section below.
5119
5120       Examples:
5121
5122         "'" . filetype('.') . "'"
5123         filetype('.') == 'reg'
5124
5125       expression nesting
5126       ------------------
5127       (expr1)               nested expression
5128
5129       Groups any other expression of arbitrary complexity enforcing order  in
5130       which operators are applied.
5131
5132

Functions

5134       USAGE                 RESULT      DESCRIPTION
5135
5136       chooseopt({opt})       String       Queries choose parameters passed on
5137       startup.
5138       executable({expr})    Integer     Checks whether {expr} command  avail‐
5139       able.
5140       expand({expr})        String      Expands special keywords in {expr}.
5141       extcached({cache}, {path}, {extcmd})
5142                             String      Caches output of {extcmd} per {cache}
5143       and
5144                                         {path} combination.
5145       filetype({fnum} [, {resolve}])
5146                             String      Returns file type from position.
5147       fnameescape({expr})   String      Escapes {expr} for use in a :command.
5148       getpanetype()         String      Returns type of current pane.
5149       has({property})       Integer     Checks whether  instance  has  {prop‐
5150       erty}.
5151       layoutis({type})       Integer      Checks  whether  layout  is of type
5152       {type}.
5153       paneisat({loc})       Integer     Checks whether  current  pane  is  at
5154       {loc}.
5155       system({command})      String       Executes  shell command and returns
5156       its output.
5157       tabpagenr([{arg}])    Integer     Returns number  of  current  or  last
5158       tab.
5159       term({command})        String       Like  system(), but for interactive
5160       commands.
5161
5162       chooseopt({opt})
5163
5164       Retrieves values of options related to file choosing.  {opt} can be one
5165       of:
5166           files      returns argument of --choose-files or empty string
5167           dir        returns argument of --choose-dir or empty string
5168           cmd        returns argument of --on-choose or empty string
5169           delimiter  returns argument of --delimiter or the default one (\n)
5170
5171       executable({expr})
5172
5173       If {expr} is absolute or relative path, checks whether path destination
5174       exists and refers to an executable, otherwise  checks  whether  command
5175       named  {expr}  is  present  in directories listed in $PATH.  Checks for
5176       various  executable  extensions  on  Windows.   Returns  boolean  value
5177       describing result of the check.
5178
5179       Example:
5180
5181         " use custom default viewer script if it's available and installed
5182         " in predefined system directory, otherwise try to find it elsewhere
5183         if executable('/usr/local/bin/defviewer')
5184             fileview * /usr/local/bin/defviewer %c
5185         else
5186             if executable('defviewer')
5187                 fileview * defviewer %c
5188             endif
5189         endif
5190
5191       expand({expr})
5192
5193       Expands  environment variables and macros in {expr} just like it's done
5194       for command-line commands.  Returns a  string.   See  "Command  macros"
5195       section above.
5196
5197       Examples:
5198
5199         " percent sign
5200         :echo expand('%%')
5201         " the last part of directory name of the other pane
5202         :echo expand('%D:t')
5203         " $PATH environment variable (same as `:echo $PATH`)
5204         :echo expand('$PATH')
5205
5206       extcached({cache}, {path}, {extcmd})
5207
5208       Caches  value of {extcmd} external command automatically updating it as
5209       necessary based on monitoring change date of a {path}.   The  cache  is
5210       invalidated  when  file or its meta-data is updated.  A single path can
5211       have multiple caches associated with it.
5212
5213       {path} value is normalized, but symbolic links in it aren't resolved.
5214
5215       Example:
5216
5217         " display number and size of blocks actually used by a file or directory
5218         set statusline+=" Uses: %{ extcached('uses',
5219                                             expand('%c'),
5220                                             expand('stat --format=%%bx%%B %c')) }"
5221
5222       filetype({fnum} [, {resolve}])
5223
5224       The result is a string, which represents file type and is  one  of  the
5225       list:
5226           exe     executables
5227           reg     regular files
5228           link    symbolic links
5229           broken  broken symbolic links (appears only when resolving)
5230           dir     directories
5231           char    character devices
5232           block   block devices
5233           fifo    pipes
5234           sock    *nix domain sockets
5235           ?       unknown file type (should not normally happen) or
5236                   non-file (pseudo-entries in compare view)
5237
5238       The result can also be an empty string in case of invalid argument.
5239
5240       Parameter {fnum} can have following values:
5241           - '.' to get type of file under the cursor in the active pane
5242           - numerical value base 1 to get type of file on specified line num‐
5243       ber
5244
5245       Optional parameter {resolve} is treated  as  a  boolean  and  specifies
5246       whether symbolic links should be resolved.
5247
5248       fnameescape({expr})
5249
5250       Escapes parameter to make it suitable for use as an argument of a :com‐
5251       mand.  List of escaped characters includes %, which is doubled.
5252
5253       Usage example:
5254
5255         " navigate to most recently modified file in current directory
5256         execute 'goto' fnameescape(system('ls -t | head -1'))
5257
5258       getpanetype()
5259
5260       Retrieves string describing type of current pane.  Possible return val‐
5261       ues:
5262           regular      regular file listing of some directory
5263           custom       custom file list (%u)
5264           very-custom  very custom file list (%U)
5265           tree         tree view
5266
5267       has({property})
5268
5269       Allows  examining  internal  parameters from scripts to e.g. figure out
5270       environment in which application is running.  Returns 1 if property  is
5271       true/present, otherwise 0 is returned.  Currently the following proper‐
5272       ties are supported (anything else will yield 0):
5273           unix  runs in *nix-like environment (including Cygwin)
5274           win   runs on Windows
5275
5276       Usage example:
5277
5278         " skip user/group on Windows
5279         if !has('win')
5280             let $RIGHTS = '%10u:%-7g '
5281         endif
5282
5283         execute 'set' 'statusline="  %t%= %A '.$RIGHTS.'%15E %20d  "'
5284
5285       layoutis({type})
5286
5287       Checks whether current interface layout is {type} or not, where  {type}
5288       can be:
5289           only    single-pane mode
5290           split   double-pane mode (either vertical or horizontal split)
5291           vsplit  vertical split (left and right panes)
5292           hsplit  horizontal split (top and bottom panes)
5293
5294       Usage example:
5295
5296         " automatically split vertically before enabling preview
5297         :nnoremap w :if layoutis('only') | vsplit | endif | view!<cr>
5298
5299       paneisat({loc})
5300
5301       Checks whether position of active pane in current layout matches one of
5302       the following locations:
5303           top     pane reaches top border
5304           bottom  pane reaches bottom border
5305           left    pane reaches left border
5306           right   pane reaches right border
5307
5308       system({command})
5309
5310       Runs the command in shell and returns its output (joined standard  out‐
5311       put  and  standard error streams).  All trailing newline characters are
5312       stripped to allow easy appending  to  command  output.   Ctrl-C  should
5313       interrupt the command.
5314
5315       Use  this  function  to  consume output of external commands that don't
5316       require user interaction and term() for interactive commands that  make
5317       use of terminal and are capable of handling stream redirection.
5318
5319       Usage example:
5320
5321         " command to enter .git/ directory of git-repository (when ran inside one)
5322         command! cdgit :execute 'cd' fnameescape(system('git rev-parse --git-dir'))
5323
5324       tabpagenr([{arg}])
5325
5326       When  called  without arguments returns number of current tab page base
5327       one.
5328
5329       When called with "$" as an argument returns number of the last tab page
5330       base one, which is the same as number of tabs.
5331
5332       term({command})
5333
5334       Same  as  system()  function, but user interface is shutdown during the
5335       execution of the command, which makes sure  that  external  interactive
5336       applications won't affect the way terminal is used by vifm.
5337
5338       Usage example:
5339
5340         " command to change directory by picking it via fzf
5341         command! fzfcd :execute 'cd'
5342                                fnameescape(term('find -type d | fzf 2> /dev/tty'))
5343
5345       When  navigating  to some path from a menu there is a difference in end
5346       location depending on whether path has trailing slash  or  not.   Files
5347       normally  don't have trailing slashes so "file/" won't work and one can
5348       only navigate to a file anyway.  On the  other  hand  with  directories
5349       there  are  two  options:  navigate to a directory or inside of it.  To
5350       allow both use cases, the first one is used on paths like "dir" and the
5351       second one for "dir/".
5352
5353       Commands
5354
5355       :range navigate to a menu line.
5356
5357       :exi[t][!] :q[uit][!] :x[it][!]
5358              leave menu mode.
5359
5360       :noh[lsearch]
5361              reset search match highlighting.
5362
5363       :w[rite] {dest}
5364              write all menu lines into file specified by {dest}.
5365
5366       General
5367
5368       j, Ctrl-N - move down.
5369       k, Ctrl-P - move up.
5370       Enter, l - select and exit the menu.
5371       Ctrl-L - redraw the menu.
5372
5373       Escape, Ctrl-C, ZZ, ZQ, q - quit.
5374
5375       In all menus
5376
5377       The following set of keys has the same meaning as in normal mode.
5378
5379       Ctrl-B, Ctrl-F
5380       Ctrl-D, Ctrl-U
5381       Ctrl-E, Ctrl-Y
5382       /, ?
5383       n, N
5384       [count]G, [count]gg
5385       H, M, L
5386       zb, zt, zz
5387
5388       zh - scroll menu items [count] characters to the right.
5389       zl - scroll menu items [count] characters to the left.
5390       zH - scroll menu items half of screen width characters to the right.
5391       zL - scroll menu items half of screen width characters to the left.
5392
5393       : - enter command line mode for menus (currently only :exi[t], :q[uit],
5394       :x[it] and :{range} are supported).
5395
5396       b - interpret content of the menu as list of paths and use it to create
5397       custom  view  in  place  of previously active pane.  See "Custom views"
5398       section below.
5399       B - same as above, but creates unsorted view.
5400
5401       v - load menu content into quickfix list of the editor (Vim  compatible
5402       by  assumption)  or  if  list  doesn't have separators after file names
5403       (colons) open each line as a file name.
5404
5405
5406       Below is description of additional commands and reaction  on  selection
5407       in some menus and dialogs.
5408
5409       Apropos menu
5410
5411       Selecting  menu  item  runs man on a given topic.  Menu won't be closed
5412       automatically to allow view several pages one by one.
5413
5414       Command-line mode abbreviations menu
5415
5416       Type dd on an abbreviation to remove it.
5417
5418       c leaves menu preserving file selection and inserts right-hand side  of
5419       selected command into command-line.
5420
5421       Color scheme menu
5422
5423       Selecting  name  of a color scheme applies it the same way as if ":col‐
5424       orscheme <name>" was executed on the command-line.
5425
5426       Commands menu
5427
5428       Selecting command executes it with empty arguments (%a).
5429
5430       dd on a command to remove.
5431
5432       Marks menu
5433
5434       Selecting mark navigates to it.
5435
5436       dd on a mark to remove it.
5437
5438       Bookmarks menu
5439
5440       Selecting a bookmark navigates to it.
5441
5442       Type dd on a bookmark to remove it.
5443
5444       gf and e also work to make it more convenient to bookmark files.
5445
5446       Trash (:lstrash) menu
5447
5448       r on a file name to restore it from trash.
5449
5450       dd deletes file under the cursor.
5451
5452       Trashes (:trashes) menu
5453
5454       dd empties selected trash in background.
5455
5456       Directory history and Trashes menus
5457
5458       Selecting directory name will change directory of the current  view  as
5459       if :cd command was used.
5460
5461       Directory stack menu
5462
5463       Selecting  directory  name  will rotate stack to put selected directory
5464       pair at the top of the stack.
5465
5466       File (:file) menu
5467
5468       Commands from vifmrc or typed in command-line are displayed above empty
5469       line.  All commands below empty line are from .desktop files.
5470
5471       c leaves menu preserving file selection and inserts command after :! in
5472       command-line mode.
5473
5474       Grep, find, locate, bookmarks and user menu with navigation (%M macro)
5475
5476       gf - navigate  previously  active  view  to  currently  selected  item.
5477       Leaves menu mode except for grep menu.  Pressing Enter key has the same
5478       effect.
5479
5480       e - open selected path in the editor, stays in menu mode.
5481
5482       c - leave menu preserving file selection and insert file name after  :!
5483       in command-line mode.
5484
5485       User menu without navigation (%m macro)
5486
5487       c leaves menu preserving file selection and inserts whole line after :!
5488       in command-line mode.
5489
5490       Grep menu
5491
5492       Selecting file (via Enter or l key) opens it in editor set  by  'vicmd'
5493       at  given  line  number.   Menu  won't be closed automatically to allow
5494       viewing more than one result.
5495
5496       See above for "gf" and "e" keys description.
5497
5498       Command-line history menu
5499
5500       Selecting an item executes it as command-line command, search query  or
5501       local filter.
5502
5503       c  leaves menu preserving file selection and inserts line into command-
5504       line of appropriate kind.
5505
5506       Volumes menu
5507
5508       Selecting a drive navigates previously active pane to the root of  that
5509       drive.
5510
5511       Fileinfo dialog
5512
5513       Enter, q - close dialog
5514
5515       Sort dialog
5516
5517       h, Space - switch ascending/descending.
5518       q - close dialog
5519
5520       One shortcut per sorting key (see the dialog).
5521
5522       Attributes (permissions or properties) dialog
5523
5524       h, Space - check/uncheck.
5525       q - close dialog
5526
5527       Item states:
5528
5529       - * - checked flag.
5530
5531       - X - means that it has different value for files in selection.
5532
5533       - d  (*nix only) - (only for execute flags) means u-x+X, g-x+X or o-x+X
5534         argument for the chmod program.  If you're not on OS X  and  want  to
5535         remove  execute  permission  bit  from all files, but preserve it for
5536         directories, set all execute flags to 'd' and check 'Set Recursively'
5537         flag.
5538
5539       Jobs menu
5540
5541       dd requests cancellation of job under cursor.  The job won't be removed
5542       from the list, but marked as being cancelled (if cancellation was  suc‐
5543       cessfully  requested).   A  message  will pop up if the job has already
5544       stopped.  Note that on Windows cancelling external programs  like  this
5545       might not work, because their parent shell doesn't have any windows.
5546
5547       e  key displays errors of selected job if any were collected.  They are
5548       displayed in a new menu, but you can get back to jobs menu by  pressing
5549       h.
5550
5551
5552       Undolist menu
5553
5554       r - reset undo position to group under the cursor.
5555
5556
5557       Media menu
5558
5559       Selecting  a  device  either mounts (if it wasn't mounted yet) or navi‐
5560       gates to its first mount point.
5561
5562       Selecting a mount point navigates to it.
5563
5564       Selecting "not mounted" line causes mounting.
5565
5566       Selecting any other line does nothing.
5567
5568       r - reload the list.
5569
5570       m - mount/unmount device (cursor should be positioned  on  lines  under
5571       device information).
5572
5573       [ - put cursor on the previous device.
5574
5575       ] - put cursor on the next device.
5576
5577

Custom views

5579       Definition
5580
5581       Normally  file views contain list of files from a single directory, but
5582       sometimes it's useful to populate them with list of files that  do  not
5583       belong to the same directory, which is what custom views are for.
5584
5585       Presentation
5586
5587       Custom  views are still related to directory they were in before custom
5588       list was loaded.  Path to that directory (original  directory)  can  be
5589       seen in the title of a custom view.
5590
5591       Files in same directory have to be named differently, this doesn't hold
5592       for custom views thus seeing just file names might be rather confusing.
5593       In order to give an idea where files come from and when possible, rela‐
5594       tive paths to original directory of the view  is  displayed,  otherwise
5595       full path is used instead.
5596
5597       Custom views normally don't contain any inexistent files.
5598
5599       Navigation
5600
5601       Custom  views  have  some  differences related to navigation in regular
5602       views.
5603
5604       gf - acts similar to gf on symbolic links and navigates to the file  at
5605       its real
5606            location.
5607
5608       h  -  go  to  closes  parent node in tree view, otherwise return to the
5609       original directory.
5610
5611       gh - return to the original directory.
5612
5613       Opening ".." entry also causes return to the original directory.
5614
5615       History
5616
5617       Custom list exists only while it's visible, once left one can't  return
5618       to it, so there is no appearances of it in any history.
5619
5620       Filters
5621
5622       Only  local  filter  affects content of the view.  This is intentional,
5623       presumably if one loads list, precisely that list should  be  displayed
5624       (except for inexistent paths, which are ignored).
5625
5626       Search
5627
5628       Although  directory  names are visible in listing, they are not search‐
5629       able.  Only file names are taken into  account  (might  be  changed  in
5630       future, searching whole lines seems quite reasonable).
5631
5632       Sorting
5633
5634       Contrary  to search sorting by name works on whole visible part of file
5635       path.
5636
5637       Highlight
5638
5639       Whole file name is highlighted as one entity, even if there are  direc‐
5640       tory elements.
5641
5642       Updates
5643
5644       Reloads  can  occur,  though  they are not automatic due to files being
5645       scattered among different places.  On a reload,  inexistent  files  are
5646       removed and meta-data of all other files is updated.
5647
5648       Once  custom  view forgets about the file, it won't add it back even if
5649       it's created again.  So not seeing file previously affected by an oper‐
5650       ation, which was undone is normal.
5651
5652       Operations
5653
5654       All  operations  that  add  files  are forbidden for custom views.  For
5655       example, moving/copying/putting files into a custom view doesn't  work,
5656       because it doesn't make much sense.
5657
5658       On  the  other  hand,  operations  that use files of a custom view as a
5659       source (e.g. yanking, copying, moving file from custom view,  deletion)
5660       and operations that modify names are all allowed.
5661

Compare views

5663       Kinds
5664
5665       :compare can produce four different results depending on arguments:
5666        - single compare view (ofone and either listall or listdups);
5667        - single custom view (ofone and listunique);
5668        - two compare views (ofboth and either listall or listdups);
5669        - two custom views (ofboth and listunique).
5670
5671       The  first  two display files of one file system tree.  Here duplicates
5672       are files that have at least one copy in the same tree.  The other  two
5673       kinds  of  operation  compare  two trees, in which duplicates are files
5674       that are found in both trees.
5675
5676       Lists of unique files are presented in custom views because there is no
5677       file  grouping  to  preserve  as all file ids are guaranteed to be dis‐
5678       tinct.
5679
5680       Creation
5681
5682       Arguments passed to :compare form four categories  each  with  its  own
5683       prefix and is responsible for particular property of operation.
5684
5685       Which files to compare:
5686        - ofboth - compares files of two panes against each other;
5687        - ofone  - compares files of the same directory.
5688
5689       How files are compared:
5690        - byname     - by their name only;
5691        - bysize     - only by their size;
5692        -  bycontents  - by data they contain (combination of size and hash of
5693       small chunk of contents is used as first approximation, so don't  worry
5694       too much about large files).
5695
5696       Which files to display:
5697        - listall    - all files;
5698        - listunique - unique files only;
5699        - listdups   - only duplicated files.
5700
5701       How results are grouped (has no effect if "ofone" specified):
5702        -  groupids   - files considered identical are always adjacent in out‐
5703       put;
5704        - grouppaths - file system ordering is preferred  (this  also  enables
5705       displaying identically named files as mismatches).
5706
5707       Which files to omit:
5708        - skipempty - ignore empty files.
5709
5710       Each argument can appear multiple times, the rightmost one of the group
5711       is considered.  Arguments alter default behaviour instead of substitut‐
5712       ing it.
5713
5714       Examples
5715
5716       The  defaults  corresponds to probably the most common use case of com‐
5717       paring files in two trees with grouping by paths, so the following  are
5718       equivalent:
5719
5720         :compare
5721         :compare bycontents grouppaths
5722         :compare bycontents listall ofboth grouppaths
5723
5724       Another use case is to find duplicates in the current sub-tree:
5725
5726         :compare listdups ofone
5727
5728       The following command lists files that are unique to each pane:
5729
5730         :compare listunique
5731
5732       Look
5733
5734       The  view  can't switch to ls-like view as it's unable to display diff-
5735       like data.
5736
5737       Comparison views have second column displaying id of  the  file,  files
5738       with  same  id are considered to be equal.  The view columns configura‐
5739       tion is predefined.
5740
5741       Behaviour
5742
5743       When two views are being compared  against  each  other  the  following
5744       changes to the regular behaviour apply:
5745        - views are scrolled synchronously (as if 'scrollbind' was set);
5746        - views' cursors are synchronized;
5747        - local filtering is disabled (its results wouldn't be meaningful);
5748        -  zd excludes groups of adjacent identical files, 1zd gives usual be‐
5749       haviour;
5750        - sorting is permanently disabled (ordering is fixed);
5751        - removed files hide their counter pairs;
5752        - exiting one of the views terminates the other immediately;
5753        - renaming files isn't blocked, but isn't taken into account and might
5754       require regeneration of comparison;
5755        -  entries  which indicate absence of equivalent file have empty names
5756       and can be matched as such;
5757        - when unique files of both views  are  listed  custom  views  can  be
5758       empty, this absence of unique files is stated clearly.
5759
5760       One  compare view has similar properties (those that are applicable for
5761       single pane).
5762
5763       Files are gathered in this way:
5764        - recursively starting at current location of the view;
5765        - dot files are excluded if view hides them at the moment of  compari‐
5766       son;
5767        - directories are not taken into account;
5768        - symbolic links to directories are ignored.
5769

Startup

5771       On  startup vifm determines several variables that are used during exe‐
5772       cution.  They are determined in the order they appear below.
5773
5774       On *nix systems $HOME is normally present and used as is.   On  Windows
5775       systems  vifm  tries  to  find  correct home directory in the following
5776       order:
5777        - $HOME variable;
5778        - $USERPROFILE variable (on Windows only);
5779        - a combination of $HOMEDRIVE  and  $HOMEPATH  variables  (on  Windows
5780       only).
5781
5782       vifm tries to find correct configuration directory by checking the fol‐
5783       lowing places:
5784        - $VIFM variable;
5785        - parent directory of the executable file (on Windows only);
5786        - $HOME/.vifm directory;
5787        - $APPDATA/Vifm directory (on Windows only);
5788        - $XDG_CONFIG_HOME/vifm directory;
5789        - $HOME/.config/vifm directory.
5790
5791       vifm tries to find correct configuration file by checking the following
5792       places:
5793        - $MYVIFMRC variable;
5794        - vifmrc in parent directory of the executable file (on Windows only);
5795        - $VIFM/vifmrc file.
5796

Configure

5798       See  "Startup"  section  above  for the explanations on $VIFM and $MYV‐
5799       IFMRC.
5800
5801       The vifmrc file  contains  commands  that  will  be  executed  on  vifm
5802       startup.  There are two such files: global and local.  Global one is at
5803       {prefix}/etc/vifm/vifmrc, see $MYVIFMRC variable  description  for  the
5804       search  algorithm  used  to find local vifmrc.  Global vifmrc is loaded
5805       before the local one, so that the later one can redefine anything  con‐
5806       figured globally.
5807
5808       Use vifmrc to set settings, mappings, filetypes etc.  To use multi line
5809       commands precede each next line with a slash (whitespace  before  slash
5810       is  ignored,  but  all  spaces at the end of the lines are saved).  For
5811       example:
5812
5813         set
5814             \smartcase
5815
5816       equals "setsmartcase".  When
5817
5818         set<space here>
5819             \ smartcase
5820
5821       equals "set  smartcase".
5822
5823       The $VIFM/vifminfo file contains generic state of the application.  You
5824       can  control  what  is stored in vifminfo by setting 'vifminfo' option.
5825       Vifm always writes this file on exit unless 'vifminfo' option is empty.
5826       Marks,  bookmarks, commands, histories, filetypes, fileviewers and reg‐
5827       isters in the file are merged with vifm configuration (which has bigger
5828       priority).
5829
5830       Generally,  runtime  configuration  has bigger priority during merging,
5831       but there are some exceptions:
5832
5833         - directory stack stored in the file is not overwritten unless  some‐
5834           thing is changed in vifm instance that performs merge;
5835
5836         - each  mark  or  bookmark  is marked with a timestamp, so that newer
5837           value is not overwritten by older one, thus no matter from where it
5838           comes, the newer one wins;
5839
5840         - all  histories  are  marked  with timestamps on storing, this means
5841           that last instance to quit puts its elements on top of the list;
5842
5843         - tabs are merged only if both current instance and stored state con‐
5844           tain exactly one tab of any kind.
5845
5846       The  $VIFM/scripts  directory can contain shell scripts.  vifm modifies
5847       its PATH environment variable to let user  run  those  scripts  without
5848       specifying  full path.  All subdirectories of the $VIFM/scripts will be
5849       added to PATH too.  Script in a subdirectory overlaps script  with  the
5850       same name in all its parent directories.
5851
5852       The  $VIFM/colors/  and  {prefix}/etc/vifm/colors/  directories contain
5853       color schemes.  Available color schemes are searched in that order,  so
5854       on name conflict the one in $VIFM/colors/ wins.
5855
5856       Each  color scheme should have ".vifm" extension.  This wasn't the case
5857       before and for this reason the following rules apply during lookup:
5858
5859         - if there is no file with .vifm extension,  all  regular  files  are
5860           listed;
5861
5862         - otherwise  only  files  with  .vifm  extension are listed (with the
5863           extension being truncated).
5864

Sessions

5866       Sessions provide a way to have multiple persistent  runtime  configura‐
5867       tions.  Think of them as second-level vifminfo files in addition to the
5868       first-level one used by all sessions.  In other words,  they  aren't  a
5869       replacement  for  vifminfo  file  that  exists without sessions, but an
5870       addition to it.  One can empty 'vifminfo' option  and  rely  solely  on
5871       sessions,  but  in  practice  one  might want to share some state among
5872       instances in different sessions or have an "out-of-sessions" state  for
5873       tasks that don't deserve a session of their own.
5874
5875       This  leads  to  a  two-level structure where data in session files has
5876       higher priority than data in vifminfo files (where  this  makes  sense)
5877       following the same rules that merging of vifminfo file obeys.  In addi‐
5878       tion to that, history items from session files are never ordered before
5879       history items from vifminfo file.
5880
5881       Format
5882
5883       Sessions  have  the  format  of  vifminfo files, they do not consist of
5884       sequence of command-line commands and are not meant to be  sourced  via
5885       :source command.
5886
5887       Storage and naming
5888
5889       `$VIFM/sessions/`  directory  serves as a storage for sessions.  Conse‐
5890       quently names should be valid filenames.  The structure of the  storage
5891       is  flat  meaning that there are no subdirectories, that's why names of
5892       sessions can't contain slashes.
5893
5894       Usage model
5895
5896       Contrary to Vim, vifm automates basic management of sessions.  You  can
5897       start, switch, stop or delete a session using builtin means.
5898
5899       Current  session is saved at the same time vifminfo is saved (on normal
5900       exits or explicitly on :write command) and right  before  switching  to
5901       another  session.   To avoid saving in those cases use :session command
5902       to detach (without saving) from a session before proceeding.
5903
5904       Related topics
5905
5906       Commands: :session, :delsession
5907       Options: 'sessionoptions'
5908       Variables: v:session
5909

Automatic FUSE mounts

5911       vifm has a builtin support of automated FUSE file system mounts.  It is
5912       implemented  using  file  associations  mechanism.  To enable automated
5913       mounts, one needs to use a specially formatted program line in filetype
5914       or  filextype  commands.   These  use special macros, which differ from
5915       macros in commands unrelated to FUSE.  Currently three formats are sup‐
5916       ported:
5917
5918       1)  FUSE_MOUNT  This format should be used in case when all information
5919       needed for mounting all files of a particular type is the  same.   E.g.
5920       mounting of tar files don't require any file specific options.
5921
5922       Format line:
5923         FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND]
5924
5925       Example filetype command:
5926
5927         :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
5928
5929       2)  FUSE_MOUNT2 This format allows one to use specially formatted files
5930       to perform mounting and is useful for  mounting  remotes,  for  example
5931       remote file systems over ftp or ssh.
5932
5933       Format line:
5934         FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]
5935
5936       Example filetype command:
5937
5938         :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
5939
5940       Example file content:
5941
5942         root@127.0.0.1:/
5943
5944       3) FUSE_MOUNT3
5945
5946       This  format  is equivalent to FUSE_MOUNT, but omits unmounting.  It is
5947       useful for cases, when unmounting isn't needed, like when using AVFS.
5948
5949       Example :filetype command:
5950
5951         :filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz,*.deb
5952              \ {Mount with avfs}
5953              \ FUSE_MOUNT3|mount-avfs %DESTINATION_DIR %SOURCE_FILE
5954
5955       Example `mount-avfs` helper script:
5956
5957         #!/bin/sh
5958
5959         dest=$1
5960         file=$2
5961
5962         rmdir "$dest"
5963         ln -s "$HOME/.avfs$file#/" "$dest"
5964
5965       All % macros are expanded by vifm at runtime  and  have  the  following
5966       meaning:
5967         - %SOURCE_FILE is replaced by full path to selected file;
5968         - %DESTINATION_DIR is replaced by full path to mount directory, which
5969       is created by vifm basing on the value of 'fusehome' option;
5970         - %PARAM value is filled from the first line of  file  (whole  line),
5971       though in the future it can be changed to whole file content;
5972         -  %FOREGROUND  means that you want to run mount command as a regular
5973       command (required to be able to provide input  for  communication  with
5974       mounter in interactive way).
5975
5976       %FOREGROUND  is an optional macro.  Other macros are not mandatory, but
5977       mount commands likely won't work without them.
5978
5979       %CLEAR is obsolete name of %FOREGROUND, which is still  supported,  but
5980       might be removed in future.  Its use is discouraged.
5981
5982       Unlike  macros  elsewhere,  these are recognized only if they appear at
5983       the end of a command or are followed by a space.  There is  no  way  to
5984       escape  %  either.   These  are  historical limitations, which might be
5985       addressed in the future.
5986
5987       The mounted FUSE file systems will be automatically  unmounted  in  two
5988       cases:
5989
5990         - when vifm quits (with ZZ, :q, etc. or when killed by signal);
5991
5992         - when you explicitly leave mount point going up to its parent direc‐
5993           tory (with h, Enter on "../" or ":cd ..") and other pane is not  in
5994           the same directory or its child directories.
5995

View look

5997       vifm supports displaying of file list view in two different ways:
5998
5999         - in  a  table  mode,  when  multiple columns can be set using 'view‐
6000           columns' option (see "Column view" section below for details);
6001
6002         - in a multicolumn list manner which looks almost like `ls  -x`  com‐
6003           mand output (see "ls-like view" section below for details).
6004
6005       The  look is local for each view and can be chosen by changing value of
6006       the 'lsview' boolean option.
6007
6008       Depending on view look some of keys change their meaning to allow  more
6009       natural cursor moving.  This concerns mainly h, j, k, l and other simi‐
6010       lar navigation keys.
6011
6012       Also some of options can be ignored if they don't affect view  display‐
6013       ing in selected look.  For example value of 'viewcolumns' when 'lsview'
6014       is set.
6015

ls-like view

6017       When this view look is enabled by setting 'lsview' option on, vifm will
6018       display  files  in  multiple columns.  Number of columns depends on the
6019       length of the longest file name present in  current  directory  of  the
6020       view.   Whole  file list is automatically reflowed on directory change,
6021       terminal or view resize.
6022
6023       View looks close to output of `ls -x` command, so files are listed left
6024       to right in rows.
6025
6026       In  this  mode file manipulation commands (e.g. d) don't work line-wise
6027       like they do in Vim, since such operations would be uncommon  for  file
6028       manipulation  tasks.   Thus,  for  example, dd will remove only current
6029       file.
6030
6031       By default the view is filled by lines, 'lsoptions' can be used to  get
6032       filling by columns.
6033
6034       Note that tree-view and compare view inhibit ls-like view.
6035

Column view

6037       View columns are described by a comma-separated list of column descrip‐
6038       tions, each of which has the following format
6039           [ '-' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type '}' '.'{0,3}
6040       where fw stands for full width and tw stands for text width.
6041
6042       So it basically consists of four parts:
6043        1. Optional alignment specifier
6044        2. Optional width specifier
6045        3. Mandatory column name
6046        4. Optional cropping specifier
6047
6048       Alignment specifier
6049
6050       It's an optional minus or asterisk sign as  the  first  symbol  of  the
6051       string.
6052
6053       Specifies type of text alignment within a column.  Three types are sup‐
6054       ported:
6055
6056       - left align
6057
6058           set viewcolumns=-{name}
6059
6060       - right align (default)
6061
6062           set viewcolumns={name}
6063
6064       - dynamic align
6065
6066         It's like left alignment, but when the text is bigger than  the  col‐
6067         umn,  the alignment is made at the right (so the part of the field is
6068         always visible).
6069
6070           set viewcolumns=*{name}
6071
6072       Width specifier
6073
6074       It's a number followed by a  percent  sign,  two  numbers  (second  one
6075       should  be less than or equal to the first one) separated with a dot or
6076       a single number.
6077
6078       Specifies column width and its units. There are three size types:
6079
6080       - absolute size - column width is specified in characters
6081
6082           set viewcolumns=-100{name},20.15{ext}
6083
6084         results in two columns with lengths of 100  and  20  and  a  reserved
6085         space of five characters on the left of second column.
6086
6087       - relative  (percent)  size  - column width is specified in percents of
6088         view width
6089
6090           set viewcolumns=-80%{name},15%{ext},5%{mtime}
6091
6092         results in three columns with lengths of 80/100, 15/100 and 5/100  of
6093         view width.
6094
6095       - auto size (default) - column width is automatically determined
6096
6097           set viewcolumns=-{name},{ext},{mtime}
6098
6099         results  in  three  columns  with  length of one third of view width.
6100         There is no size adjustment to content, since it will slow down  ren‐
6101         dering.
6102
6103       Columns  of  different  sizing  types  can be freely mixed in one view.
6104       Though sometimes some of columns can be seen partly  or  be  completely
6105       invisible if there is not enough space to display them.
6106
6107       Column name
6108
6109       This is just a sort key surrounded with curly braces or {root}, e.g.
6110
6111         {name},{ext},{mtime}
6112
6113       {name}  and  {iname} keys are the same and present both for consistency
6114       with 'sort' option.
6115
6116       Following keys don't have corresponding sorting keys:
6117
6118         - {root}     - display name without extension (as  a  complement  for
6119           {ext})
6120
6121         - {fileroot} - display name without extension for anything except for
6122           directories and symbolic links to directories (as a complement  for
6123           {fileext})
6124
6125       Empty  curly braces ({}) are replaced with the default secondary column
6126       for primary sort key. So after the next command view will be  displayed
6127       almost  as if 'viewcolumns' is empty, but adding ellipsis for long file
6128       names:
6129
6130         set viewcolumns=-{name}..,6{}.
6131
6132       Cropping specifier
6133
6134       It's from one to three dots after closing curly brace in column format.
6135
6136       Specifies type of text truncation if it  doesn't  fit  in  the  column.
6137       Currently three types are supported:
6138
6139         - truncation - text is truncated
6140
6141             set viewcolumns=-{name}.
6142
6143           results  in  truncation  of  names that are too long too fit in the
6144           view.
6145
6146         - adding of ellipsis - ellipsis on the left or right are  added  when
6147           needed
6148
6149             set viewcolumns=-{name}..
6150
6151           results  in  that  ellipsis  are  added at the end of too long file
6152           names.
6153
6154         - none (default) - text can pass column boundaries
6155
6156             set viewcolumns=-{name}...,{ext}
6157
6158           results in that long file names can partially be written on the ext
6159           column.
6160

Color schemes

6162       The color schemes in vifm can be applied in two different ways:
6163
6164         - as the primary color scheme;
6165
6166         - as local to a pane color scheme.
6167
6168       Both types are set using :colorscheme command, but of different forms:
6169
6170         - :colorscheme color_scheme_name - for the primary color scheme;
6171
6172         - :colorscheme color_scheme_name directory - for local color schemes.
6173
6174       Look  of different parts of the TUI (Text User Interface) is determined
6175       in this way:
6176
6177         - Border,  TabLine,   TabLineSel,   TopLineSel,   TopLine,   CmdLine,
6178           ErrorMsg,  StatusLine,  JobLine, SuggestBox and WildMenu are always
6179           determined by the primary color scheme;
6180
6181         - CurrLine, Selected, Directory, Link,  BrokenLink,  Socket,  Device,
6182           Executable,  Fifo, CmpMismatch, Win, AuxWin and OtherWin are deter‐
6183           mined by primary color scheme and a set  of  local  color  schemes,
6184           which can be empty.
6185
6186       There might be a set of local color schemes because they are structured
6187       hierarchically according to file system structure. For example,  having
6188       the following piece of file system:
6189
6190         ~
6191         `-- bin
6192            |
6193            `-- my
6194
6195       Two color schemes:
6196
6197         # ~/.vifm/colors/for_bin
6198         highlight Win cterm=none ctermfg=white ctermbg=red
6199         highlight CurrLine cterm=none ctermfg=red ctermbg=black
6200
6201         # ~/.vifm/colors/for_bin_my
6202         highlight CurrLine cterm=none ctermfg=green ctermbg=black
6203
6204       And these three commands in the vifmrc file:
6205
6206         colorscheme Default
6207         colorscheme for_bin ~/bin
6208         colorscheme for_bin_my ~/bin/my
6209
6210       File list will look in the following way for each level:
6211
6212       - ~/ - Default color scheme
6213         black background
6214         cursor with blue background
6215
6216       - ~/bin/ - mix of Default and for_bin color schemes
6217         red background
6218         cursor with black background and red foreground
6219
6220       - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes
6221         red background
6222         cursor with black background and green foreground
6223

Trash directory

6225       vifm has support of trash directory, which is used as temporary storage
6226       for deleted files or files that were cut.  Using trash is controlled by
6227       the  'trash'  option,  and  exact  path  to  the  trash can be set with
6228       'trashdir' option.  Trash directory in vifm differs  from  the  system-
6229       wide  one  by default, because of possible incompatibilities of storing
6230       deleted  files  among  different  file  managers.   But  one  can   set
6231       'trashdir'  to  "~/.local/share/Trash" to use a "standard" trash direc‐
6232       tory.
6233
6234       There are two scenarios of using trash in vifm:
6235
6236         1. As a place for storing files that were  cut  by  "d"  and  may  be
6237            inserted to some other place in file system.
6238
6239         2. As a storage of files, that are deleted but not purged yet.
6240
6241       The first scenario uses deletion ("d") operations to put files to trash
6242       and put ("p") operations to restore files from trash  directory.   Note
6243       that  such operations move files to and from trash directory, which can
6244       be long term operations in  case  of  different  partitions  or  remote
6245       drives mounted locally.
6246
6247       The  second scenario uses deletion ("d") operations for moving files to
6248       trash directory and :empty command-line command to purge all previously
6249       deleted files.
6250
6251       Deletion  and  put  operations  depend on registers, which can point to
6252       files in trash directory.  Normally, there are no nonexistent files  in
6253       registers,  but  vifm  doesn't  keep track of modifications under trash
6254       directory, so one shouldn't expect value of registers to be  absolutely
6255       correct if trash directory was modified not by operation that are meant
6256       for it.  But this won't lead to any issues with operations, since  they
6257       ignore nonexistent files.
6258

Client-Server

6260       vifm  supports  remote  execution of command-line mode commands, remote
6261       changing of directories and expression evaluation.   This  is  possible
6262       using --remote and --remote-expr command-line arguments.
6263
6264       To  execute  a command remotely combine --remote argument with -c <com‐
6265       mand> or +<command>.  For example:
6266
6267         vifm --remote -c 'cd /'
6268         vifm --remote '+cd /'
6269
6270       To change directory not using command-line mode commands one can  spec‐
6271       ify paths right after --remote argument, like this:
6272
6273         vifm --remote /
6274         vifm --remote ~
6275         vifm --remote /usr/bin /tmp
6276
6277       Evaluating  expression  remotely  might  be useful to query information
6278       about an instance, for example its location:
6279
6280         vifm --remote-expr 'expand("%d")'
6281
6282       If there are several running instances, the  target  can  be  specified
6283       with  --server-name  option (otherwise, the first one lexicographically
6284       is used):
6285
6286         vifm --server-name work --remote ~/work/project
6287
6288       List of names of running instances can be  obtained  via  --server-list
6289       option.  Name of the current one is available via v:servername.
6290
6291
6292       v:servername
6293              server  name  of  the  running  vifm instance.  Empty if client-
6294              server feature is disabled.
6295

Plugin

6297       Plugin for using vifm in vim as a file selector.
6298
6299       Commands:
6300
6301         :EditVifm   select a file or files to open in the current buffer.
6302         :Vifm       alias for :EditVifm.
6303         :SplitVifm  split buffer and select a file or files to open.
6304         :VsplitVifm vertically split buffer and select a  file  or  files  to
6305       open.
6306         :DiffVifm    select  a  file  or files to compare to the current file
6307       with
6308                     :vert diffsplit.
6309         :TabVifm    select a file or files to open in tabs.
6310
6311       Each command accepts up to two arguments: left pane directory and right
6312       pane  directory.   After arguments are checked, vifm process is spawned
6313       in a special "file-picker" mode.  To pick files just open  them  either
6314       by  pressing  l,  i  or Enter keys, or by running :edit command.  If no
6315       files are selected, file under the cursor is  opened,  otherwise  whole
6316       selection is passed to the plugin and opened in vim.
6317
6318       The  plugin  have  only  two  settings.   It's  a string variable named
6319       g:vifm_term to let user  specify  command  to  run  GUI  terminal.   By
6320       default  it's  equal  to 'xterm -e'.  And another string variable named
6321       g:vifm_exec, which equals "vifm"  by  default  and  specifies  path  to
6322       vifm's  executable.   To  pass  arguments to vifm use g:vifm_exec_args,
6323       which is empty by default.
6324
6325       To use the plugin copy the vifm.vim file  to  either  the  system  wide
6326       vim/plugin directory or into ~/.vim/plugin.
6327
6328       If  you would prefer not to use the plugin and it is in the system wide
6329       plugin directory add
6330
6331       let loaded_vifm=1
6332
6333       to your ~/.vimrc file.
6334

Reserved

6336       The following command names are reserved and shouldn't be used for user
6337       commands.
6338
6339         g[lobal]
6340         v[global]
6341

ENVIRONMENT

6343       VIFM   Points to main configuration directory (usually ~/.vifm/).
6344
6345       MYVIFMRC
6346              Points to main configuration file (usually ~/.vifm/vifmrc).
6347
6348       These  environment variables are valid inside vifm and also can be used
6349       to configure it by setting some of them before running vifm.
6350
6351       When $MYVIFMRC isn't set, it's made as $VIFM/vifmrc (exception for Win‐
6352       dows: vifmrc in the same directory as vifm.exe has higher priority than
6353       $VIFM/vifmrc).
6354
6355       See "Startup" section above for more details.
6356
6357       VIFM_FUSE_FILE
6358              On execution of external commands this variable is  set  to  the
6359              full  path  of  file  used to initiate FUSE mount of the closest
6360              mount point from current pane's directory up.  It's not set when
6361              outside  FUSE  mount  point.   When vifm is used inside terminal
6362              multiplexer, it tries to set this variable as well  (it  doesn't
6363              work this way on its own).
6364

SEE ALSO

6366       vifm-convert-dircolors(1), vifm-pause(1)
6367
6368       Website: https://vifm.info/
6369       Wiki: https://wiki.vifm.info/
6370
6371       Esperanto translation of the documentation by Sebastian Cyprych:
6372       http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html
6373

AUTHOR

6375       Vifm was written by ksteen <ksteen@users.sourceforge.net>
6376       And currently is developed by xaizek <xaizek@posteo.net>
6377
6378
6379
6380vifm 0.11                     September 24, 2020                       VIFM(1)
Impressum