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 session.  To suppress  this  be‐
34       haviour :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 launches  a  file,
136              otherwise move right one file.
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.
148
149       H      move to the first file in the window.
150
151       M      move to the file in the middle of the window.
152
153       L      move to the last file in the window.
154
155       Ctrl-F or Page Down
156              move forward one page.
157
158       Ctrl-B or Page Up
159              move back one page.
160
161       Ctrl-D jump back one half page.
162
163       Ctrl-U jump forward one half page.
164
165       n%     move to the file that is n percent from the top of the list (for
166              example 25%).
167
168       0 or ^ move cursor to the first column.  See 'lsview'  option  descrip‐
169              tion.
170
171       $      move  cursor  to  the last column.  See 'lsview' option descrip‐
172              tion.
173
174       Space  switch file lists.
175
176       gt     switch to the next tab (wrapping around).
177
178       {n}gt  switch to the tab number {n} (wrapping around).
179
180       gT     switch to the previous tab (wrapping around).
181
182       {n}gT  switch to {n}-th previous tab.
183

Movement with Count

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

Scrolling panes

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

Pane manipulation

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

Marks

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

Searching

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

File Filters

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

Other Normal Mode Keys

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

Using Count

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

Registers

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

Selectors

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

Visual Mode

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

View Mode

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

Command line Mode

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

Pasting special values

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

Command line editing

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

More Mode

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

Commands

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

Ranges

3020       The ranges implemented include:
3021         2,3 - from second to third file in the list (including it)
3022         % - the entire directory.
3023         . - the current position in the filelist.
3024         $ - the end of the filelist.
3025         't - the mark position t.
3026
3027       Examples:
3028
3029         :%delete
3030
3031       would delete all files in the directory.
3032
3033         :2,4delete
3034
3035       would delete the files in the list positions 2 through 4.
3036
3037         :.,$delete
3038
3039       would  delete  the  files  from  the current position to the end of the
3040       filelist.
3041
3042         :3delete4
3043
3044       would delete the files in the list positions 3, 4, 5, 6.
3045
3046       If a backward range is given :4,2delete - an query message is given and
3047       user can chose what to do next.
3048
3049       The builtin commands that accept a range are :d[elete] and :y[ank].
3050

Command macros

3052       The command macros may be used in user commands.
3053
3054       %a     User  arguments.   When  user arguments contain macros, they are
3055              expanded before preforming substitution of %a.
3056
3057       %c %"c The current file under the cursor.
3058
3059       %C %"C The current file under the cursor in the other directory.
3060
3061       %f %"f All of the selected files.
3062
3063       %F %"F All of the selected files in the other directory list.
3064
3065       %b %"b Same as %f %F.
3066
3067       %d %"d Full path to current directory.
3068
3069       %D %"D Full path to other file list directory.
3070
3071       %rx %"rx
3072              Full paths to files in the register {x}.   In  case  of  invalid
3073              symbol in place of {x}, it's processed with the rest of the line
3074              and default register is used.
3075
3076       %m     Show command output in a menu.
3077
3078       %M     Same as %m, but l (or Enter) key is handled like for :locate and
3079              :find commands.
3080
3081       %u     Process  command output as list of paths and compose custom view
3082              out of it.
3083
3084       %U     Same as %u, but implies less list updates inside vifm, which  is
3085              absence of sorting at the moment.
3086
3087       %Iu    same  as  %u, but gives up terminal before running external com‐
3088              mand.
3089
3090       %IU    same as %U, but gives up terminal before running  external  com‐
3091              mand.
3092
3093       %S     Show command output in the status bar.
3094
3095       %q     redirect  command  output  to  quick view, which is activated if
3096              disabled.
3097
3098       %s     Execute command in split window of active  terminal  multiplexer
3099              (ignored if not running inside one).
3100
3101       %n     Forbid using of terminal multiplexer to run the command.
3102
3103       %i     Completely ignore command output.
3104
3105
3106       %pc    Marks the end of the main command and the beginning of the clear
3107              command for graphical preview, which is invoked on closing  pre‐
3108              view of a file.
3109
3110       %pd    Marks  a  preview command as one that directly communicates with
3111              the terminal.  Beware that this is for things like  sixel  which
3112              are  self-contained sequences that depend only on current cursor
3113              position, using this with anything else is likely to mangle ter‐
3114              minal state.
3115
3116       The following dimensions and coordinates are in characters:
3117
3118       %px    x coordinate of top-left corner of preview area.
3119
3120       %py    y coordinate of top-left corner of preview area.
3121
3122       %pw    width of preview area.
3123
3124       %ph    height of preview area.
3125
3126
3127       Use %% if you need to put a percent sign in your command.
3128
3129       Note  that %m, %M, %s, %S, %i, %u and %U macros are mutually exclusive.
3130       Only the last one of them on the command will take effect.
3131
3132       You can use file name modifiers after %c, %C, %f, %F,  %b,  %d  and  %D
3133       macros.  Supported modifiers are:
3134
3135         - :p           - full path
3136
3137         - :u             -   UNC   name   of   path   (e.g.   "\\server"   in
3138           "\\server\share"), Windows only.  Expands to current computer  name
3139           for not UNC paths.
3140
3141         - :~           - relative to the home directory
3142
3143         - :.           - relative to current directory
3144
3145         - :h           - head of the file name
3146
3147         - :t           - tail of the file name
3148
3149         - :r           - root of the file name (without last extension)
3150
3151         - :e           - extension of the file name (last one)
3152
3153         - :s?pat?sub?   -  substitute  the  first occurrence of pat with sub.
3154           You can use any character for '?', but it must not occur in pat  or
3155           sub.
3156
3157         - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with
3158           sub.
3159
3160       See ':h filename-modifiers' in Vim's  documentation  for  the  detailed
3161       description.
3162
3163       Using  %x means expand corresponding macro escaping all characters that
3164       have special meaning.  And %"x means using of double quotes and  escape
3165       only  backslash  and  double  quote characters, which is more useful on
3166       Windows systems.
3167
3168       Position and quantity (if there is any) of %m, %M, %S or %s  macros  in
3169       the command is unimportant.  All their occurrences are removed from the
3170       resulting command.
3171
3172       %c and %f macros are expanded to file names only, when %C  and  %F  are
3173       expanded to full paths.  %f and %F follow this in %b too.
3174
3175       :com move mv %f %D
3176              set  the  :move command to move all of the files selected in the
3177              current directory to the other directory.
3178
3179       The %a macro is replaced with any arguments given to an alias  command.
3180       All arguments are considered optional.
3181              :com  lsl !!ls -l %a - set the lsl command to execute ls -l with
3182              or without an argument.
3183
3184       :lsl<Enter>
3185              will list the directory contents of the current directory.
3186
3187       :lsl filename<Enter>
3188              will list only the given filename.
3189
3190       The macros can also be used in directly executing commands.   ":!mv  %f
3191       %D" would move the current directory selected files to the other direc‐
3192       tory.
3193
3194       Appending & to the end of a command causes it to  be  executed  in  the
3195       background.   Typically  you want to run two kinds of external commands
3196       in the background:
3197
3198         - GUI applications that doesn't fork thus block vifm (:!sxiv %f &);
3199
3200         - console tools that do not work with terminal (:!mv %f %D &).
3201
3202       You don't want to run terminal commands, which require  terminal  input
3203       or output something in background because they will mess up vifm's TUI.
3204       Anyway, if you did run such a command, you can use Ctrl-L key to update
3205       vifm's TUI.
3206
3207       Rewriting  the example command with macros given above with background‐
3208       ing:
3209
3210       %m, %M, %s, %S, %u and %U macros cannot  be  combined  with  background
3211       mark (" &") as it doesn't make much sense.
3212

Command backgrounding

3214       Copy  and move operation can take a lot of time to proceed.  That's why
3215       vifm supports backgrounding of this  two  operations.   To  run  :copy,
3216       :move  or :delete command in the background just add " &" at the end of
3217       a command.
3218
3219       For each background operation a new thread is created.   Job  cancella‐
3220       tion can be requested in the :jobs menu via dd shortcut.
3221
3222       You  can  see  if  command  is  still running in the :jobs menu.  Back‐
3223       grounded commands have progress instead  of  process  id  at  the  line
3224       beginning.
3225
3226       Background operations cannot be undone.
3227

Cancellation

3229       Note that cancellation works somewhat different on Windows platform due
3230       to different mechanism of break signal  propagation.   One  also  might
3231       need to use Ctrl-Break shortcut instead of Ctrl-C.
3232
3233       There are two types of operations that can be cancelled:
3234
3235         - file system operations;
3236
3237         - mounting  with  FUSE  (but  not  unmounting as it can cause loss of
3238           data);
3239
3240         - calls of external applications.
3241
3242       Note that vifm never terminates applications, it  sends  SIGINT  signal
3243       and lets the application quit normally.
3244
3245       When one of set of operations is cancelled (e.g. copying of 5th file of
3246       10 files), further operations are cancelled too.   In  this  case  undo
3247       history will contain only actually performed operations.
3248
3249       Cancelled  operations are indicated by "(cancelled)" suffix appended to
3250       information message on statusbar.
3251
3252       File system operations
3253
3254       Currently the following commands  can  be  cancelled:  :alink,  :chmod,
3255       :chown,  :clone,  :copy,  :delete,  :mkdir,  :move,  :restore,  :rlink,
3256       :touch.  File putting (on p/P key) can be cancelled as well.  It's  not
3257       hard to see that these are mainly long-running operations.
3258
3259       Cancelling  commands when they are repeated for undo/redo operations is
3260       allowed for convenience, but is not recommended  as  further  undo/redo
3261       operations  might  get  blocked  by side-effects of partially cancelled
3262       group of operations.
3263
3264       These commands can't be cancelled: :empty, :rename, :substitute, :tr.
3265
3266       Mounting with FUSE
3267
3268       It's not considered to be an error, so only notification on the  status
3269       bar is shown.
3270
3271       External application calls
3272
3273       Each  of  this  operations  can  be  cancelled: :apropos, :find, :grep,
3274       :locate.
3275

Patterns

3277       :highlight, :filetype, :filextype, :fileviewer commands and  'classify'
3278       option  support globs, regular expressions and mime types to match file
3279       names or their paths.
3280
3281       There are six possible ways to write a single pattern:
3282
3283         1. [!]{comma-separated-name-globs}
3284
3285         2. [!]{{comma-separated-path-globs}}
3286
3287         3. [!]/name-regular-expression/[iI]
3288
3289         4. [!]//path-regular-expression//[iI]
3290
3291         5. [!]<comma-separated-mime-type-globs>
3292
3293         6. undecorated-pattern
3294
3295       First five forms can include leading exclamation mark that negates pat‐
3296       tern matching.
3297
3298       The  last  form is implicitly refers to one of others.  :highlight does
3299       not accept undecorated form, while :filetype, :filextype,  :fileviewer,
3300       :select, :unselect and 'classify' treat it as list of name globs.
3301
3302       Path  patterns receive absolute path of the file that includes its name
3303       component as well.
3304
3305       To combine several patterns (AND them), make sure you're using  one  of
3306       the first five forms and write patterns one after another, like this:
3307         <text/plain>{*.vifm}
3308       Mind that if you make a mistake the whole string will be treated as the
3309       sixth form.
3310
3311       :filetype, :filextype and :fileviewer commands  accept  comma-separated
3312       list of patterns instead of a single pattern, thus effectively handling
3313       OR operation on them:
3314         <text/plain>{*.vifm},<application/pdf>{*.pdf}
3315       Forms that accept comma-separated lists of patterns also  process  them
3316       as lists of alternatives.
3317
3318       Patterns with regular expressions
3319
3320       Regular  expression  patterns  are  case  insensitive  by  default, see
3321       description of commands, which might override default behaviour.
3322
3323       Flags of regular expressions mean the following:
3324         - "i" makes filter case insensitive;
3325         - "I" makes filter case sensitive.  They  can  be  repeated  multiple
3326       times,  but  the later one takes precedence (e.g.  "iiiI" is equivalent
3327       to "I" and "IiIi" is the same as "i").
3328
3329       There are no implicit `^` or `$`, so make sure to specify them  explic‐
3330       itly if the pattern should match the whole name or path.
3331
3332       Patterns with globs
3333
3334       "Globs"  section below provides short overview of globs and some impor‐
3335       tant points that one needs to know about them.
3336
3337       Patterns with mime-types
3338
3339       Mime type matching is essentially globs matching applied to  mime  type
3340       of  a  file instead of its name/path.  Note: mime types aren't detected
3341       on Windows.
3342
3343       Examples
3344
3345       Associate `evince` to  PDF-files  only  inside  `/home/user/downloads/`
3346       directory (excluding its subdirectories):
3347
3348         :filextype //^/home/user/downloads/[^/]*.pdf$// evince %f
3349
3350

Globs

3352       Globs are always case insensitive as it makes sense in general case.
3353
3354       `*`,  `?`,  `[`  and `]` are treated as special symbols in the pattern.
3355       E.g.
3356
3357         :filetype * less %c
3358
3359       matches all files.  One can use character classes for escaping, so
3360
3361         :filetype [*] less %c
3362
3363       matches only one file name, the one which contains only  asterisk  sym‐
3364       bol.
3365
3366       `*`  means  any number of any characters (possibly an empty substring),
3367       with one exception: asterisk at the pattern beginning doesn't match dot
3368       in the first position.  E.g.
3369
3370         :fileviewer *.zip,*.jar zip -sf %c
3371
3372       associates  using  of  `zip` program to preview all files with `zip` or
3373       `jar` extensions as listing of their content, but `.file.zip` won't  be
3374       matched.
3375
3376       `?` means any character at this position.  E.g.
3377
3378         :fileviewer ?.out file %c
3379
3380       calls `file` tool for all files which have exactly one character before
3381       their extension (e.g. a.out, b.out).
3382
3383       Square brackets designate character class, which means that whole char‐
3384       acter  class matches against any of characters listed in it.  For exam‐
3385       ple
3386
3387         :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c
3388
3389       makes vifm call `highlight` program to colorize source and header files
3390       in C language for a 256-color terminal.  Equal command would be
3391
3392         :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c
3393
3394
3395       Inside square brackets `^` or `!` can be used for symbol class negotia‐
3396       tion and the `-` symbol to set a range.   `^`  and  `!`  should  appear
3397       right after the opening square bracket.  For example
3398
3399         :filetype *.[!d]/ inspect_dir
3400
3401       associates `inspect_dir` as additional handler for all directories that
3402       have one character extension unless it's "d" letter.  And
3403
3404         :filetype [0-9].jpg sxiv
3405
3406       associates `sxiv` picture viewer only for JPEG-files that contain  sin‐
3407       gle digit in their name.
3408

:set options

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

Mappings

4582       Map arguments
4583
4584       LHS of mappings can be preceded by arguments which take the form
4585       of special sequences:
4586
4587       <silent>
4588              Postpone UI updates until RHS is completely processed.
4589
4590       <wait> In  case  of builtin mapping causing conflict for a user-
4591              defined mapping (e.g., `t` builtin to a  partially  typed
4592              `ta`  user-defined  mapping),  ignore the builtin mapping
4593              and wait for input indefinitely as opposed to default be‐
4594              haviour  of  triggering the builtin mapping after a delay
4595              defined by 'timeoutlen'.  Example:
4596
4597                nnoremap <wait> tw :set wrap!<cr>
4598                nnoremap <wait> tn :set number!<cr>
4599                nnoremap <wait> tr :set relativenumber!<cr>
4600
4601       Special sequences
4602
4603       Since it's not easy to enter special characters there  are  sev‐
4604       eral  special sequences that can be used in place of them.  They
4605       are:
4606
4607       <cr>   Enter key.
4608
4609       <esc>  Escape key.
4610
4611       <space>
4612              Space key.
4613
4614       <lt>   Less-than character (<).
4615
4616       <nop>  provides a way to disable a mapping  (by  mapping  it  to
4617              <nop>).
4618
4619       <bs>   Backspace key (see key conflict description below).
4620
4621       <tab> <s-tab>
4622              Tabulation and Shift+Tabulation keys.
4623
4624       <home> <end>
4625              Home/End.
4626
4627       <left> <right> <up> <down>
4628              Arrow keys.
4629
4630       <pageup> <pagedown>
4631              PageUp/PageDown.
4632
4633       <del> <delete>
4634              Delete key.  <del> and <delete> mean different codes, but
4635              <delete> is more common.
4636
4637       <insert>
4638              Insert key.
4639
4640       <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_>
4641              Control + some key (see key conflict description below).
4642
4643       <c-@>  only for *nix
4644              Control + Space.
4645
4646       <a-a>,<a-b>,...,<a-z>
4647              <m-a>,<m-b>,...,<m-z> Alt + some key.
4648
4649       <a-c-a>,<a-c-b>,...,<a-c-z>
4650              <m-c-a>,<m-c-b>,...,<m-c-z> only for *nix
4651              Alt + Ctrl + some key.
4652
4653       <f0> - <f63>
4654              Functional keys.
4655
4656       <c-f1> - <c-f12>
4657              only for MS-Windows
4658              functional keys with Control key pressed.
4659
4660       <a-f1> - <a-f12>
4661              only for MS-Windows
4662              functional keys with Alt key pressed.
4663
4664       <s-f1> - <s-f12>
4665              only for MS-Windows
4666              functional keys with Shift key pressed.
4667
4668       Note that due to the way terminals process their input,  several
4669       keyboard keys might be mapped to single key code, for example:
4670
4671         - <cr> and <c-m>;
4672
4673         - <tab> and <c-i>;
4674
4675         - <c-h> and <bs>;
4676
4677         - etc.
4678
4679       Most  of  the time they are defined consistently and don't cause
4680       surprises, but <c-h> and <bs> are treated differently in differ‐
4681       ent  environments (although they match each other all the time),
4682       that's why they correspond to different keys in vifm.  As a con‐
4683       sequence, if you map <c-h> or <bs> be sure to repeat the mapping
4684       with the other one so that it works in all environments.  Alter‐
4685       natively,  provide  your  mapping in one form and add one of the
4686       following:
4687
4688         " if mappings with <c-h> in the LHS work
4689         map <c-h> <bs>
4690         " if mappings with <bs> in the LHS work
4691         map <bs> <c-h>
4692
4693       Whitespace
4694
4695       vifm removes whitespace characters at the beginning and  end  of
4696       commands.   That's why you may want to use <space> at the end of
4697       rhs in mappings.  For example:
4698
4699         cmap <f1> man<space>
4700
4701       will put "man " in line when you hit the <f1> key in the command
4702       line mode.
4703

Expression syntax

4705       Supported expressions is a subset of what VimL provides.
4706
4707       Expression syntax summary, from least to most significant:
4708
4709       expr1      expr2
4710                  expr2 || expr2 ..       logical OR
4711
4712       expr2      expr3
4713                  expr3 && expr3 ..       logical AND
4714
4715       expr3      expr4
4716                  expr4 == expr4          equal
4717                  expr4 != expr4          not equal
4718                  expr4 >  expr4          greater than
4719                  expr4 >= expr4          greater than or equal
4720                  expr4 <  expr4          smaller than
4721                  expr4 <= expr4          smaller than or equal
4722
4723       expr4      expr5
4724                  expr5 + expr5 ..        number addition
4725                  expr5 - expr5 ..        number subtraction
4726
4727       expr5      expr6
4728                  expr6 . expr6 ..        string concatenation
4729
4730       expr6      expr7
4731                  - expr6                 unary minus
4732                  + expr6                 unary plus
4733                  ! expr6                 logical NOT
4734
4735       expr7      number                  number constant
4736                  "string"                string constant, \ is special
4737                  'string'                string constant, ' is doubled
4738                  &option                 option value
4739                  $VAR                    environment variable
4740                  v:var                   builtin variable
4741                  function(expr1, ...)    function call
4742                  (expr1)                 nested expression
4743
4744       ".." indicates that the operations in this level can be concate‐
4745       nated.
4746
4747       expr1
4748       -----
4749       expr2 || expr2
4750
4751       Arguments are converted to numbers before evaluation.
4752
4753       Result is non-zero if at least one of arguments is non-zero.
4754
4755       It's right associative and with short-circuiting, so sub-expres‐
4756       sions  are  evaluated  from  left to right until result of whole
4757       expression is determined (i.e., until first non-zero) or end  of
4758       the expression.
4759
4760       expr2
4761       -----
4762       expr3 && expr3
4763
4764       Arguments are converted to numbers before evaluation.
4765
4766       Result is non-zero only if both arguments are non-zero.
4767
4768       It's right associative and with short-circuiting, so sub-expres‐
4769       sions are evaluated from left to right  until  result  of  whole
4770       expression  is determined (i.e., until first zero) or end of the
4771       expression.
4772
4773       expr3
4774       -----
4775       expr4 {cmp} expr4
4776
4777       Compare two expr4 expressions, resulting in a 0 if it  evaluates
4778       to false or 1 if it evaluates to true.
4779
4780       equal                   ==
4781       not equal               !=
4782       greater than            >
4783       greater than or equal   >=
4784       smaller than            <
4785       smaller than or equal   <=
4786
4787       Examples:
4788
4789         'a' ==  'a'         == 1
4790         'a' >   'b'         == 1
4791         'a' ==  'b'         == 0
4792         '2' >   'b'         == 0
4793          2  >   'b'         == 1
4794          2  >   '1b'        == 1
4795          2  >   '9b'        == 0
4796         -1  == -'1'         == 1
4797          0  ==  '--1'       == 1
4798
4799       expr4
4800       -----
4801       expr5 + expr5 ..     number addition expr5 - expr5 ..     number
4802       subtraction
4803
4804       Examples:
4805
4806         1 + 3 - 3          == 1
4807         1 + '2'            == 3
4808
4809       expr5
4810       -----
4811       expr6 . expr6 ..     string concatenation
4812
4813       Examples:
4814
4815         'a' . 'b'           == 'ab'
4816         'aaa' . '' . 'c'    == 'aaac'
4817
4818       expr6
4819       -----
4820
4821       - expr6              unary minus
4822       + expr6              unary plus
4823       ! expr6              logical NOT
4824
4825       For '-' the sign of the number is changed.
4826       For '+' the number is unchanged.
4827       For '!' non-zero becomes zero, zero becomes one.
4828
4829       A String will be converted to a Number first.
4830
4831       These operations can be repeated and mixed.  Examples:
4832
4833          --9                == 9
4834         ---9                == -9
4835          -+9                == 9
4836          !-9                == 0
4837          !''                == 1
4838         !'x'                == 0
4839          !!9                == 1
4840
4841       expr7
4842       -----
4843
4844       number               number constant
4845       -----
4846
4847       Decimal number.  Examples:
4848
4849         0                   == 0
4850         0000                == 0
4851         01                  == 1
4852         123                 == 123
4853         10000               == 10000
4854
4855       string
4856       ------
4857       "string"             string constant
4858
4859       Note that double quotes are used.
4860
4861       A string constant accepts these special characters:
4862         \b      backspace <bs>
4863         \e      escape <esc>
4864         \n      newline
4865         \r      return <cr>
4866         \t      tab <tab>
4867         \\      backslash
4868         \"      double quote
4869
4870       Examples:
4871
4872         "\"Hello,\tWorld!\""
4873         "Hi,\nthere!"
4874
4875       literal-string
4876       --------------
4877       'string'             string constant
4878
4879       Note that single quotes are used.
4880
4881       This string is taken as it is.  No backslashes  are  removed  or
4882       have  a  special meaning.  The only exception is that two quotes
4883       stand for one quote.
4884
4885       Examples:
4886
4887         'All\slashes\are\saved.'
4888         'This string contains doubled single quotes ''here'''
4889
4890       option
4891       ------
4892       &option               option value (local one is  preferred,  if
4893       exists)  &g:option              global  option  value  &l:option
4894       local option value
4895
4896       Examples:
4897
4898         echo 'Terminal size: '.&columns.'x'.&lines
4899         if &columns > 100
4900
4901       Any valid option name can be used here (note that "all" in ":set
4902       all" is a pseudo option).  See ":set options" section above.
4903
4904       environment variable
4905       --------------------
4906       $VAR                  environment variable
4907
4908       The  String  value  of any environment variable.  When it is not
4909       defined, the result is an empty string.
4910
4911       Examples:
4912
4913         'This is my $PATH env: ' . $PATH
4914         'vifmrc at ' . $MYVIFMRC . ' is used.'
4915
4916       builtin variable
4917       --------------------
4918       v:var                 builtin variable
4919
4920       Information exposed by vifm for use in scripting.
4921
4922       v:count
4923         count passed to : command, 0 by default.  Can be used in  map‐
4924       pings to pass
4925         count to a different command.
4926       v:count1
4927         same as v:count, but 1 by default.
4928       v:servername
4929         See below.
4930
4931       function call
4932       -------------
4933       function(expr1, ...)  function call
4934
4935       See "Functions" section below.
4936
4937       Examples:
4938
4939         "'" . filetype('.') . "'"
4940         filetype('.') == 'reg'
4941
4942       expression nesting
4943       ------------------
4944       (expr1)               nested expression
4945
4946       Groups  any  other  expression of arbitrary complexity enforcing
4947       order in which operators are applied.
4948
4949

Functions

4951       USAGE                 RESULT      DESCRIPTION
4952
4953       chooseopt({opt})       String       Queries  choose   parameters
4954       passed on startup.
4955       executable({expr})     Integer     Checks whether {expr} command
4956       available.
4957       expand({expr})        String      Expands  special  keywords  in
4958       {expr}.
4959       extcached({cache}, {path}, {extcmd})
4960                             String       Caches output of {extcmd} per
4961       {cache} and
4962                                         {path} combination.
4963       filetype({fnum} [, {resolve}])
4964                             String      Returns file type  from  posi‐
4965       tion.
4966       fnameescape({expr})    String       Escapes  {expr} for use in a
4967       :command.
4968       getpanetype()         String      Returns type of current pane.
4969       has({property})       Integer     Checks  whether  instance  has
4970       {property}.
4971       layoutis({type})       Integer      Checks  whether layout is of
4972       type {type}.
4973       paneisat({loc})       Integer     Checks whether current pane is
4974       at {loc}.
4975       system({command})      String       Executes  shell  command and
4976       returns its output.
4977       tabpagenr([{arg}])    Integer     Returns number of  current  or
4978       last tab.
4979       term({command})        String      Like system(), but for inter‐
4980       active commands.
4981
4982       chooseopt({opt})
4983
4984       Retrieves values of options related to file choosing.  {opt} can
4985       be one of:
4986           files       returns  argument  of  --choose-files  or  empty
4987       string
4988           dir        returns argument of --choose-dir or empty string
4989           cmd        returns argument of --on-choose or empty string
4990           delimiter  returns argument of --delimiter  or  the  default
4991       one (\n)
4992
4993       executable({expr})
4994
4995       If {expr} is absolute or relative path, checks whether path des‐
4996       tination exists and refers to an  executable,  otherwise  checks
4997       whether command named {expr} is present in directories listed in
4998       $PATH.  Checks for various  executable  extensions  on  Windows.
4999       Returns boolean value describing result of the check.
5000
5001       Example:
5002
5003         " use custom default viewer script if it's available and installed
5004         " in predefined system directory, otherwise try to find it elsewhere
5005         if executable('/usr/local/bin/defviewer')
5006             fileview * /usr/local/bin/defviewer %c
5007         else
5008             if executable('defviewer')
5009                 fileview * defviewer %c
5010             endif
5011         endif
5012
5013       expand({expr})
5014
5015       Expands  environment  variables  and  macros in {expr} just like
5016       it's done for command-line commands.   Returns  a  string.   See
5017       "Command macros" section above.
5018
5019       Examples:
5020
5021         " percent sign
5022         :echo expand('%%')
5023         " the last part of directory name of the other pane
5024         :echo expand('%D:t')
5025         " $PATH environment variable (same as `:echo $PATH`)
5026         :echo expand('$PATH')
5027
5028       extcached({cache}, {path}, {extcmd})
5029
5030       Caches value of {extcmd} external command automatically updating
5031       it as necessary based on monitoring change  date  of  a  {path}.
5032       The  cache is invalidated when file or its meta-data is updated.
5033       A single path can have multiple caches associated with it.
5034
5035       {path} value is normalized, but  symbolic  links  in  it  aren't
5036       resolved.
5037
5038       Example:
5039
5040         " display number and size of blocks actually used by a file or directory
5041         set statusline+=" Uses: %{ extcached('uses',
5042                                             expand('%c'),
5043                                             expand('stat --format=%%bx%%B %c')) }"
5044
5045       filetype({fnum} [, {resolve}])
5046
5047       The result is a string, which represents file type and is one of
5048       the list:
5049           exe     executables
5050           reg     regular files
5051           link    symbolic links
5052           broken  broken symbolic links (appears only when resolving)
5053           dir     directories
5054           char    character devices
5055           block   block devices
5056           fifo    pipes
5057           sock    *nix domain sockets
5058           ?       unknown file type (should not normally appear)
5059
5060       The result can also be an empty string in case of invalid  argu‐
5061       ment.
5062
5063       Parameter {fnum} can have following values:
5064           -  '.'  to  get  type of file under the cursor in the active
5065       pane
5066           - numerical value base 1 to get type of  file  on  specified
5067       line number
5068
5069       Optional  parameter {resolve} is treated as a boolean and speci‐
5070       fies whether symbolic links should be resolved.
5071
5072       fnameescape({expr})
5073
5074       Escapes parameter to make it suitable for use as an argument  of
5075       a  :command.   List  of  escaped characters includes %, which is
5076       doubled.
5077
5078       Usage example:
5079
5080         " navigate to most recently modified file in current directory
5081         execute 'goto' fnameescape(system('ls -t | head -1'))
5082
5083       getpanetype()
5084
5085       Retrieves string describing  type  of  current  pane.   Possible
5086       return values:
5087           regular      regular file listing of some directory
5088           custom       custom file list (%u)
5089           very-custom  very custom file list (%U)
5090           tree         tree view
5091
5092       has({property})
5093
5094       Allows examining internal parameters from scripts to e.g. figure
5095       out environment in which application is running.  Returns  1  if
5096       property  is  true/present,  otherwise 0 is returned.  Currently
5097       the following properties are supported (anything else will yield
5098       0):
5099           unix  runs in *nix-like environment (including Cygwin)
5100           win   runs on Windows
5101
5102       Usage example:
5103
5104         " skip user/group on Windows
5105         if !has('win')
5106             let $RIGHTS = '%10u:%-7g '
5107         endif
5108
5109         execute 'set' 'statusline="  %t%= %A '.$RIGHTS.'%15E %20d  "'
5110
5111       layoutis({type})
5112
5113       Checks  whether current interface layout is {type} or not, where
5114       {type} can be:
5115           only    single-pane mode
5116           split   double-pane mode (either vertical or horizon split)
5117           vsplit  vertical split (left and right panes)
5118           hsplit  horizontal split (top and bottom panes)
5119
5120       Usage example:
5121
5122         " automatically split vertically before enabling preview
5123         :nnoremap w :if layoutis('only') | vsplit | endif | view!<cr>
5124
5125       paneisat({loc})
5126
5127       Checks whether position of active pane in current layout matches
5128       one of the following locations:
5129           top     pane reaches top border
5130           bottom  pane reaches bottom border
5131           left    pane reaches left border
5132           right   pane reaches right border
5133
5134       system({command})
5135
5136       Runs  the  command in shell and returns its output (joined stan‐
5137       dard output and standard error streams).  All  trailing  newline
5138       characters  are stripped to allow easy appending to command out‐
5139       put.  Ctrl-C should interrupt the command.
5140
5141       Use this function to consume output of  external  commands  that
5142       don't  require  user interaction and term() for interactive com‐
5143       mands that make use of terminal  and  are  capable  of  handling
5144       stream redirection.
5145
5146       Usage example:
5147
5148         " command to enter .git/ directory of git-repository (when ran inside one)
5149         command! cdgit :execute 'cd' system('git rev-parse --git-dir')
5150
5151       tabpagenr([{arg}])
5152
5153       When called without arguments returns number of current tab page
5154       base one.
5155
5156       When called with "$" as an argument returns number of  the  last
5157       tab page base one, which is the same as number of tabs.
5158
5159       term({command})
5160
5161       Same as system() function, but user interface is shutdown during
5162       the execution of the command, which  makes  sure  that  external
5163       interactive  applications  won't affect the way terminal is used
5164       by vifm.
5165
5166       Usage example:
5167
5168         " command to change directory by picking it via fzf
5169         command! fzfcd :execute 'cd' "'".term('find -type d | fzf 2> /dev/tty')."'"
5170
5172       When navigating to some path from a menu there is  a  difference
5173       in  end location depending on whether path has trailing slash or
5174       not.  Files normally don't  have  trailing  slashes  so  "file/"
5175       won't  work  and one can only navigate to a file anyway.  On the
5176       other hand with directories there are two options: navigate to a
5177       directory  or  inside of it.  To allow both use cases, the first
5178       one is used on paths like "dir" and the second one for "dir/".
5179
5180       Commands
5181
5182       :range navigate to a menu line.
5183
5184       :exi[t][!] :q[uit][!] :x[it][!]
5185              leave menu mode.
5186
5187       :noh[lsearch]
5188              reset search match highlighting.
5189
5190       :w[rite] {dest}
5191              write all menu lines into file specified by {dest}.
5192
5193       General
5194
5195       j, Ctrl-N - move down.
5196       k, Ctrl-P - move up.
5197       Enter, l - select and exit the menu.
5198       Ctrl-L - redraw the menu.
5199
5200       Escape, Ctrl-C, ZZ, ZQ, q - quit.
5201
5202       In all menus
5203
5204       The following set of keys has the  same  meaning  as  in  normal
5205       mode.
5206
5207       Ctrl-B, Ctrl-F
5208       Ctrl-D, Ctrl-U
5209       Ctrl-E, Ctrl-Y
5210       /, ?
5211       n, N
5212       [count]G, [count]gg
5213       H, M, L
5214       zb, zt, zz
5215
5216       zh - scroll menu items [count] characters to the right.
5217       zl - scroll menu items [count] characters to the left.
5218       zH  -  scroll  menu items half of screen width characters to the
5219       right.
5220       zL - scroll menu items half of screen width  characters  to  the
5221       left.
5222
5223       :  -  enter command line mode for menus (currently only :exi[t],
5224       :q[uit], :x[it] and :{range} are supported).
5225
5226       b - interpret content of the menu as list of paths and use it to
5227       create  custom  view  in  place  of previously active pane.  See
5228       "Custom views" section below.
5229       B - same as above, but creates unsorted view.
5230
5231       v - load menu content into quickfix list of the editor (Vim com‐
5232       patible  by assumption) or if list doesn't have separators after
5233       file names (colons) open each line as a file name.
5234
5235
5236       Below is description of  additional  commands  and  reaction  on
5237       selection in some menus and dialogs.
5238
5239       Apropos menu
5240
5241       Selecting  menu  item  runs man on a given topic.  Menu won't be
5242       closed automatically to allow view several pages one by one.
5243
5244       Command-line mode abbreviations menu
5245
5246       Type dd on an abbreviation to remove it.
5247
5248       c leaves menu preserving file selection and  inserts  right-hand
5249       side of selected command into command-line.
5250
5251       Color scheme menu
5252
5253       Selecting  name  of a color scheme applies it the same way as if
5254       ":colorscheme <name>" was executed on the command-line.
5255
5256       Commands menu
5257
5258       Selecting command executes it with empty arguments (%a).
5259
5260       dd on a command to remove.
5261
5262       Marks menu
5263
5264       Selecting mark navigates to it.
5265
5266       dd on a mark to remove it.
5267
5268       Bookmarks menu
5269
5270       Selecting a bookmark navigates to it.
5271
5272       Type dd on a bookmark to remove it.
5273
5274       gf and e also work to make it more convenient to bookmark files.
5275
5276       Trash (:lstrash) menu
5277
5278       r on a file name to restore it from trash.
5279
5280       dd deletes file under the cursor.
5281
5282       Trashes menu
5283
5284       dd empties selected trash in background.
5285
5286       Directory history and Trashes menus
5287
5288       Selecting directory name will change directory  of  the  current
5289       view as if :cd command was used.
5290
5291       Directory stack menu
5292
5293       Selecting  directory  name  will  rotate  stack  to put selected
5294       directory pair at the top of the stack.
5295
5296       Filetype menu
5297
5298       Commands from vifmrc or  typed  in  command-line  are  displayed
5299       above empty line.  All commands below empty line are from .desk‐
5300       top files.
5301
5302       c leaves menu preserving  file  selection  and  inserts  command
5303       after :! in command-line mode.
5304
5305       Grep,  find, locate, bookmarks and user menu with navigation (%M
5306       macro)
5307
5308       gf - navigate previously active view to currently selected item.
5309       Leaves  menu  mode except for grep menu.  Pressing Enter key has
5310       the same effect.
5311
5312       e - open selected path in the editor, stays in menu mode.
5313
5314       c - leave menu preserving file selection and  insert  file  name
5315       after :! in command-line mode.
5316
5317       User menu without navigation (%m macro)
5318
5319       c  leaves  menu preserving file selection and inserts whole line
5320       after :! in command-line mode.
5321
5322       Grep menu
5323
5324       Selecting file (via Enter or l key) opens it in  editor  set  by
5325       'vicmd'  at  given  line number.  Menu won't be closed automati‐
5326       cally to allow viewing more than one result.
5327
5328       See above for "gf" and "e" keys description.
5329
5330       Command-line history menu
5331
5332       Selecting an item executes it as  command-line  command,  search
5333       query or local filter.
5334
5335       c  leaves  menu  preserving file selection and inserts line into
5336       command-line of appropriate kind.
5337
5338       Volumes menu
5339
5340       Selecting a drive navigates previously active pane to  the  root
5341       of that drive.
5342
5343       Fileinfo dialog
5344
5345       Enter, q - close dialog
5346
5347       Sort dialog
5348
5349       h, Space - switch ascending/descending.
5350       q - close dialog
5351
5352       One shortcut per sorting key (see the dialog).
5353
5354       Attributes (permissions or properties) dialog
5355
5356       h, Space - check/uncheck.
5357       q - close dialog
5358
5359       Item states:
5360
5361       - * - checked flag.
5362
5363       - X - means that it has different value for files in selection.
5364
5365       - d (*nix only) - (only for execute flags) means u-x+X, g-x+X or
5366         o-x+X argument for the chmod program.  If you're not on  OS  X
5367         and  want to remove execute permission bit from all files, but
5368         preserve it for directories, set all execute flags to 'd'  and
5369         check 'Set Recursively' flag.
5370
5371       Jobs menu
5372
5373       dd  requests cancellation of job under cursor.  The job won't be
5374       removed from the list, but marked as being cancelled (if cancel‐
5375       lation  was  successfully  requested).  A message will pop up if
5376       the job has already stopped.  Note that  on  Windows  cancelling
5377       external programs like this might not work, because their parent
5378       shell doesn't have any windows.
5379
5380       e key displays errors of selected job  if  any  were  collected.
5381       They  are  displayed in a new menu, but you can get back to jobs
5382       menu by pressing h.
5383
5384
5385       Undolist menu
5386
5387       r - reset undo position to group under the cursor.
5388
5389
5390       Media menu
5391
5392       Selecting a device either mounts (if it wasn't mounted  yet)  or
5393       navigates to its first mount point.
5394
5395       Selecting a mount point navigates to it.
5396
5397       Selecting "not mounted" line causes mounting.
5398
5399       Selecting any other line does nothing.
5400
5401       r - reload the list.
5402
5403       m  -  mount/unmount device (cursor should be positioned on lines
5404       under device information).
5405
5406       [ - put cursor on the previous device.
5407
5408       ] - put cursor on the next device.
5409
5410

Custom views

5412       Definition
5413
5414       Normally file views contain list of files from a  single  direc‐
5415       tory,  but  sometimes  it's useful to populate them with list of
5416       files that do not belong to the same directory,  which  is  what
5417       custom views are for.
5418
5419       Presentation
5420
5421       Custom  views are still related to directory they were in before
5422       custom list was loaded.  Path to that directory (original direc‐
5423       tory) can be seen in the title of a custom view.
5424
5425       Files  in  same  directory  have  to  be named differently, this
5426       doesn't hold for custom views thus seeing just file names  might
5427       be  rather confusing.  In order to give an idea where files come
5428       from and when possible, relative paths to original directory  of
5429       the view is displayed, otherwise full path is used instead.
5430
5431       Custom views normally don't contain any inexistent files.
5432
5433       Navigation
5434
5435       Custom views have some differences related to navigation in reg‐
5436       ular views.
5437
5438       gf - acts similar to gf on symbolic links and navigates  to  the
5439       file at its real
5440            location.
5441
5442       h  -  go to closes parent node in tree view, otherwise return to
5443       the original directory.
5444
5445       gh - return to the original directory.
5446
5447       Opening ".." entry also causes return to the original directory.
5448
5449       History
5450
5451       Custom list exists only while it's visible, once left one  can't
5452       return to it, so there is no appearances of it in any history.
5453
5454       Filters
5455
5456       Only  local  filter affects content of the view.  This is inten‐
5457       tional, presumably if one loads list, precisely that list should
5458       be displayed (except for inexistent paths, which are ignored).
5459
5460       Search
5461
5462       Although  directory  names  are visible in listing, they are not
5463       searchable.  Only file names are taken into  account  (might  be
5464       changed  in  future,  searching  whole lines seems quite reason‐
5465       able).
5466
5467       Sorting
5468
5469       Contrary to search sorting by name works on whole  visible  part
5470       of file path.
5471
5472       Highlight
5473
5474       Whole  file name is highlighted as one entity, even if there are
5475       directory elements.
5476
5477       Updates
5478
5479       Reloads can occur, though they are not automatic  due  to  files
5480       being scattered among different places.  On a reload, inexistent
5481       files are removed and meta-data of all other files is updated.
5482
5483       Once custom view forgets about the file, it won't  add  it  back
5484       even  if  it's  created  again.   So  not seeing file previously
5485       affected by an operation, which was undone is normal.
5486
5487       Operations
5488
5489       All operations that add files are forbidden  for  custom  views.
5490       For  example,  moving/copying/putting  files  into a custom view
5491       doesn't work, because it doesn't make much sense.
5492
5493       On the other hand, operations that use files of a custom view as
5494       a  source  (e.g. yanking, copying, moving file from custom view,
5495       deletion) and operations that modify names are all allowed.
5496

Compare views

5498       Kinds
5499
5500       :compare can produce four different results depending  on  argu‐
5501       ments:
5502        - single compare view (ofone and either listall or listdups);
5503        - single custom view (ofone and listunique);
5504        - two compare views (ofboth and either listall or listdups);
5505        - two custom views (ofboth and listunique).
5506
5507       The  first  two  display  files  of  one file system tree.  Here
5508       duplicates are files that have at least one  copy  in  the  same
5509       tree.   The  other  two kinds of operation compare two trees, in
5510       which duplicates are files that are found in both trees.
5511
5512       Lists of unique files are  presented  in  custom  views  because
5513       there  is no file grouping to preserve as all file ids are guar‐
5514       anteed to be distinct.
5515
5516       Creation
5517
5518       Arguments passed to :compare form four categories each with  its
5519       own  prefix and is responsible for particular property of opera‐
5520       tion.
5521
5522       Which files to compare:
5523        - ofboth - compares files of two panes against each other;
5524        - ofone  - compares files of the same directory.
5525
5526       How files are compared:
5527        - byname     - by their name only;
5528        - bysize     - only by their size;
5529        - bycontents - by combination of size and  hash  of  file  con‐
5530       tents.
5531
5532       Which files to display:
5533        - listall    - all files;
5534        - listunique - unique files only;
5535        - listdups   - only duplicated files.
5536
5537       How results are grouped (has no effect if "ofone" specified):
5538        -  groupids    - files considered identical are always adjacent
5539       in output;
5540        - grouppaths - file system ordering  is  preferred  (this  also
5541       enables displaying identically named files as mismatches).
5542
5543       Which files to omit:
5544        - skipempty - ignore empty files.
5545
5546       Each  argument  can  appear multiple times, the rightmost one of
5547       the group is  considered.   Arguments  alter  default  behaviour
5548       instead of substituting it.
5549
5550       Examples
5551
5552       The defaults corresponds to probably the most common use case of
5553       comparing files in two trees with grouping by paths, so the fol‐
5554       lowing are equivalent:
5555
5556         :compare
5557         :compare bycontents grouppaths
5558         :compare bycontents listall ofboth grouppaths
5559
5560       Another use case is to find duplicates in the current sub-tree:
5561
5562         :compare listdups ofone
5563
5564       The following command lists files that are unique to each pane:
5565
5566         :compare listunique
5567
5568       Look
5569
5570       The  view can't switch to ls-like view as it's unable to display
5571       diff-like data.
5572
5573       Comparison views have second column displaying id of  the  file,
5574       files with same id are considered to be equal.  The view columns
5575       configuration is predefined.
5576
5577       Behaviour
5578
5579       When two views are being compared against each other the follow‐
5580       ing changes to the regular behaviour apply:
5581        -  views  are  scrolled  synchronously  (as if 'scrollbind' was
5582       set);
5583        - views' cursors are synchronized;
5584        - local filtering is disabled (its results wouldn't be meaning‐
5585       ful);
5586        -  zd  excludes  groups  of adjacent identical files, 1zd gives
5587       usual behaviour;
5588        - sorting is permanently disabled (ordering is fixed);
5589        - removed files hide their counter pairs;
5590        - exiting one of the views terminates the other immediately;
5591        - renaming files isn't blocked, but isn't  taken  into  account
5592       and might require regeneration of comparison;
5593        -  entries which indicate absence of equivalent file have empty
5594       names and can be matched as such;
5595        - when unique files of both views are listed custom  views  can
5596       be empty, this absence of unique files is stated clearly.
5597
5598       One compare view has similar properties (those that are applica‐
5599       ble for single pane).
5600
5601       Files are gathered in this way:
5602        - recursively starting at current location of the view;
5603        - dot files are excluded if view hides them at  the  moment  of
5604       comparison;
5605        - directories are not taken into account;
5606        - symbolic links to directories are ignored.
5607

Startup

5609       On  startup vifm determines several variables that are used dur‐
5610       ing the session.  They are determined in the order  they  appear
5611       below.
5612
5613       On  *nix  systems  $HOME is normally present and used as is.  On
5614       Windows systems vifm tries to find correct home directory in the
5615       following order:
5616        - $HOME variable;
5617        - $USERPROFILE variable (on Windows only);
5618        -  a combination of $HOMEDRIVE and $HOMEPATH variables (on Win‐
5619       dows only).
5620
5621       vifm tries to find correct configuration directory  by  checking
5622       the following places:
5623        - $VIFM variable;
5624        - parent directory of the executable file (on Windows only);
5625        - $HOME/.vifm directory;
5626        - $APPDATA/Vifm directory (on Windows only);
5627        - $XDG_CONFIG_HOME/vifm directory;
5628        - $HOME/.config/vifm directory.
5629
5630       vifm  tries  to  find correct configuration file by checking the
5631       following places:
5632        - $MYVIFMRC variable;
5633        - vifmrc in parent directory of the executable file (on Windows
5634       only);
5635        - $VIFM/vifmrc file.
5636

Configure

5638       See  "Startup"  section  above for the explanations on $VIFM and
5639       $MYVIFMRC.
5640
5641       The vifmrc file contains commands that will be executed on  vifm
5642       startup.   There  are  two such files: global and local.  Global
5643       one  is  at  {prefix}/etc/vifm/vifmrc,  see  $MYVIFMRC  variable
5644       description  for the search algorithm used to find local vifmrc.
5645       Global vifmrc is loaded before the local one, so that the  later
5646       one can redefine anything configured globally.
5647
5648       Use  vifmrc  to  set  settings, mappings, filetypes etc.  To use
5649       multi line commands precede each next line with a slash  (white‐
5650       space  before slash is ignored, but all spaces at the end of the
5651       lines are saved).  For example:
5652
5653         set
5654             \smartcase
5655
5656       equals "setsmartcase".  When
5657
5658         set<space here>
5659             \ smartcase
5660
5661       equals "set  smartcase".
5662
5663       The $VIFM/vifminfo file contains session settings.  You may edit
5664       it  by  hand to change the settings, but it's not recommended to
5665       do that, edit vifmrc instead.  You  can  control  what  settings
5666       will  be  saved  in vifminfo by setting 'vifminfo' option.  Vifm
5667       always writes this file on  exit  unless  'vifminfo'  option  is
5668       empty.   Marks, bookmarks, commands, histories, filetypes, file‐
5669       viewers and registers in the file are merged with vifm  configu‐
5670       ration (which has bigger priority).
5671
5672       Generally,  runtime  configuration  has  bigger  priority during
5673       merging, but there are some exceptions:
5674
5675         - directory stack stored in the file is not overwritten unless
5676           something is changed in vifm session that performs merge;
5677
5678         - each  mark  or  bookmark is marked with a timestamp, so that
5679           newer value is not overwritten by older one, thus no  matter
5680           from where it comes, the newer one wins.
5681
5682       The  $VIFM/scripts  directory  can  contain shell scripts.  vifm
5683       modifies its PATH environment variable to  let  user  run  those
5684       scripts without specifying full path.  All subdirectories of the
5685       $VIFM/scripts will be added to PATH too.  Script in a  subdirec‐
5686       tory overlaps script with the same name in all its parent direc‐
5687       tories.
5688
5689       The $VIFM/colors/ and {prefix}/etc/vifm/colors/ directories con‐
5690       tain  color  schemes.   Available  color schemes are searched in
5691       that order, so on name conflict the one in $VIFM/colors/ wins.
5692
5693       Each color scheme should have ".vifm"  extension.   This  wasn't
5694       the  case  before  and for this reason the following rules apply
5695       during lookup:
5696
5697         - if there is no file with .vifm extension, all regular  files
5698           are listed;
5699
5700         - otherwise  only  files with .vifm extension are listed (with
5701           the extension being truncated).
5702

Automatic FUSE mounts

5704       vifm has a builtin support of automated FUSE file system mounts.
5705       It  is implemented using file associations mechanism.  To enable
5706       automated mounts, one needs to use a specially formatted program
5707       line  in  filetype  or  filextype  commands.   These use special
5708       macros, which differ from macros in commands unrelated to  FUSE.
5709       Currently three formats are supported:
5710
5711       1) FUSE_MOUNT This format should be used in case when all infor‐
5712       mation needed for mounting all files of a particular type is the
5713       same.   E.g.  mounting  of tar files don't require any file spe‐
5714       cific options.
5715
5716       Format line:
5717         FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND]
5718
5719       Example filetype command:
5720
5721         :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
5722
5723       2) FUSE_MOUNT2 This format allows one to use specially formatted
5724       files  to  perform  mounting and is useful for mounting remotes,
5725       for example remote file systems over ftp or ssh.
5726
5727       Format line:
5728         FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]
5729
5730       Example filetype command:
5731
5732         :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
5733
5734       Example file content:
5735
5736         root@127.0.0.1:/
5737
5738       3) FUSE_MOUNT3
5739
5740       This format is equivalent to FUSE_MOUNT, but  omits  unmounting.
5741       It  is useful for cases, when unmounting isn't needed, like when
5742       using AVFS.
5743
5744       Example :filetype command:
5745
5746         :filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz,*.deb
5747              \ {Mount with avfs}
5748              \ FUSE_MOUNT3|mount-avfs %DESTINATION_DIR %SOURCE_FILE
5749
5750       Example `mount-avfs` helper script:
5751
5752         #!/bin/sh
5753
5754         dest=$1
5755         file=$2
5756
5757         rmdir "$dest"
5758         ln -s "$HOME/.avfs$file#/" "$dest"
5759
5760       All % macros are expanded by vifm at runtime and have  the  fol‐
5761       lowing meaning:
5762         - %SOURCE_FILE is replaced by full path to selected file;
5763         -  %DESTINATION_DIR  is  replaced by full path to mount direc‐
5764       tory, which is created by vifm basing on the value of 'fusehome'
5765       option;
5766         -  %PARAM  value  is filled from the first line of file (whole
5767       line), though in the future it can be changed to whole file con‐
5768       tent;
5769         -  %FOREGROUND  means  that you want to run mount command as a
5770       regular command (required to be able to provide input for commu‐
5771       nication with mounter in interactive way).
5772
5773       %FOREGROUND  is  an optional macro.  Other macros are not manda‐
5774       tory, but mount commands likely won't work without them.
5775
5776       %CLEAR is obsolete name of  %FOREGROUND,  which  is  still  sup‐
5777       ported, but might be removed in future.  Its use is discouraged.
5778
5779       Unlike  macros  elsewhere,  these  are  recognized  only if they
5780       appear at the end of a command  or  are  followed  by  a  space.
5781       There  is no way to escape % either.  These are historical limi‐
5782       tations, which might be addressed in the future.
5783
5784       The mounted FUSE file systems will be automatically unmounted in
5785       two cases:
5786
5787         - when  vifm  quits  (with ZZ, :q, etc. or when killed by sig‐
5788           nal);
5789
5790         - when you explicitly leave mount point going up to its parent
5791           directory  (with  h,  Enter  on "../" or ":cd ..") and other
5792           pane is not in the same directory or its child directories.
5793

View look

5795       vifm supports displaying of file  list  view  in  two  different
5796       ways:
5797
5798         - in  a  table  mode,  when  multiple columns can be set using
5799           'viewcolumns' option (see "Column view"  section  below  for
5800           details);
5801
5802         - in a multicolumn list manner which looks almost like `ls -x`
5803           command  output  (see  "ls-like  view"  section  below   for
5804           details).
5805
5806       The  look  is  local for each view and can be chosen by changing
5807       value of the 'lsview' boolean option.
5808
5809       Depending on view look some of  keys  change  their  meaning  to
5810       allow more natural cursor moving.  This concerns mainly h, j, k,
5811       l and other similar navigation keys.
5812
5813       Also some of options can be ignored if they  don't  affect  view
5814       displaying in selected look.  For example value of 'viewcolumns'
5815       when 'lsview' is set.
5816

ls-like view

5818       When this view look is enabled by setting  'lsview'  option  on,
5819       vifm  will display files in multiple columns.  Number of columns
5820       depends on the length of the longest file name present  in  cur‐
5821       rent  directory  of  the view.  Whole file list is automatically
5822       reflowed on directory change, terminal or view resize.
5823
5824       View looks close to output of `ls  -x`  command,  so  files  are
5825       listed left to right in rows.
5826
5827       In  this  mode  file  manipulation  commands (e.g. d) don't work
5828       line-wise like they do in Vim, since such  operations  would  be
5829       uncommon  for  file  manipulation  tasks.  Thus, for example, dd
5830       will remove only current file.
5831
5832       By default the view is filled by lines, 'lsoptions' can be  used
5833       to get filling by columns.
5834
5835       Note that tree-view and compare view inhibit ls-like view.
5836

Column view

5838       View  columns  are described by a comma-separated list of column
5839       descriptions, each of which has the following format
5840           [ '-' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type '}' '.'{0,3}
5841       where fw stands for full width and tw stands for text width.
5842
5843       So it basically consists of four parts:
5844        1. Optional alignment specifier
5845        2. Optional width specifier
5846        3. Mandatory column name
5847        4. Optional cropping specifier
5848
5849       Alignment specifier
5850
5851       It's an optional minus or asterisk sign as the first  symbol  of
5852       the string.
5853
5854       Specifies  type  of text alignment within a column.  Three types
5855       are supported:
5856
5857       - left align
5858
5859           set viewcolumns=-{name}
5860
5861       - right align (default)
5862
5863           set viewcolumns={name}
5864
5865       - dynamic align
5866
5867         It's like left alignment, but when the text is bigger than the
5868         column, the alignment is made at the right (so the part of the
5869         field is always visible).
5870
5871           set viewcolumns=*{name}
5872
5873       Width specifier
5874
5875       It's a number followed by a percent sign,  two  numbers  (second
5876       one  should  be  less  than or equal to the first one) separated
5877       with a dot or a single number.
5878
5879       Specifies column width and  its  units.  There  are  three  size
5880       types:
5881
5882       - absolute size - column width is specified in characters
5883
5884           set viewcolumns=-100{name},20.15{ext}
5885
5886         results  in  two  columns  with  lengths  of  100 and 20 and a
5887         reserved space of five characters on the left of  second  col‐
5888         umn.
5889
5890       - relative  (percent)  size  - column width is specified in per‐
5891         cents of view width
5892
5893           set viewcolumns=-80%{name},15%{ext},5%{mtime}
5894
5895         results in three columns with lengths of  80/100,  15/100  and
5896         5/100 of view width.
5897
5898       - auto size (default) - column width is automatically determined
5899
5900           set viewcolumns=-{name},{ext},{mtime}
5901
5902         results  in  three  columns  with  length of one third of view
5903         width. There is no size adjustment to content, since  it  will
5904         slow down rendering.
5905
5906       Columns  of  different  sizing  types can be freely mixed in one
5907       view. Though sometimes some of columns can be seen partly or  be
5908       completely  invisible  if  there  is not enough space to display
5909       them.
5910
5911       Column name
5912
5913       This is just a sort key surrounded with curly braces or  {root},
5914       e.g.
5915
5916         {name},{ext},{mtime}
5917
5918       {name}  and  {iname} keys are the same and present both for con‐
5919       sistency with 'sort' option.
5920
5921       Following keys don't have corresponding sorting keys:
5922
5923         - {root}     - display name without extension (as a complement
5924           for {ext})
5925
5926         - {fileroot}  -  display  name  without extension for anything
5927           except for directories and symbolic links to directories (as
5928           a complement for {fileext})
5929
5930       Empty  curly braces ({}) are replaced with the default secondary
5931       column for primary sort key. So after the next command view will
5932       be  displayed  almost  as  if 'viewcolumns' is empty, but adding
5933       ellipsis for long file names:
5934
5935         set viewcolumns=-{name}..,6{}.
5936
5937       Cropping specifier
5938
5939       It's from one to three dots after closing curly brace in  column
5940       format.
5941
5942       Specifies  type of text truncation if it doesn't fit in the col‐
5943       umn.  Currently three types are supported:
5944
5945         - truncation - text is truncated
5946
5947             set viewcolumns=-{name}.
5948
5949           results in truncation of names that are too long too fit  in
5950           the view.
5951
5952         - adding of ellipsis - ellipsis on the left or right are added
5953           when needed
5954
5955             set viewcolumns=-{name}..
5956
5957           results in that ellipsis are added at the end  of  too  long
5958           file names.
5959
5960         - none (default) - text can pass column boundaries
5961
5962             set viewcolumns=-{name}...,{ext}
5963
5964           results  in that long file names can partially be written on
5965           the ext column.
5966

Color schemes

5968       The color schemes in vifm can be applied in two different ways:
5969
5970         - as the primary color scheme;
5971
5972         - as local to a pane color scheme.
5973
5974       Both types are set using :colorscheme command, but of  different
5975       forms:
5976
5977         - :colorscheme  color_scheme_name  -  for  the  primary  color
5978           scheme;
5979
5980         - :colorscheme color_scheme_name directory - for  local  color
5981           schemes.
5982
5983       Look  of  different  parts  of  the TUI (Text User Interface) is
5984       determined in this way:
5985
5986         - Border, TabLine, TabLineSel, TopLineSel,  TopLine,  CmdLine,
5987           ErrorMsg,  StatusLine,  JobLine, SuggestBox and WildMenu are
5988           always determined by the primary color scheme;
5989
5990         - CurrLine, Selected,  Directory,  Link,  BrokenLink,  Socket,
5991           Device,  Executable, Fifo, CmpMismatch, Win, AuxWin and Oth‐
5992           erWin are determined by primary color scheme and  a  set  of
5993           local color schemes, which can be empty.
5994
5995       There  might  be  a  set of local color schemes because they are
5996       structured hierarchically according to  file  system  structure.
5997       For example, having the following piece of file system:
5998
5999         ~
6000         `-- bin
6001            |
6002            `-- my
6003
6004       Two color schemes:
6005
6006         # ~/.vifm/colors/for_bin
6007         highlight Win cterm=none ctermfg=white ctermbg=red
6008         highlight CurrLine cterm=none ctermfg=red ctermbg=black
6009
6010         # ~/.vifm/colors/for_bin_my
6011         highlight CurrLine cterm=none ctermfg=green ctermbg=black
6012
6013       And these three commands in the vifmrc file:
6014
6015         colorscheme Default
6016         colorscheme for_bin ~/bin
6017         colorscheme for_bin_my ~/bin/my
6018
6019       File list will look in the following way for each level:
6020
6021       - ~/ - Default color scheme
6022         black background
6023         cursor with blue background
6024
6025       - ~/bin/ - mix of Default and for_bin color schemes
6026         red background
6027         cursor with black background and red foreground
6028
6029       - ~/bin/my/  -  mix  of  Default,  for_bin  and for_bin_my color
6030         schemes
6031         red background
6032         cursor with black background and green foreground
6033

Trash directory

6035       vifm has support of trash directory, which is used as  temporary
6036       storage  for  deleted files or files that were cut.  Using trash
6037       is controlled by the 'trash' option, and exact path to the trash
6038       can be set with 'trashdir' option.  Trash directory in vifm dif‐
6039       fers from the system-wide one by default,  because  of  possible
6040       incompatibilities  of storing deleted files among different file
6041       managers.  But one can set 'trashdir' to  "~/.local/share/Trash"
6042       to use a "standard" trash directory.
6043
6044       There are two scenarios of using trash in vifm:
6045
6046         1. As  a  place for storing files that were cut by "d" and may
6047            be inserted to some other place in file system.
6048
6049         2. As a storage of files, that are deleted but not purged yet.
6050
6051       The first scenario uses deletion ("d") operations to  put  files
6052       to  trash  and  put ("p") operations to restore files from trash
6053       directory.  Note that such operations move  files  to  and  from
6054       trash  directory,  which  can be long term operations in case of
6055       different partitions or remote drives mounted locally.
6056
6057       The second scenario uses deletion ("d")  operations  for  moving
6058       files  to  trash  directory  and  :empty command-line command to
6059       purge all previously deleted files.
6060
6061       Deletion and put operations depend on registers, which can point
6062       to files in trash directory.  Normally, there are no nonexistent
6063       files in registers, but vifm doesn't keep track of modifications
6064       under  trash  directory, so one shouldn't expect value of regis‐
6065       ters to be absolutely correct if trash  directory  was  modified
6066       not  by operation that are meant for it.  But this won't lead to
6067       any issues with operations, since they ignore nonexistent files.
6068

Client-Server

6070       vifm supports remote execution of  command-line  mode  commands,
6071       remote  changing of directories and expression evaluation.  This
6072       is possible using --remote and --remote-expr command-line  argu‐
6073       ments.
6074
6075       To  execute a command remotely combine --remote argument with -c
6076       <command> or +<command>.  For example:
6077
6078         vifm --remote -c 'cd /'
6079         vifm --remote '+cd /'
6080
6081       To change directory not using command-line mode commands one can
6082       specify paths right after --remote argument, like this:
6083
6084         vifm --remote /
6085         vifm --remote ~
6086         vifm --remote /usr/bin /tmp
6087
6088       Evaluating expression remotely might be useful to query informa‐
6089       tion about an instance, for example its location:
6090
6091         vifm --remote-expr 'expand("%d")'
6092
6093       If there are several running instances, the target can be speci‐
6094       fied with --server-name option (otherwise, the first one lexico‐
6095       graphically is used):
6096
6097         vifm --server-name work --remote ~/work/project
6098
6099       List  of  names  of  running  instances  can  be  obtained   via
6100       --server-list  option.  Name of the current one is available via
6101       v:servername.
6102
6103
6104       v:servername
6105              server name of  the  running  vifm  instance.   Empty  if
6106              client-server feature is disabled.
6107

Plugin

6109       Plugin for using vifm in vim as a file selector.
6110
6111       Commands:
6112
6113         :EditVifm   select a file or files to open in the current buf‐
6114       fer.
6115         :Vifm       alias for :EditVifm.
6116         :SplitVifm  split buffer and select a file or files to open.
6117         :VsplitVifm vertically split buffer and select a file or files
6118       to open.
6119         :DiffVifm    select  a file or files to compare to the current
6120       file with
6121                     :vert diffsplit.
6122         :TabVifm    select a file or files to open in tabs.
6123
6124       Each command accepts up to two arguments:  left  pane  directory
6125       and  right  pane  directory.   After arguments are checked, vifm
6126       process is spawned in a special  "file-picker"  mode.   To  pick
6127       files  just  open them either by pressing l, i or Enter keys, or
6128       by running :edit command.  If no files are selected, file  under
6129       the cursor is opened, otherwise whole selection is passed to the
6130       plugin and opened in vim.
6131
6132       The plugin have only two settings.  It's a string variable named
6133       g:vifm_term to let user specify command to run GUI terminal.  By
6134       default it's equal to 'xterm -e'.  And another  string  variable
6135       named  g:vifm_exec, which equals "vifm" by default and specifies
6136       path to vifm's  executable.   To  pass  arguments  to  vifm  use
6137       g:vifm_exec_args, which is empty by default.
6138
6139       To  use  the  plugin copy the vifm.vim file to either the system
6140       wide vim/plugin directory or into ~/.vim/plugin.
6141
6142       If you would prefer not to use the plugin and it is in the  sys‐
6143       tem wide plugin directory add
6144
6145       let loaded_vifm=1
6146
6147       to your ~/.vimrc file.
6148

Reserved

6150       The  following  command names are reserved and shouldn't be used
6151       for user commands.
6152
6153         g[lobal]
6154         v[global]
6155

ENVIRONMENT

6157       VIFM   Points   to   main   configuration   directory   (usually
6158              ~/.vifm/).
6159
6160       MYVIFMRC
6161              Points    to    main    configuration    file    (usually
6162              ~/.vifm/vifmrc).
6163
6164       These environment variables are valid inside vifm and  also  can
6165       be  used  to configure it by setting some of them before running
6166       vifm.
6167
6168       When $MYVIFMRC isn't set, it's made as  $VIFM/vifmrc  (exception
6169       for Windows: vifmrc in the same directory as vifm.exe has higher
6170       priority than $VIFM/vifmrc).
6171
6172       See "Startup" section above for more details.
6173
6174       VIFM_FUSE_FILE
6175              On execution of external commands this variable is set to
6176              the  full path of file used to initiate FUSE mount of the
6177              closes mount point from current pane directory up.   It's
6178              not set when outside FUSE mount point.  When vifm is used
6179              inside terminal multiplexer, it tries to set  this  vari‐
6180              able as well (it doesn't work this way on its own).
6181

SEE ALSO

6183       vifm-convert-dircolors(1), vifm-pause(1)
6184
6185       Website: https://vifm.info/
6186       Wiki: https://wiki.vifm.info/
6187
6188       Esperanto translation of the documentation by Sebastian Cyprych:
6189       http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html
6190

AUTHOR

6192       Vifm was written by ksteen <ksteen@users.sourceforge.net>
6193       And currently is developed by xaizek <xaizek@posteo.net>
6194
6195
6196
6197vifm 0.10.1                      July 29, 2019                         VIFM(1)
Impressum