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

General keys

117       Ctrl-C or Escape
118              cancel most operations (see "Cancellation" section below), clear
119              all selected files.
120
121       Ctrl-L clear  and  redraw the screen.  Can also reload file list in ap‐
122              propriate modes (like normal and visual).
123

Basic Movement

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

Movement with Count

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

Scrolling panes

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

Pane manipulation

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

Marks

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

Searching

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

File Filters

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

Other Normal Mode Keys

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

Using Count

706       You can use count with commands like yy.
707
708       [count]yy
709              yank count files starting from current cursor position downward.
710
711       Or you can use count with motions passed to y, d or D.
712
713       d[count]j
714              delete  (count  + 1) files starting from current cursor position
715              upward.
716

Registers

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

Selectors

765       y, d, D, !, gu and gU commands accept selectors.  You can combine  them
766       with any of selectors below to quickly remove or yank several files.
767
768       Most  of  selectors are like vi motions: j, k, gg, G, H, L, M, %, f, F,
769       ;, comma, ', ^, 0 and $.  But there are some additional ones.
770
771       a      all files in current view.
772
773       s      selected files.
774
775       S      all files except selected.
776
777       Examples:
778
779         - dj - delete file under cursor and one below;
780
781         - d2j - delete file under cursor and two below;
782
783         - y6gg - yank all files from cursor position to 6th file in the list.
784
785       When you pass a count to whole command and its selector they are multi‐
786       plied. So:
787
788         - 2d2j - delete file under cursor and four below;
789
790         - 2dj - delete file under cursor and two below;
791
792         - 2y6gg  -  yank  all  files from cursor position to 12th file in the
793           list.
794

Visual Mode

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

View Mode

865       This mode tries to imitate the less program.  List of builtin shortcuts
866       can be found below.  Shortcuts can be customized using :qmap, :qnoremap
867       and :qunmap command-line commands.
868
869       Shift-Tab, Tab, q, Q, ZZ
870              return to normal mode.
871
872       [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter
873              scroll forward one line (or [count] lines).
874
875       [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P
876              scroll backward one line (or [count] lines).
877
878       [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space
879              scroll forward one window (or [count] lines).
880
881       [count]b, [count]Ctrl-B, [count]Alt-V
882              scroll backward one window (or [count] lines).
883
884       [count]z
885              scroll forward one window (and set window to [count]).
886
887       [count]w
888              scroll backward one window (and set window to [count]).
889
890       [count]Alt-Space
891              scroll forward one window, but don't stop at end-of-file.
892
893       [count]d, [count]Ctrl-D
894              scroll forward one half-window (and set half-window to [count]).
895
896       [count]u, [count]Ctrl-U
897              scroll   backward   one  half-window  (and  set  half-window  to
898              [count]).
899
900       r, Ctrl-R, Ctrl-L
901              repaint screen.
902
903       R      reload view preserving scroll position.
904
905       F      toggle automatic forwarding.   Roughly  equivalent  to  periodic
906              file reload and scrolling to the bottom.  The behaviour is simi‐
907              lar to `tail -F` or F key in less.
908
909       a      switch to the next viewer.  Does nothing for preview constructed
910              via %q macro.
911
912       A      switch  to  the  previous viewer.  Does nothing for preview con‐
913              structed via %q macro.
914
915       i      toggle raw mode (ignoring of defined viewers).  Does nothing for
916              preview constructed via %q macro.
917
918       [count]/pattern
919              search forward for ([count]‐th) matching line.
920
921       [count]?pattern
922              search backward for ([count]‐th) matching line.
923
924       [count]n
925              repeat previous search (for [count]‐th occurrence).
926
927       [count]N
928              repeat  previous search in reverse direction (for [count]‐th oc‐
929              currence).
930
931       [count]g, [count]<, [count]Alt-<
932              scroll to the first line of the file (or line [count]).
933
934       [count]G, [count]>, [count]Alt->
935              scroll to the last line of the file (or line [count]).
936
937       [count]p, [count]%
938              scroll to the beginning of the file (or N percent into file).
939
940       v      invoke an editor to edit the current  file  being  viewed.   The
941              command for editing is taken from the 'vicmd' or 'vixcmd' option
942              value and extended with middle line number prepended by  a  plus
943              sign and name of the current file.
944
945       All  "Ctrl-W  x" keys work the same was as in Normal mode.  Active mode
946       is automatically changed on navigating among windows.   When  less-like
947       mode  activated  on  file preview is left using one by "Ctrl-W x" keys,
948       its state is stored until another file is displayed using preview (it's
949       possible  to leave the mode, hide preview pane, do something else, then
950       get back to the file and show preview pane again with previously stored
951       state in it).
952

Command line Mode

954       These keys are available in all submodes of the command line mode: com‐
955       mand, search, prompt and filtering.
956
957       Down, Up, Left, Right, Home, End and Delete are extended keys and  they
958       are  not available if vifm is compiled with --disable-extended-keys op‐
959       tion.
960
961       Esc, Ctrl-C
962              leave command line mode,  cancels  input.   Cancelled  input  is
963              saved into appropriate history and can be recalled later.
964
965       Ctrl-M, Enter
966              execute command and leave command line mode.
967
968       Ctrl-I, Tab
969              complete command or its argument.
970
971       Shift-Tab
972              complete in reverse order.
973
974       Ctrl-_ stop completion and return original input.
975
976       Ctrl-B, Left
977              move cursor to the left.
978
979       Ctrl-F, Right
980              move cursor to the right.
981
982       Ctrl-A, Home
983              go to line beginning.
984
985       Ctrl-E, End
986              go to line end.
987
988       Alt-B  go to the beginning of previous word.
989
990       Alt-F  go to the end of next word.
991
992       Ctrl-U remove  characters  from  cursor  position till the beginning of
993              line.
994
995       Ctrl-K remove characters from cursor position till the end of line.
996
997       Ctrl-H, Backspace
998              remove character before the cursor.
999
1000       Ctrl-D, Delete
1001              remove character under the cursor.
1002
1003       Ctrl-W remove characters from cursor position  till  the  beginning  of
1004              previous word.
1005
1006       Alt-D  remove  characters  from  cursor  position till the beginning of
1007              next word.
1008
1009       Ctrl-T swap the order of current and previous character and move cursor
1010              forward  or,  if  cursor past the end of line, swap the order of
1011              two last characters in the line.
1012
1013       Alt-.  insert last part of previous command to current cursor position.
1014              Each next call will insert last part of older command.
1015
1016       Ctrl-G edit command-line content in external editor.  See "Command line
1017              editing" section for details.
1018
1019       Ctrl-N recall more recent command-line from history.
1020
1021       Ctrl-P recall older command-line from history.
1022
1023       Up     recall more recent command-line from history, that begins as the
1024              current command-line.
1025
1026       Down   recall  older command-line from history, that begins as the cur‐
1027              rent command-line.
1028
1029       Ctrl-] trigger abbreviation expansion.
1030
1031       Ctrl-R =
1032              insert result of evaluating an expression.  Expression is to  be
1033              entered  via  nested  command-line  prompt  (where this key does
1034              nothing).  Expansion of an erroneous expression is empty.
1035

Pasting special values

1037       The shortcuts listed below insert specified values into current  cursor
1038       position.  Last key of every shortcut references value that it inserts:
1039         - c - [c]urrent file
1040         - d - [d]irectory path
1041         - e - [e]xtension of a file name
1042         - r - [r]oot part of a file name
1043         - t - [t]ail part of directory path
1044
1045         - a - [a]utomatic filter
1046         - m - [m]anual filter
1047         - = - local filter, which is bound to "=" in normal mode
1048
1049       Values related to filelist in current pane are available through Ctrl-X
1050       prefix, while values from the other pane have  doubled  Ctrl-X  key  as
1051       their  prefix  (doubled Ctrl-X is presumably easier to type than upper‐
1052       case letters; it's still easy to remap the keys to correspond to  names
1053       of similar macros).
1054
1055       Ctrl-X c
1056              name of the current file of the active pane.
1057
1058       Ctrl-X d
1059              path to the current directory of the active pane.
1060
1061       Ctrl-X e
1062              extension of the current file of the active pane.
1063
1064       Ctrl-X r
1065              name root of current file of the active pane.
1066
1067       Ctrl-X t
1068              the  last  component of path to the current directory of the ac‐
1069              tive pane.
1070
1071       Ctrl-X Ctrl-X c
1072              name of the current file of the inactive pane.
1073
1074       Ctrl-X Ctrl-X d
1075              path to the current directory of the inactive pane.
1076
1077       Ctrl-X Ctrl-X e
1078              extension of the current file of the inactive pane.
1079
1080       Ctrl-X Ctrl-X r
1081              name root of current file of the inactive pane.
1082
1083       Ctrl-X Ctrl-X t
1084              the last component of path to the current directory of the inac‐
1085              tive pane.
1086
1087
1088       Ctrl-X a
1089              value of implicit permanent filter (old name "automatic") of the
1090              active pane.
1091
1092       Ctrl-X m
1093              value of explicit permanent filter (old name  "manual")  of  the
1094              active pane.
1095
1096       Ctrl-X =
1097              value of local filter of the active pane.
1098
1099
1100       Ctrl-X /
1101              last pattern from search history.
1102

Command line editing

1104       vifm provides a facility to edit several kinds of data, that is usually
1105       edited in command-line mode, in external editor (using  command  speci‐
1106       fied  by 'vicmd' or 'vixcmd' option).  This has at least two advantages
1107       over built-in command-line mode:
1108         - one can use full power of Vim to edit text;
1109         - finding and reusing history entries becomes possible.
1110
1111       The facility is supported by four input submodes of the command-line:
1112         - command;
1113         - forward search;
1114         - backward search;
1115         - file rename (see description of cw and cW normal mode keys).
1116
1117       Editing command-line using external editor is activated by  the  Ctrl-G
1118       shortcut.   It's  also  possible  to do almost the same from Normal and
1119       Visual modes using q:, q/ and q? commands.
1120
1121       Temporary file created for the purpose of editing the line has the fol‐
1122       lowing structure:
1123
1124         1. First line, which is either empty or contains text already entered
1125            in command-line.
1126
1127         2. 2nd and all other lines with history items starting with the  most
1128            recent  one.   Altering this lines in any way won't change history
1129            items stored by vifm.
1130
1131       After editing application is finished the first line  of  the  file  is
1132       taken  as  the  result  of operation, when the application returns zero
1133       exit code.  If the application returns an error (see :cquit command  in
1134       Vim), all the edits made to the file are ignored, but the initial value
1135       of the first line is saved in appropriate history.
1136

More Mode

1138       This is the mode that appears when status bar content is so big that it
1139       doesn't  fit  on the screen.  One can identify the mode by "-- More --"
1140       message at the bottom.
1141
1142       The following keys are handled in this mode:
1143
1144
1145       Enter, Ctrl-J, j or Down
1146              scroll one line down.
1147
1148       Backspace, k or Up
1149              scroll one line up.
1150
1151
1152       d      scroll one page (half of a screen) down.
1153
1154       u      scroll one page (half of a screen) up.
1155
1156
1157       Space, f or PageDown
1158              scroll down a screen.
1159
1160       b or PageUp
1161              scroll up a screen.
1162
1163
1164       G      scroll to the bottom.
1165
1166       g      scroll to the top.
1167
1168
1169       q, Escape or Ctrl-C
1170              quit the mode.
1171
1172       :      switch to command-line mode.
1173

Commands

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

Ranges

3228       The ranges implemented include:
3229         2,3 - from second to third file in the list (including it)
3230         % - the entire directory.
3231         . - the current position in the filelist.
3232         $ - the end of the filelist.
3233         't - the mark position t.
3234
3235       Examples:
3236
3237         :%delete
3238
3239       would delete all files in the directory.
3240
3241         :2,4delete
3242
3243       would delete the files in the list positions 2 through 4.
3244
3245         :.,$delete
3246
3247       would delete the files from the current position  to  the  end  of  the
3248       filelist.
3249
3250         :3delete4
3251
3252       would delete the files in the list positions 3, 4, 5, 6.
3253
3254       If a backward range is given :4,2delete - an query message is given and
3255       user can chose what to do next.
3256
3257       The builtin commands that accept a range are :d[elete] and :y[ank].
3258

:command parameters

3260       Some of the command-line commands accept  parameters  in  the  form  of
3261       `-paramname`.  Arguments of such commands can be split into two groups:
3262       parameters and positional arguments.  Items from the two groups  cannot
3263       be interleaved and parameters always come first.  List of parameters is
3264       terminated implicitly by the first argument that doesn't start  with  a
3265       dash ("-") or explicitly via "--" separator (needs to be a separate ar‐
3266       gument), which is just discarded.  These strict rules  allow  arbitrary
3267       positional arguments, such as file names that start with a dash.
3268
3269
3270       -skip parameter
3271              This  parameter  makes :copy, :move, :alink and :rlink automati‐
3272              cally skip source files that already exist  at  the  destination
3273              rather than refusing to perform the operation.
3274

Command macros

3276       The command macros may be used in user commands.
3277
3278       %a     User  arguments.   When  user arguments contain macros, they are
3279              expanded before preforming substitution of %a.
3280
3281       %c %"c The current file under the cursor.
3282
3283       %C %"C The current file under the cursor in the other directory.
3284
3285       %f %"f All of the selected files or the current file, but  see  "Selec‐
3286              tion" section below.
3287
3288       %F %"F Same as %f, %"f, but for the inactive pane.
3289
3290       %l %"l List  of selected files.  Unlike %f from above, this is only for
3291              explicit selection (i.e., not via a range) and is  empty  if  no
3292              files are selected.
3293
3294       %L %"L Same as %l, %"l, but for the inactive pane.
3295
3296       %b %"b Same as %f %F.
3297
3298       %d %"d Full path to current directory.
3299
3300       %D %"D Full path to other file list directory.
3301
3302       %rx %"rx
3303              Full  paths  to  files  in the register {x}.  In case of invalid
3304              symbol in place of {x}, it's processed with the rest of the line
3305              and default register is used.
3306
3307       %m     Show command output in a menu.
3308
3309       %M     Same as %m, but l (or Enter) key is handled like for :locate and
3310              :find commands.
3311
3312       %u     Process command output as list of paths and compose custom  view
3313              out of it.
3314
3315       %U     Same  as %u, but implies less list updates inside vifm, which is
3316              absence of sorting at the moment.
3317
3318       %Iu    Same as %u, but gives up terminal before running  external  com‐
3319              mand.
3320
3321       %IU    Same  as  %U, but gives up terminal before running external com‐
3322              mand.
3323
3324       %S     Show command output in the status bar.
3325
3326       %q     Redirect command output to quick view,  which  is  activated  if
3327              disabled.
3328
3329       %s     Execute  command in horizontally split window of active terminal
3330              multiplexer (ignored if not running inside one).
3331
3332       %v     Same as %s, but splits vertically.
3333
3334       %n     Forbid use of terminal multiplexer to run the command.
3335
3336       %N     Do not detach viewer from terminal  session  (leaves  `/dev/tty`
3337              available).
3338
3339       %i     Completely ignore command output.  For background jobs this sup‐
3340              presses error dialogs, while still storing errors internally for
3341              viewing via :jobs menu.
3342
3343       %Pl    Pipe list of files to standard input of a command.
3344
3345       %Pz    Same as %Pl, but separates paths by null ('\0') character.
3346
3347       %pc    Marks the end of the main command and the beginning of the clear
3348              command for graphical preview, which is invoked on closing  pre‐
3349              view of a file.
3350
3351       %pd    Marks  a  preview command as one that directly communicates with
3352              the terminal.  Beware that this is for things like  sixel  which
3353              are  self-contained sequences that depend only on current cursor
3354              position, using this with anything else is likely to mangle ter‐
3355              minal state.
3356
3357       %pu    Uncached  preview.   Intended  to be used for commands that just
3358              send file path somewhere for preview.
3359
3360       The following dimensions and coordinates are in characters:
3361
3362       %px    x coordinate of top-left corner of preview area.
3363
3364       %py    y coordinate of top-left corner of preview area.
3365
3366       %pw    width of preview area.
3367
3368       %ph    height of preview area.
3369
3370
3371       Use %% if you need to put a percent sign in your command.
3372
3373       Note that %i, %Iu, %IU, %m, %M, %n, %q, %s, %S, %u, %U  and  %v  macros
3374       are  mutually exclusive.  Only the last one of them on the command will
3375       take effect.
3376
3377       Note that %Pl and %Pz are mutually exclusive.  Only  the  last  one  of
3378       them on the command will take effect.
3379
3380       You  can  use  file  name modifiers after %c, %C, %f, %F, %b, %d and %D
3381       macros.  Supported modifiers are:
3382
3383         - :p           - full path
3384
3385         - :u             -   UNC   name   of   path   (e.g.   "\\server"   in
3386           "\\server\share"),  Windows only.  Expands to current computer name
3387           for not UNC paths.
3388
3389         - :~           - relative to the home directory
3390
3391         - :.           - relative to current directory
3392
3393         - :h           - head of the file name
3394
3395         - :t           - tail of the file name
3396
3397         - :r           - root of the file name (without last extension)
3398
3399         - :e           - extension of the file name (last one)
3400
3401         - :s?pat?sub?  - substitute the first occurrence  of  pat  with  sub.
3402           You  can use any character for '?', but it must not occur in pat or
3403           sub.
3404
3405         - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with
3406           sub.
3407
3408       See ':h filename-modifiers' in Vim's documentation for the detailed de‐
3409       scription.
3410
3411       Using %x means expand corresponding macro escaping all characters  that
3412       have  special meaning.  And %"x means using of double quotes and escape
3413       only backslash and double quote characters, which  is  more  useful  on
3414       Windows systems.
3415
3416       Position  and  quantity (if there is any) of %m, %M, %S or %s macros in
3417       the command is unimportant.  All their occurrences are removed from the
3418       resulting command.
3419
3420       %c  and  %f  macros are expanded to file names only, when %C and %F are
3421       expanded to full paths.  %f and %F follow this in %b too.
3422
3423       :com move mv %f %D
3424              set the :move command to move all of the files selected  in  the
3425              current directory to the other directory.
3426
3427       The  %a macro is replaced with any arguments given to an alias command.
3428       All arguments are considered optional.
3429              :com lsl !!ls -l %a - set the lsl command to execute ls -l  with
3430              or without an argument.
3431
3432       :lsl<Enter>
3433              will list the directory contents of the current directory.
3434
3435       :lsl filename<Enter>
3436              will list only the given filename.
3437
3438       The  macros  can also be used in directly executing commands.  ":!mv %f
3439       %D" would move the current directory selected files to the other direc‐
3440       tory.
3441
3442       Appending  &  to  the  end of a command causes it to be executed in the
3443       background.  Typically you want to run two kinds of  external  commands
3444       in the background:
3445
3446         - GUI applications that doesn't fork thus block vifm (:!sxiv %f &);
3447
3448         - console tools that do not work with terminal (:!mv %f %D &).
3449
3450       You  don't  want to run terminal commands, which require terminal input
3451       or output something in background because they will mess up vifm's TUI.
3452       Anyway, if you did run such a command, you can use Ctrl-L key to update
3453       vifm's TUI.
3454
3455       Rewriting the example command with macros given above with  background‐
3456       ing:
3457
3458       %m,  %M,  %s,  %S,  %u and %U macros cannot be combined with background
3459       mark (" &") as it doesn't make much sense.
3460

Command backgrounding

3462       Copy and move operation can take a lot of time to proceed.  That's  why
3463       vifm  supports  backgrounding  of  this  two operations.  To run :copy,
3464       :move or :delete command in the background just add " &" at the end  of
3465       a command.
3466
3467       For  each  background operation a new thread is created.  Job cancella‐
3468       tion can be requested in the :jobs menu via dd shortcut.
3469
3470       You can see if command is still  running  in  the  :jobs  menu.   Back‐
3471       grounded  commands  have progress instead of process id at the line be‐
3472       ginning.
3473
3474       Background operations cannot be undone.
3475

Cancellation

3477       Note that cancellation works somewhat different on Windows platform due
3478       to  different  mechanism  of  break signal propagation.  One also might
3479       need to use Ctrl-Break shortcut instead of Ctrl-C.
3480
3481       There are two types of operations that can be cancelled:
3482
3483         - file system operations;
3484
3485         - mounting with FUSE (but not unmounting as  it  can  cause  loss  of
3486           data);
3487
3488         - calls of external applications.
3489
3490       Note  that  vifm  never terminates applications, it sends SIGINT signal
3491       and lets the application quit normally.
3492
3493       When one of set of operations is cancelled (e.g. copying of 5th file of
3494       10  files),  further  operations  are cancelled too.  In this case undo
3495       history will contain only actually performed operations.
3496
3497       Cancelled operations are indicated by "(cancelled)" suffix appended  to
3498       information message on status bar.
3499
3500       File system operations
3501
3502       Currently  the  following  commands  can  be cancelled: :alink, :chmod,
3503       :chown,  :clone,  :copy,  :delete,  :mkdir,  :move,  :restore,  :rlink,
3504       :touch.   File putting (on p/P key) can be cancelled as well.  It's not
3505       hard to see that these are mainly long-running operations.
3506
3507       Cancelling commands when they are repeated for undo/redo operations  is
3508       allowed  for  convenience,  but is not recommended as further undo/redo
3509       operations might get blocked by  side-effects  of  partially  cancelled
3510       group of operations.
3511
3512       These commands can't be cancelled: :empty, :rename, :substitute, :tr.
3513
3514       Mounting with FUSE
3515
3516       It's  not considered to be an error, so only notification on the status
3517       bar is shown.
3518
3519       External application calls
3520
3521       Each of this operations can be cancelled: :apropos, :find, :grep,  :lo‐
3522       cate.
3523

Selection

3525       If  there is a selection, it's stashed before proceeding further unless
3526       file under the cursor is part of that selection.  This means that  when
3527       macros are expanded for :filetype or :filextype programs, `%f` and `%F`
3528       become equivalent to `%c` and `%C` respectively if current file is  not
3529       selected.   So you run selection by running one of selected files, oth‐
3530       erwise you're running a single file even if there  are  other  selected
3531       entries.
3532
3533       When running a selection it must not include broken symbolic links, has
3534       to be consistent and set of file handlers must be compatible.   Consis‐
3535       tency  means that selection contains either only directories (including
3536       links to them) or only files, but not their mix.
3537
3538       Compatibility is a more sophisticated check, but it's defined in a nat‐
3539       ural  way  so that you get what you'd expect.  The following properties
3540       of selection are taken into account while checking it for compatibility
3541       and deciding how to handle it:
3542
3543
3544         1. If there any files for which handler isn't defined, then all files
3545            are opened using 'vicmd' or 'vixcmd'.
3546
3547
3548         2. If all handlers match the following criteria:
3549             - backgrounded
3550             - include `%c` and/or `%C`
3551             - include neither `%f` nor `%F`
3552            then each file is executed independently of the rest.
3553
3554
3555         3. If all handlers are equal, the common handler is  executed.   This
3556            handler  might  ignore  selection  and process only file under the
3557            cursor.
3558
3559
3560         4. Otherwise, an error is reported, because handlers differ and  they
3561            don't support parallel execution.
3562

Patterns

3564       :highlight,  :filetype, :filextype, :fileviewer commands and 'classify'
3565       option support globs, regular expressions and mime types to match  file
3566       names or their paths.
3567
3568       There are six possible ways to write a single pattern:
3569
3570         1. [!]{comma-separated-name-globs}
3571
3572         2. [!]{{comma-separated-path-globs}}
3573
3574         3. [!]/name-regular-expression/[iI]
3575
3576         4. [!]//path-regular-expression//[iI]
3577
3578         5. [!]<comma-separated-mime-type-globs>
3579
3580         6. undecorated-pattern
3581
3582       First five forms can include leading exclamation mark that negates pat‐
3583       tern matching.
3584
3585       The last form is implicitly refers to one of others.   :highlight  does
3586       not  accept undecorated form, while :filetype, :filextype, :fileviewer,
3587       :select, :unselect and 'classify' treat it as list of name globs.
3588
3589       Path patterns receive absolute path of the file that includes its  name
3590       component as well.
3591
3592       To  combine  several patterns (AND them), make sure you're using one of
3593       the first five forms and write patterns one after another, like this:
3594         <text/plain>{*.vifm}
3595       Mind that if you make a mistake the whole string will be treated as the
3596       sixth form.
3597
3598       :filetype,  :filextype  and :fileviewer commands accept comma-separated
3599       list of patterns instead of a single pattern, thus effectively handling
3600       OR operation on them:
3601         <text/plain>{*.vifm},<application/pdf>{*.pdf}
3602       Forms  that  accept comma-separated lists of patterns also process them
3603       as lists of alternatives.
3604
3605       Patterns with regular expressions
3606
3607       Regular expression patterns are case insensitive by  default,  see  de‐
3608       scription of commands, which might override default behaviour.
3609
3610       Flags of regular expressions mean the following:
3611         - "i" makes filter case insensitive;
3612         -  "I"  makes  filter  case sensitive.  They can be repeated multiple
3613       times, but the later one takes precedence (e.g.  "iiiI"  is  equivalent
3614       to "I" and "IiIi" is the same as "i").
3615
3616       There  are no implicit `^` or `$`, so make sure to specify them explic‐
3617       itly if the pattern should match the whole name or path.
3618
3619       Patterns with globs
3620
3621       "Globs" section below provides short overview of globs and some  impor‐
3622       tant points that one needs to know about them.
3623
3624       Patterns with mime-types
3625
3626       Mime  type  matching is essentially globs matching applied to mime type
3627       of a file instead of its name/path.  Note: mime types  aren't  detected
3628       on Windows.
3629
3630       Examples
3631
3632       Associate `evince` to PDF-files only inside `/home/user/downloads/` di‐
3633       rectory (excluding its subdirectories):
3634
3635         :filextype //^/home/user/downloads/[^/]*.pdf$// evince %f
3636
3637

Regular expressions

3639       All regular expressions are modern/extended.  See  `man  7  regex`  for
3640       more details on what's supported.
3641
3642       The following special sequences are additionally parsed:
3643        - `\c` forces matching ignoring case of letters
3644        - `\C` forces matching respecting case of letters
3645
3646       `\c`  and `\C` have the highest priority in determining whether case is
3647       matched or not and exist  to  override  'ignorecase',  'smartcase'  and
3648       `i`/`I` flags when necessary.
3649
3650       If  multiple  sequences  are present, the one which appears later takes
3651       precedence.
3652
3653       Note that unlike in Vim character classes are affected by settings  and
3654       sequences that control case sensitivity in regular expressions.
3655

Globs

3657       Globs are always case insensitive as it makes sense in general case.
3658
3659       `*`,  `?`,  `[`  and `]` are treated as special symbols in the pattern.
3660       E.g.
3661
3662         :filetype * less %c
3663
3664       matches all files.  One can use character classes for escaping, so
3665
3666         :filetype [*] less %c
3667
3668       matches only one file name, the one which contains only  asterisk  sym‐
3669       bol.
3670
3671       `*`  means  any number of any characters (possibly an empty substring),
3672       with one exception: asterisk at the pattern beginning doesn't match dot
3673       in the first position.  E.g.
3674
3675         :fileviewer *.zip,*.jar zip -sf %c
3676
3677       associates  using  of  `zip` program to preview all files with `zip` or
3678       `jar` extensions as listing of their content, but `.file.zip` won't  be
3679       matched.
3680
3681       `?` means any character at this position.  E.g.
3682
3683         :fileviewer ?.out file %c
3684
3685       calls `file` tool for all files which have exactly one character before
3686       their extension (e.g. a.out, b.out).
3687
3688       Square brackets designate character class, which means that whole char‐
3689       acter  class matches against any of characters listed in it.  For exam‐
3690       ple
3691
3692         :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c
3693
3694       makes vifm call `highlight` program to colorize source and header files
3695       in C language for a 256-color terminal.  Equal command would be
3696
3697         :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c
3698
3699
3700       Inside square brackets `^` or `!` can be used for symbol class negotia‐
3701       tion and the `-` symbol to set a range.   `^`  and  `!`  should  appear
3702       right after the opening square bracket.  For example
3703
3704         :filetype *.[!d]/ inspect_dir
3705
3706       associates `inspect_dir` as additional handler for all directories that
3707       have one character extension unless it's "d" letter.  And
3708
3709         :filetype [0-9].jpg sxiv
3710
3711       associates `sxiv` picture viewer only for JPEG-files that contain  sin‐
3712       gle digit in their name.
3713
3714       If  you need to include literal comma, which is normally separates mul‐
3715       tiple globs, double it.
3716

:set options

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

Mappings

5035       Map arguments
5036
5037       LHS of mappings can be preceded by arguments which  take  the  form  of
5038       special sequences:
5039
5040       <silent>
5041              Postpone UI updates until RHS is completely processed.
5042
5043       <wait> In  case  of builtin mapping causing conflict for a user-defined
5044              mapping (e.g., `t` builtin to a partially  typed  `ta`  user-de‐
5045              fined  mapping),  ignore  the builtin mapping and wait for input
5046              indefinitely as opposed to default behaviour of  triggering  the
5047              builtin mapping after a delay defined by 'timeoutlen'.  Example:
5048
5049                nnoremap <wait> tw :set wrap!<cr>
5050                nnoremap <wait> tn :set number!<cr>
5051                nnoremap <wait> tr :set relativenumber!<cr>
5052
5053       Special sequences
5054
5055       Since  it's not easy to enter special characters there are several spe‐
5056       cial sequences that can be used in place of them.  They are:
5057
5058       <cr>   Enter key.
5059
5060       <esc>  Escape key.
5061
5062       <space>
5063              Space key.
5064
5065       <lt>   Less-than character (<).
5066
5067       <nop>  provides a way to disable a mapping (by mapping it to <nop>).
5068
5069       <bs>   Backspace key (see key conflict description below).
5070
5071       <tab> <s-tab>
5072              Tabulation and Shift+Tabulation keys.
5073
5074       <home> <end>
5075              Home/End.
5076
5077       <left> <right> <up> <down>
5078              Arrow keys.
5079
5080       <pageup> <pagedown>
5081              PageUp/PageDown.
5082
5083       <del> <delete>
5084              Delete key.   <del>  and  <delete>  mean  different  codes,  but
5085              <delete> is more common.
5086
5087       <insert>
5088              Insert key.
5089
5090       <s-home> <s-end>
5091       <s-left> <s-right> <s-up> <s-down>
5092       <s-pageup> <s-pagedown>
5093       <s-delete> <s-insert>
5094               Shift  +  one  of the keys from above, if terminal and its ter‐
5095               minfo supports it.
5096
5097       <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_>
5098              Control + some key (see key conflict description below).
5099
5100       <c-@> {only for *nix}
5101              Control + Space.
5102
5103       <a-a>,<a-b>,...,<a-z>
5104       <m-a>,<m-b>,...,<m-z>
5105       <a-0>,<a-1>,...,<a-9> {only for *nix}
5106       <m-0>,<m-1>,...,<m-9> {only for *nix}
5107               Alt + some key.
5108
5109       <a-s-a>,<a-s-b>,...,<a-s-z> {only for *nix}
5110       <s-a-a>,<s-a-b>,...,<s-a-z> {only for *nix}
5111       <m-s-a>,<m-s-b>,...,<m-s-z> {only for *nix}
5112       <s-m-a>,<s-m-b>,...,<s-m-z> {only for *nix}
5113               Alt + Shift + some key.
5114
5115       <a-c-a>,<a-c-b>,...,<a-c-z> {only for *nix}
5116       <m-c-a>,<m-c-b>,...,<m-c-z> {only for *nix}
5117               Alt + Ctrl + some key.
5118
5119       <f0> - <f63>
5120              Functional keys.
5121
5122       <c-f1> - <c-f12> {only for MS-Windows}
5123              functional keys with Control key pressed.
5124
5125       <a-f1> - <a-f12> {only for MS-Windows}
5126              functional keys with Alt key pressed.
5127
5128       <s-f1> - <s-f12> {only for MS-Windows}
5129              functional keys with Shift key pressed.
5130
5131       Note that due to the way terminals process their  input,  several  key‐
5132       board keys might be mapped to single key code, for example:
5133
5134         - <cr> and <c-m>;
5135
5136         - <tab> and <c-i>;
5137
5138         - <c-h> and <bs> and <del>;
5139
5140         - etc.
5141
5142       Most  of  the  time  they are defined consistently and don't cause sur‐
5143       prises, but <c-h> and <bs> are treated differently in  different  envi‐
5144       ronments (although they match each other all the time), that's why they
5145       correspond to different keys in vifm.  As a consequence, if you map <c-
5146       h>  or <bs> be sure to repeat the mapping with the other one so that it
5147       works in all environments.  Alternatively, provide your mapping in  one
5148       form and add one of the following:
5149
5150         " if mappings with <c-h> in the LHS work
5151         map <c-h> <bs>
5152         " if mappings with <bs> in the LHS work
5153         map <bs> <c-h>
5154
5155       Also sometimes neither of them might work and it's <del> key which cor‐
5156       responds to your backspace (don't mind the name).
5157
5158       Whitespace
5159
5160       vifm removes whitespace characters at the beginning  and  end  of  com‐
5161       mands.   That's  why  you  may want to use <space> at the end of rhs in
5162       mappings.  For example:
5163
5164         cmap <f1> man<space>
5165
5166       will put "man " in line when you hit the <f1> key in the  command  line
5167       mode.
5168

Expression syntax

5170       Supported expressions is a subset of what VimL provides.
5171
5172       Expression syntax summary, from least to most significant:
5173
5174       expr1      expr2
5175                  expr2 || expr2 ..       logical OR
5176
5177       expr2      expr3
5178                  expr3 && expr3 ..       logical AND
5179
5180       expr3      expr4
5181                  expr4 == expr4          equal
5182                  expr4 != expr4          not equal
5183                  expr4 >  expr4          greater than
5184                  expr4 >= expr4          greater than or equal
5185                  expr4 <  expr4          smaller than
5186                  expr4 <= expr4          smaller than or equal
5187
5188       expr4      expr5
5189                  expr5 + expr5 ..        number addition
5190                  expr5 - expr5 ..        number subtraction
5191
5192       expr5      expr6
5193                  expr6 . expr6 ..        string concatenation
5194
5195       expr6      expr7
5196                  - expr6                 unary minus
5197                  + expr6                 unary plus
5198                  ! expr6                 logical NOT
5199
5200       expr7      number                  number constant
5201                  "string"                string constant, \ is special
5202                  'string'                string constant, ' is doubled
5203                  &option                 option value
5204                  $VAR                    environment variable
5205                  v:var                   builtin variable
5206                  function(expr1, ...)    function call
5207                  (expr1)                 nested expression
5208
5209       ".." indicates that the operations in this level can be concatenated.
5210
5211       expr1
5212       -----
5213       expr2 || expr2
5214
5215       Arguments are converted to numbers before evaluation.
5216
5217       Result is non-zero if at least one of arguments is non-zero.
5218
5219       It's  right  associative  and with short-circuiting, so sub-expressions
5220       are evaluated from left to right until result of  whole  expression  is
5221       determined (i.e., until first non-zero) or end of the expression.
5222
5223       expr2
5224       -----
5225       expr3 && expr3
5226
5227       Arguments are converted to numbers before evaluation.
5228
5229       Result is non-zero only if both arguments are non-zero.
5230
5231       It's  right  associative  and with short-circuiting, so sub-expressions
5232       are evaluated from left to right until result of  whole  expression  is
5233       determined (i.e., until first zero) or end of the expression.
5234
5235       expr3
5236       -----
5237       expr4 {cmp} expr4
5238
5239       Compare  two  expr4  expressions,  resulting  in a 0 if it evaluates to
5240       false or 1 if it evaluates to true.
5241
5242       equal                   ==
5243       not equal               !=
5244       greater than            >
5245       greater than or equal   >=
5246       smaller than            <
5247       smaller than or equal   <=
5248
5249       Examples:
5250
5251         'a' ==  'a'         == 1
5252         'a' >   'b'         == 1
5253         'a' ==  'b'         == 0
5254         '2' >   'b'         == 0
5255          2  >   'b'         == 1
5256          2  >   '1b'        == 1
5257          2  >   '9b'        == 0
5258         -1  == -'1'         == 1
5259          0  ==  '--1'       == 1
5260
5261       expr4
5262       -----
5263       expr5 + expr5 ..     number addition expr5 - expr5 ..      number  sub‐
5264       traction
5265
5266       Examples:
5267
5268         1 + 3 - 3          == 1
5269         1 + '2'            == 3
5270
5271       expr5
5272       -----
5273       expr6 . expr6 ..     string concatenation
5274
5275       Examples:
5276
5277         'a' . 'b'           == 'ab'
5278         'aaa' . '' . 'c'    == 'aaac'
5279
5280       expr6
5281       -----
5282
5283       - expr6              unary minus
5284       + expr6              unary plus
5285       ! expr6              logical NOT
5286
5287       For '-' the sign of the number is changed.
5288       For '+' the number is unchanged.
5289       For '!' non-zero becomes zero, zero becomes one.
5290
5291       A String will be converted to a Number first.
5292
5293       These operations can be repeated and mixed.  Examples:
5294
5295          --9                == 9
5296         ---9                == -9
5297          -+9                == 9
5298          !-9                == 0
5299          !''                == 1
5300         !'x'                == 0
5301          !!9                == 1
5302
5303       expr7
5304       -----
5305
5306       number               number constant
5307       -----
5308
5309       Decimal number.  Examples:
5310
5311         0                   == 0
5312         0000                == 0
5313         01                  == 1
5314         123                 == 123
5315         10000               == 10000
5316
5317       string
5318       ------
5319       "string"             string constant
5320
5321       Note that double quotes are used.
5322
5323       A string constant accepts these special characters:
5324         \b      backspace <bs>
5325         \e      escape <esc>
5326         \n      newline
5327         \r      return <cr>
5328         \t      tab <tab>
5329         \\      backslash
5330         \"      double quote
5331
5332       Examples:
5333
5334         "\"Hello,\tWorld!\""
5335         "Hi,\nthere!"
5336
5337       literal-string
5338       --------------
5339       'string'             string constant
5340
5341       Note that single quotes are used.
5342
5343       This  string  is  taken as it is.  No backslashes are removed or have a
5344       special meaning.  The only exception is that two quotes stand  for  one
5345       quote.
5346
5347       Examples:
5348
5349         'All\slashes\are\saved.'
5350         'This string contains doubled single quotes ''here'''
5351
5352       option
5353       ------
5354       &option                option value (local one is preferred, if exists)
5355       &g:option             global option value  &l:option              local
5356       option value
5357
5358       Examples:
5359
5360         echo 'Terminal size: '.&columns.'x'.&lines
5361         if &columns > 100
5362
5363       Any  valid  option name can be used here (note that "all" in ":set all"
5364       is a pseudo option).  See ":set options" section above.
5365
5366       environment variable
5367       --------------------
5368       $VAR                  environment variable
5369
5370       The String value of any environment variable.  When it is not  defined,
5371       the result is an empty string.
5372
5373       Examples:
5374
5375         'This is my $PATH env: ' . $PATH
5376         'vifmrc at ' . $MYVIFMRC . ' is used.'
5377
5378       builtin variable
5379       --------------------
5380       v:var                 builtin variable
5381
5382       Information exposed by vifm for use in scripting.
5383
5384       v:count
5385         count  passed to : command, 0 by default.  Can be used in mappings to
5386       passthe count to a different command.
5387       v:count1
5388         same as v:count, but 1 by default.
5389       v:jobcount
5390         number of active jobs (as can be seen in the :jobs menu).
5391       v:session
5392         name of the current session or empty string.
5393       v:servername
5394         See below.
5395
5396       function call
5397       -------------
5398       function(expr1, ...)  function call
5399
5400       See "Functions" section below.
5401
5402       Examples:
5403
5404         "'" . filetype('.') . "'"
5405         filetype('.') == 'reg'
5406
5407       expression nesting
5408       ------------------
5409       (expr1)               nested expression
5410
5411       Groups any other expression of arbitrary complexity enforcing order  in
5412       which operators are applied.
5413
5414

Functions

5416       USAGE                 RESULT      DESCRIPTION
5417
5418       chooseopt({opt})       String       Queries choose parameters passed on
5419       startup.
5420       executable({expr})    Integer     Checks whether {expr} command  avail‐
5421       able.
5422       expand({expr})        String      Expands special keywords in {expr}.
5423       extcached({cache}, {path}, {extcmd})
5424                             String      Caches output of {extcmd} per {cache}
5425       and
5426                                         {path} combination.
5427       filetype({fnum} [, {resolve}])
5428                             String      Returns file type from position.
5429       fnameescape({expr})   String      Escapes {expr} for use in a :command.
5430       getpanetype()         String      Returns type of current pane.
5431       has({property})       Integer     Checks whether  instance  has  {prop‐
5432       erty}.
5433       layoutis({type})       Integer      Checks  whether  layout  is of type
5434       {type}.
5435       paneisat({loc})       Integer     Checks whether  current  pane  is  at
5436       {loc}.
5437       system({command})      String       Executes  shell command and returns
5438       its output.
5439       tabpagenr([{arg}])    Integer     Returns number  of  current  or  last
5440       tab.
5441       term({command})        String       Like  system(), but for interactive
5442       commands.
5443
5444       chooseopt({opt})
5445
5446       Retrieves values of options related to file choosing.  {opt} can be one
5447       of:
5448           files      returns argument of --choose-files or empty string
5449           dir        returns argument of --choose-dir or empty string
5450           cmd        returns argument of --on-choose or empty string
5451           delimiter  returns argument of --delimiter or the default one (\n)
5452
5453       executable({expr})
5454
5455       If {expr} is absolute or relative path, checks whether path destination
5456       exists and refers to an executable, otherwise  checks  whether  command
5457       named  {expr}  is  present  in directories listed in $PATH.  Checks for
5458       various executable extensions on Windows.  Returns  boolean  value  de‐
5459       scribing result of the check.
5460
5461       Example:
5462
5463         " use custom default viewer script if it's available and installed
5464         " in predefined system directory, otherwise try to find it elsewhere
5465         if executable('/usr/local/bin/defviewer')
5466             fileview * /usr/local/bin/defviewer %c
5467         else
5468             if executable('defviewer')
5469                 fileview * defviewer %c
5470             endif
5471         endif
5472
5473       expand({expr})
5474
5475       Expands  environment  variables  and  macros in {expr} (in this order).
5476       Returns a string.  See "Command macros" section above.
5477
5478       Examples:
5479
5480         " percent sign
5481         :echo expand('%%')
5482         " the last part of directory name of the other pane
5483         :echo expand('%D:t')
5484         " $PATH environment variable (same as `:echo $PATH`)
5485         :echo expand('$PATH')
5486         " full path to the current file with backslashes
5487         :echo expand('%c:p:gs!/!\!')
5488
5489       extcached({cache}, {path}, {extcmd})
5490
5491       Caches value of {extcmd} external command automatically updating it  as
5492       necessary  based  on  monitoring change date of a {path}.  The cache is
5493       invalidated when file or its meta-data is updated.  A single  path  can
5494       have multiple caches associated with it.
5495
5496       {path} value is normalized, but symbolic links in it aren't resolved.
5497
5498       Example:
5499
5500         " display number and size of blocks actually used by a file or directory
5501         set statusline+=" Uses: %{ extcached('uses',
5502                                             expand('%c'),
5503                                             expand('stat --format=%%bx%%B %c')) }"
5504
5505       filetype({fnum} [, {resolve}])
5506
5507       The  result  is  a string, which represents file type and is one of the
5508       list:
5509           exe     executables
5510           reg     regular files
5511           link    symbolic links
5512           broken  broken symbolic links (appears only when resolving)
5513           dir     directories
5514           char    character devices
5515           block   block devices
5516           fifo    pipes
5517           sock    *nix domain sockets
5518           ?       unknown file type (should not normally happen) or
5519                   non-file (pseudo-entries in compare view)
5520
5521       The result can also be an empty string in case of invalid argument.
5522
5523       Parameter {fnum} can have following values:
5524           - '.' to get type of file under the cursor in the active pane
5525           - numerical value base 1 to get type of file on specified line num‐
5526       ber
5527
5528       Optional  parameter  {resolve}  is  treated  as a boolean and specifies
5529       whether symbolic links should be resolved.
5530
5531       fnameescape({expr})
5532
5533       Escapes parameter to make it suitable for use as an argument of a :com‐
5534       mand.  List of escaped characters includes %, which is doubled.
5535
5536       Usage example:
5537
5538         " navigate to most recently modified file in current directory
5539         execute 'goto' fnameescape(system('ls -t | head -1'))
5540
5541       getpanetype()
5542
5543       Retrieves string describing type of current pane.  Possible return val‐
5544       ues:
5545           regular      regular file listing of some directory
5546           custom       custom file list (%u)
5547           very-custom  very custom file list (%U)
5548           tree         tree view
5549
5550       has({property})
5551
5552       Allows examining internal parameters from scripts to  e.g.  figure  out
5553       environment  in which application is running.  Returns 1 if property is
5554       true/present, otherwise 0 is returned.  Currently the following proper‐
5555       ties are supported (anything else will yield 0):
5556           unix  runs in *nix-like environment (including Cygwin)
5557           win   runs on Windows
5558           #*    whether particular Lua handler exists
5559
5560       Usage example:
5561
5562         " skip user/group on Windows
5563         if !has('win')
5564             let $RIGHTS = '%10u:%-7g '
5565         endif
5566
5567         execute 'set' 'statusline="  %t%= %A '.$RIGHTS.'%15E %20d  "'
5568
5569       layoutis({type})
5570
5571       Checks  whether current interface layout is {type} or not, where {type}
5572       can be:
5573           only    single-pane mode
5574           split   double-pane mode (either vertical or horizontal split)
5575           vsplit  vertical split (left and right panes)
5576           hsplit  horizontal split (top and bottom panes)
5577
5578       Usage example:
5579
5580         " automatically split vertically before enabling preview
5581         :nnoremap w :if layoutis('only') | vsplit | endif | view!<cr>
5582
5583       paneisat({loc})
5584
5585       Checks whether position of active pane in current layout matches one of
5586       the following locations:
5587           top     pane reaches top border
5588           bottom  pane reaches bottom border
5589           left    pane reaches left border
5590           right   pane reaches right border
5591
5592       system({command})
5593
5594       Runs  the command in shell and returns its output (joined standard out‐
5595       put and standard error streams).  All trailing newline  characters  are
5596       stripped  to allow easy appending to command output.  Ctrl-C should in‐
5597       terrupt the command.
5598
5599       Use this function to consume output of external commands that don't re‐
5600       quire  user  interaction  and term() for interactive commands that make
5601       use of terminal and are capable of handling stream redirection.
5602
5603       Usage example:
5604
5605         " command to enter .git/ directory of git-repository (when ran inside one)
5606         command! cdgit :execute 'cd' fnameescape(system('git rev-parse --git-dir'))
5607
5608       tabpagenr([{arg}])
5609
5610       When called without arguments returns number of current tab  page  base
5611       one.
5612
5613       When called with "$" as an argument returns number of the last tab page
5614       base one, which is the same as number of tabs.
5615
5616       term({command})
5617
5618       Same as system() function, but user interface is  shutdown  during  the
5619       execution  of  the  command, which makes sure that external interactive
5620       applications won't affect the way terminal is used by vifm.
5621
5622       Usage example:
5623
5624         " command to change directory by picking it via fzf
5625         command! fzfcd :execute 'cd'
5626                                fnameescape(term('find -type d | fzf 2> /dev/tty'))
5627
5629       When navigating to some path from a menu there is a difference  in  end
5630       location  depending  on  whether path has trailing slash or not.  Files
5631       normally don't have trailing slashes so "file/" won't work and one  can
5632       only  navigate  to  a  file anyway.  On the other hand with directories
5633       there are two options: navigate to a directory or inside of it.  To al‐
5634       low  both  use cases, the first one is used on paths like "dir" and the
5635       second one for "dir/".
5636
5637       Commands
5638
5639       :range navigate to a menu line.
5640
5641       :exi[t][!] :q[uit][!] :x[it][!]
5642              leave menu mode.
5643
5644       :noh[lsearch]
5645              reset search match highlighting.
5646
5647       :w[rite] {dest}
5648              write all menu lines into file specified by {dest}.
5649
5650       General
5651
5652       j, Ctrl-N - move down.
5653       k, Ctrl-P - move up.
5654       Enter, l - select and exit the menu.
5655       Ctrl-L - redraw the menu.
5656
5657       Escape, Ctrl-C, ZZ, ZQ, q - quit.
5658
5659       In all menus
5660
5661       The following set of keys has the same meaning as in normal mode.
5662
5663       Ctrl-B, Ctrl-F
5664       Ctrl-D, Ctrl-U
5665       Ctrl-E, Ctrl-Y
5666       /, ?
5667       n, N
5668       [count]G, [count]gg
5669       H, M, L
5670       zb, zt, zz
5671
5672       zh - scroll menu items [count] characters to the right.
5673       zl - scroll menu items [count] characters to the left.
5674       zH - scroll menu items half of screen width characters to the right.
5675       zL - scroll menu items half of screen width characters to the left.
5676
5677       : - enter command line mode for menus (currently only :exi[t], :q[uit],
5678       :x[it] and :{range} are supported).
5679
5680       b - interpret content of the menu as list of paths and use it to create
5681       custom view in place of previously active  pane.   See  "Custom  views"
5682       section below.
5683       B - same as above, but creates unsorted view.
5684
5685       v  - load menu content into quickfix list of the editor (Vim compatible
5686       by assumption) or if list doesn't  have  separators  after  file  names
5687       (colons) open each line as a file name.
5688
5689
5690       Below  is  description of additional commands and reaction on selection
5691       in some menus and dialogs.
5692
5693       Apropos menu
5694
5695       Selecting menu item runs man on a given topic.  Menu  won't  be  closed
5696       automatically to allow view several pages one by one.
5697
5698       Command-line mode abbreviations menu
5699
5700       Type dd on an abbreviation to remove it.
5701
5702       c  leaves menu preserving file selection and inserts right-hand side of
5703       selected command into command-line.
5704
5705       Color scheme menu
5706
5707       Selecting name of a color scheme applies it the same way as  if  ":col‐
5708       orscheme <name>" was executed on the command-line.
5709
5710       Commands menu
5711
5712       Selecting command executes it with empty arguments (%a).
5713
5714       dd on a command to remove.
5715
5716       Marks menu
5717
5718       Selecting mark navigates to it.
5719
5720       dd on a mark to remove it.
5721
5722       Bookmarks menu
5723
5724       Selecting a bookmark navigates to it.
5725
5726       Type dd on a bookmark to remove it.
5727
5728       gf and e also work to make it more convenient to bookmark files.
5729
5730       Trash (:lstrash) menu
5731
5732       r on a file name to restore it from trash.
5733
5734       dd deletes file under the cursor.
5735
5736       Trashes (:trashes) menu
5737
5738       dd empties selected trash in background.
5739
5740       Directory history and Trashes menus
5741
5742       Selecting  directory  name will change directory of the current view as
5743       if :cd command was used.
5744
5745       Directory stack menu
5746
5747       Selecting directory name will rotate stack to  put  selected  directory
5748       pair at the top of the stack.
5749
5750       File (:file) menu
5751
5752       Commands from vifmrc or typed in command-line are displayed above empty
5753       line.  All commands below empty line are from .desktop files.
5754
5755       c leaves menu preserving file selection and inserts command after :! in
5756       command-line mode.
5757
5758       Grep, find, locate, bookmarks and user menu with navigation (%M macro)
5759
5760       gf  -  navigate  previously  active  view  to  currently selected item.
5761       Leaves menu mode except for grep menu.  Pressing Enter key has the same
5762       effect.
5763
5764       e - open selected path in the editor, stays in menu mode.
5765
5766       c  - leave menu preserving file selection and insert file name after :!
5767       in command-line mode.
5768
5769       User menu without navigation (%m macro)
5770
5771       c leaves menu preserving file selection and inserts whole line after :!
5772       in command-line mode.
5773
5774       Grep menu
5775
5776       Selecting  file  (via Enter or l key) opens it in editor set by 'vicmd'
5777       at given line number.  Menu won't  be  closed  automatically  to  allow
5778       viewing more than one result.
5779
5780       See above for "gf" and "e" keys description.
5781
5782       Command-line history menu
5783
5784       Selecting  an item executes it as command-line command, search query or
5785       local filter.
5786
5787       c leaves menu preserving file selection and inserts line into  command-
5788       line of appropriate kind.
5789
5790       Volumes menu
5791
5792       Selecting  a drive navigates previously active pane to the root of that
5793       drive.
5794
5795       Fileinfo dialog
5796
5797       Enter, q - close dialog
5798
5799       Sort dialog
5800
5801       h, Space - switch ascending/descending.
5802       q - close dialog
5803
5804       One shortcut per sorting key (see the dialog).
5805
5806       Attributes (permissions or properties) dialog
5807
5808       h, Space - check/uncheck.
5809       q - close dialog
5810       r - (*nix only) (un)set all read bits
5811       w - (*nix only) (un)set all write bits
5812       x - (*nix only) (un)set all execute bits
5813       s - (*nix only) (un)set all special (SetUID, SetGID, Sticky) bits
5814       e - (*nix only) (un)set recursion (for directories only)
5815
5816       Item states:
5817
5818       - * - checked flag.
5819
5820       - X - means that it has different value for files in selection.
5821
5822       - d (*nix only) - (only for execute flags) means u-x+X, g-x+X or  o-x+X
5823         argument  for  the  chmod program.  If you're not on OS X and want to
5824         remove execute permission bit from all files, but preserve it for di‐
5825         rectories,  set  all execute flags to 'd' and check 'Set Recursively'
5826         flag.
5827
5828       Jobs menu
5829
5830       dd requests cancellation of job under cursor.  The job won't be removed
5831       from  the list, but marked as being cancelled (if cancellation was suc‐
5832       cessfully requested).  A message will pop up if  the  job  has  already
5833       stopped.   Note  that on Windows cancelling external programs like this
5834       might not work, because their parent shell doesn't have any windows.
5835
5836       e key displays errors of selected job if any were collected.  They  are
5837       displayed  in a new menu, but you can get back to jobs menu by pressing
5838       h.
5839
5840
5841       Undolist menu
5842
5843       r - reset undo position to group under the cursor.
5844
5845
5846       Media menu
5847
5848       Selecting a device either mounts (if it wasn't mounted  yet)  or  navi‐
5849       gates to its first mount point.
5850
5851       Selecting a mount point navigates to it.
5852
5853       Selecting "not mounted" line causes mounting.
5854
5855       Selecting any other line does nothing.
5856
5857       r - reload the list.
5858
5859       m  -  mount/unmount  device (cursor should be positioned on lines under
5860       device information).
5861
5862       [ - put cursor on the previous device.
5863
5864       ] - put cursor on the next device.
5865
5866
5867       Plugins menu
5868
5869       e - display log messages of selected  plugin  if  any  were  collected.
5870       They  are displayed in a new menu, but you can get back to plugins menu
5871       by pressing h.
5872
5873       gf - navigate previously  active  view  to  the  location  of  selected
5874       plugin.  Leaves menu mode.
5875
5876

Custom views

5878       Definition
5879
5880       Normally  file views contain list of files from a single directory, but
5881       sometimes it's useful to populate them with list of files that  do  not
5882       belong to the same directory, which is what custom views are for.
5883
5884       Presentation
5885
5886       Custom  views are still related to directory they were in before custom
5887       list was loaded.  Path to that directory (original  directory)  can  be
5888       seen in the title of a custom view.
5889
5890       Files in same directory have to be named differently, this doesn't hold
5891       for custom views thus seeing just file names might be rather confusing.
5892       In order to give an idea where files come from and when possible, rela‐
5893       tive paths to original directory of the view  is  displayed,  otherwise
5894       full path is used instead.
5895
5896       Custom views normally don't contain any inexistent files.
5897
5898       Navigation
5899
5900       Custom  views  have  some  differences related to navigation in regular
5901       views.
5902
5903       gf - acts similar to gf on symbolic links and navigates to the file  at
5904       its real
5905            location.
5906
5907       h  -  go  to  closes  parent node in tree view, otherwise return to the
5908       original directory.
5909
5910       gh - return to the original directory.
5911
5912       Opening ".." entry also causes return to the original directory.
5913
5914       History
5915
5916       Custom list exists only while it's visible, once left one can't  return
5917       to it, so there is no appearances of it in any history.
5918
5919       Filters
5920
5921       Only  local  filter  affects content of the view.  This is intentional,
5922       presumably if one loads list, precisely that list should  be  displayed
5923       (except for inexistent paths, which are ignored).
5924
5925       Search
5926
5927       Although  directory  names are visible in listing, they are not search‐
5928       able.  Only file names are taken into account (might be changed in  fu‐
5929       ture, searching whole lines seems quite reasonable).
5930
5931       Sorting
5932
5933       Contrary  to search sorting by name works on whole visible part of file
5934       path.
5935
5936       Highlight
5937
5938       Whole file name is highlighted as one entity, even if there are  direc‐
5939       tory elements.
5940
5941       Updates
5942
5943       Reloads  can  occur,  though  they are not automatic due to files being
5944       scattered among different places.  On a reload,  inexistent  files  are
5945       removed and meta-data of all other files is updated.
5946
5947       Once  custom  view forgets about the file, it won't add it back even if
5948       it's created again.  So not seeing file previously affected by an oper‐
5949       ation, which was undone is normal.
5950
5951       Operations
5952
5953       All  operations that add files are forbidden for custom views.  For ex‐
5954       ample, moving/copying/putting files into a custom  view  doesn't  work,
5955       because it doesn't make much sense.
5956
5957       On  the  other  hand,  operations  that use files of a custom view as a
5958       source (e.g. yanking, copying, moving file from custom view,  deletion)
5959       and operations that modify names are all allowed.
5960

Compare views

5962       Kinds
5963
5964       :compare can produce four different results depending on arguments:
5965        - single compare view (ofone and either listall or listdups);
5966        - single custom view (ofone and listunique);
5967        - two compare views (ofboth and either listall or listdups);
5968        - two custom views (ofboth and listunique).
5969
5970       The  first  two display files of one file system tree.  Here duplicates
5971       are files that have at least one copy in the same tree.  The other  two
5972       kinds  of  operation  compare  two trees, in which duplicates are files
5973       that are found in both trees.
5974
5975       Lists of unique files are presented in custom views because there is no
5976       file  grouping  to  preserve  as all file ids are guaranteed to be dis‐
5977       tinct.
5978
5979       Creation
5980
5981       Arguments passed to :compare form four categories  each  with  its  own
5982       prefix and is responsible for particular property of operation.
5983
5984       Which files to compare:
5985        - ofboth - compares files of two panes against each other;
5986        - ofone  - compares files of the same directory.
5987
5988       How files are compared:
5989        - byname     - by their name only;
5990        - bysize     - only by their size;
5991        -  bycontents  - by data they contain (combination of size and hash of
5992       small chunk of contents is used as first approximation, so don't  worry
5993       too much about large files).
5994
5995       Which files to display:
5996        - listall    - all files;
5997        - listunique - unique files only;
5998        - listdups   - only duplicated files.
5999
6000       How results are grouped (has no effect if "ofone" specified):
6001        -  groupids   - files considered identical are always adjacent in out‐
6002       put;
6003        - grouppaths - file system ordering is preferred  (this  also  enables
6004       displaying identically named files as mismatches).
6005
6006       Which files to omit:
6007        - skipempty - ignore empty files.
6008
6009       Each argument can appear multiple times, the rightmost one of the group
6010       is considered.  Arguments alter default behaviour instead of substitut‐
6011       ing it.
6012
6013       Examples
6014
6015       The  defaults  corresponds to probably the most common use case of com‐
6016       paring files in two trees with grouping by paths, so the following  are
6017       equivalent:
6018
6019         :compare
6020         :compare bycontents grouppaths
6021         :compare bycontents listall ofboth grouppaths
6022
6023       Another use case is to find duplicates in the current sub-tree:
6024
6025         :compare listdups ofone
6026
6027       The following command lists files that are unique to each pane:
6028
6029         :compare listunique
6030
6031       Look
6032
6033       The  view  can't switch to ls-like view as it's unable to display diff-
6034       like data.
6035
6036       Comparison views have second column displaying id of  the  file,  files
6037       with  same  id are considered to be equal.  The view columns configura‐
6038       tion is predefined.
6039
6040       Behaviour
6041
6042       When two views are being compared  against  each  other  the  following
6043       changes to the regular behaviour apply:
6044        - views are scrolled synchronously (as if 'scrollbind' was set);
6045        - views' cursors are synchronized;
6046        - local filtering is disabled (its results wouldn't be meaningful);
6047        -  zd excludes groups of adjacent identical files, 1zd gives usual be‐
6048       haviour;
6049        - sorting is permanently disabled (ordering is fixed);
6050        - removed files hide their counter pairs;
6051        - exiting one of the views terminates the other immediately;
6052        - renaming files isn't blocked, but isn't taken into account and might
6053       require regeneration of comparison;
6054        -  entries  which indicate absence of equivalent file have empty names
6055       and can be matched as such;
6056        - when unique files of both views  are  listed  custom  views  can  be
6057       empty, this absence of unique files is stated clearly.
6058
6059       One  compare view has similar properties (those that are applicable for
6060       single pane).
6061
6062       Files are gathered in this way:
6063        - recursively starting at current location of the view;
6064        - dot files are excluded if view hides them at the moment of  compari‐
6065       son,  file name filters are obeyed as well so you end up comparing what
6066       you see;
6067        - directories are not taken into account;
6068        - symbolic links to directories are ignored.
6069

Startup

6071       On startup vifm determines several variables that are used during  exe‐
6072       cution.  They are determined in the order they appear below.
6073
6074       On  *nix  systems $HOME is normally present and used as is.  On Windows
6075       systems vifm tries to find correct home directory in the following  or‐
6076       der:
6077        - $HOME variable;
6078        - $USERPROFILE variable (on Windows only);
6079        -  a  combination  of  $HOMEDRIVE  and $HOMEPATH variables (on Windows
6080       only).
6081
6082       vifm tries to find correct configuration directory by checking the fol‐
6083       lowing places:
6084        - $VIFM variable;
6085        - parent directory of the executable file (on Windows only);
6086        - $HOME/.vifm directory;
6087        - $APPDATA/Vifm directory (on Windows only);
6088        - $XDG_CONFIG_HOME/vifm directory;
6089        - $HOME/.config/vifm directory.
6090
6091       vifm tries to find correct configuration file by checking the following
6092       places:
6093        - $MYVIFMRC variable;
6094        - vifmrc in parent directory of the executable file (on Windows only);
6095        - $VIFM/vifmrc file.
6096

Configure

6098       See "Startup" section above for the explanations  on  $VIFM  and  $MYV‐
6099       IFMRC.
6100
6101       The  vifmrc  file  contains  commands  that  will  be  executed on vifm
6102       startup.  There are two such files: global and local.  Global one is at
6103       {prefix}/etc/vifm/vifmrc,  see  $MYVIFMRC  variable description for the
6104       search algorithm used to find local vifmrc.  Global  vifmrc  is  loaded
6105       before  the local one, so that the later one can redefine anything con‐
6106       figured globally.
6107
6108       Use vifmrc to set settings, mappings, filetypes etc.  To use multi line
6109       commands  precede  each next line with a slash (whitespace before slash
6110       is ignored, but all spaces at the end of the lines are saved).  For ex‐
6111       ample:
6112
6113         set
6114             \smartcase
6115
6116       equals "setsmartcase".  When
6117
6118         set<space here>
6119             \ smartcase
6120
6121       equals "set  smartcase".
6122
6123       The $VIFM/vifminfo file contains generic state of the application.  You
6124       can control what is stored in vifminfo by  setting  'vifminfo'  option.
6125       Vifm always writes this file on exit unless 'vifminfo' option is empty.
6126       Marks, bookmarks, commands, histories, filetypes, fileviewers and  reg‐
6127       isters in the file are merged with vifm configuration (which has bigger
6128       priority).
6129
6130       Generally, runtime configuration has bigger  priority  during  merging,
6131       but there are some exceptions:
6132
6133         - directory  stack stored in the file is not overwritten unless some‐
6134           thing is changed in vifm instance that performs merge;
6135
6136         - each mark or bookmark is marked with a  timestamp,  so  that  newer
6137           value is not overwritten by older one, thus no matter from where it
6138           comes, the newer one wins;
6139
6140         - all histories are marked with timestamps  on  storing,  this  means
6141           that last instance to quit puts its elements on top of the list;
6142
6143         - tabs are merged only if both current instance and stored state con‐
6144           tain exactly one tab of any kind.
6145
6146       The $VIFM/scripts directory can contain shell scripts.   vifm  modifies
6147       its  PATH  environment  variable  to let user run those scripts without
6148       specifying full path.  All subdirectories of the $VIFM/scripts will  be
6149       added  to  PATH too.  Script in a subdirectory overlaps script with the
6150       same name in all its parent directories.
6151
6152       The $VIFM/colors/  and  {prefix}/etc/vifm/colors/  directories  contain
6153       color  schemes.  Available color schemes are searched in that order, so
6154       on name conflict the one in $VIFM/colors/ wins.
6155
6156       Each color scheme should have ".vifm" extension.  This wasn't the  case
6157       before and for this reason the following rules apply during lookup:
6158
6159         - if  there  is  no  file with .vifm extension, all regular files are
6160           listed;
6161
6162         - otherwise only files with .vifm extension are listed (with the  ex‐
6163           tension being truncated).
6164

Sessions

6166       Sessions  provide  a way to have multiple persistent runtime configura‐
6167       tions.  Think of them as second-level vifminfo files in addition to the
6168       first-level  one  used  by all sessions.  In other words, they aren't a
6169       replacement for vifminfo file that exists without sessions, but an  ad‐
6170       dition  to it.  One can empty 'vifminfo' option and rely solely on ses‐
6171       sions, but in practice one might want to share  some  state  among  in‐
6172       stances  in  different  sessions or have an "out-of-sessions" state for
6173       tasks that don't deserve a session of their own.
6174
6175       This leads to a two-level structure where data  in  session  files  has
6176       higher  priority  than  data in vifminfo files (where this makes sense)
6177       following the same rules that merging of vifminfo file obeys.  In addi‐
6178       tion to that, history items from session files are never ordered before
6179       history items from vifminfo file.
6180
6181       Format
6182
6183       Sessions have the format of vifminfo files, they do not consist of  se‐
6184       quence  of  command-line  commands  and are not meant to be sourced via
6185       :source command.
6186
6187       Storage and naming
6188
6189       `$VIFM/sessions/` directory serves as a storage for  sessions.   Conse‐
6190       quently  names should be valid filenames.  The structure of the storage
6191       is flat meaning that there are no subdirectories, that's why  names  of
6192       sessions can't contain slashes.
6193
6194       Usage model
6195
6196       Contrary  to Vim, vifm automates basic management of sessions.  You can
6197       start, switch, stop or delete a session using builtin means.
6198
6199       Current session is saved at the same time vifminfo is saved (on  normal
6200       exits  or  explicitly  on :write command) and right before switching to
6201       another session.  To avoid saving in those cases use  :session  command
6202       to detach (without saving) from a session before proceeding.
6203
6204       Related topics
6205
6206       Commands: :session, :delsession
6207       Options: 'sessionoptions'
6208       Variables: v:session
6209

Automatic FUSE mounts

6211       vifm has a builtin support of automated FUSE file system mounts.  It is
6212       implemented using file associations  mechanism.   To  enable  automated
6213       mounts, one needs to use a specially formatted program line in filetype
6214       or filextype commands.  These use special  macros,  which  differ  from
6215       macros in commands unrelated to FUSE.  Currently three formats are sup‐
6216       ported:
6217
6218       1) FUSE_MOUNT This format should be used in case when  all  information
6219       needed  for  mounting all files of a particular type is the same.  E.g.
6220       mounting of tar files don't require any file specific options.
6221
6222       Format line:
6223         FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND]
6224
6225       Example filetype command:
6226
6227         :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
6228
6229       2) FUSE_MOUNT2 This format allows one to use specially formatted  files
6230       to perform mounting and is useful for mounting remotes, for example re‐
6231       mote file systems over ftp or ssh.
6232
6233       Format line:
6234         FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]
6235
6236       Example filetype command:
6237
6238         :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
6239
6240       Example file content:
6241
6242         root@127.0.0.1:/
6243
6244       3) FUSE_MOUNT3
6245
6246       This format is equivalent to FUSE_MOUNT, but omits unmounting.   It  is
6247       useful for cases, when unmounting isn't needed, like when using AVFS.
6248
6249       Example :filetype command:
6250
6251         :filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz,*.deb
6252              \ {Mount with avfs}
6253              \ FUSE_MOUNT3|mount-avfs %DESTINATION_DIR %SOURCE_FILE
6254
6255       Example `mount-avfs` helper script:
6256
6257         #!/bin/sh
6258
6259         dest=$1
6260         file=$2
6261
6262         rmdir "$dest"
6263         ln -s "$HOME/.avfs$file#/" "$dest"
6264
6265       All  %  macros  are  expanded by vifm at runtime and have the following
6266       meaning:
6267         - %SOURCE_FILE is replaced by full path to selected file;
6268         - %DESTINATION_DIR is replaced by full path to mount directory, which
6269       is created by vifm basing on the value of 'fusehome' option;
6270         -  %PARAM  value  is filled from the first line of file (whole line),
6271       though in the future it can be changed to whole file content;
6272         - %FOREGROUND means that you want to run mount command as  a  regular
6273       command  (required  to  be able to provide input for communication with
6274       mounter in interactive way).
6275
6276       %FOREGROUND is an optional macro.  Other macros are not mandatory,  but
6277       mount commands likely won't work without them.
6278
6279       %CLEAR  is  obsolete name of %FOREGROUND, which is still supported, but
6280       might be removed in future.  Its use is discouraged.
6281
6282       Unlike macros elsewhere, these are recognized only if  they  appear  at
6283       the  end  of  a command or are followed by a space.  There is no way to
6284       escape % either.  These are historical limitations, which might be  ad‐
6285       dressed in the future.
6286
6287       The  mounted  FUSE  file systems will be automatically unmounted in two
6288       cases:
6289
6290         - when vifm quits (with ZZ, :q, etc. or when killed by signal);
6291
6292         - when you explicitly leave mount point going up to its parent direc‐
6293           tory  (with h, Enter on "../" or ":cd ..") and other pane is not in
6294           the same directory or its child directories.
6295

View look

6297       vifm supports displaying of file list view in two different ways:
6298
6299         - in a table mode, when multiple columns  can  be  set  using  'view‐
6300           columns' option (see "Column view" section below for details);
6301
6302         - in  a  multicolumn list manner which looks almost like `ls -x` com‐
6303           mand output (see "ls-like view" section below for details).
6304
6305       The look is local for each view and can be chosen by changing value  of
6306       the 'lsview' boolean option.
6307
6308       Depending  on view look some of keys change their meaning to allow more
6309       natural cursor moving.  This concerns mainly h, j, k, l and other simi‐
6310       lar navigation keys.
6311
6312       Also  some of options can be ignored if they don't affect view display‐
6313       ing in selected look.  For example value of 'viewcolumns' when 'lsview'
6314       is set.
6315

ls-like view

6317       When this view look is enabled by setting 'lsview' option on, vifm will
6318       display files in multiple columns.  Number of columns  depends  on  the
6319       length  of  the  longest  file name present in current directory of the
6320       view.  Whole file list is automatically reflowed on  directory  change,
6321       terminal or view resize.
6322
6323       View looks close to output of `ls -x` command, so files are listed left
6324       to right in rows.
6325
6326       In this mode file manipulation commands (e.g. d) don't  work  line-wise
6327       like  they  do in Vim, since such operations would be uncommon for file
6328       manipulation tasks.  Thus, for example, dd  will  remove  only  current
6329       file.
6330
6331       By  default the view is filled by lines, 'lsoptions' can be used to get
6332       filling by columns.
6333
6334       Note that tree-view and compare view inhibit ls-like view.
6335

Column view

6337       View columns are described by a comma-separated list of column descrip‐
6338       tions, each of which has the following format
6339           [  '-'  |  '*' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type | literal '}'
6340       '.'{0,3}
6341       where fw stands for full width, tw stands for text width, bar is  logi‐
6342       cal  or,  square brackets denote optional parts and curly braces define
6343       range of repetitions for a symbol that precedes them.
6344
6345       So it basically consists of four parts:
6346        1. Optional alignment specifier
6347        2. Optional width specifier
6348        3. Mandatory column name
6349        4. Optional cropping specifier
6350
6351       Alignment specifier
6352
6353       It's an optional minus or asterisk sign as  the  first  symbol  of  the
6354       string.
6355
6356       Specifies type of text alignment within a column.  Three types are sup‐
6357       ported:
6358
6359       - left align
6360
6361           set viewcolumns=-{name}
6362
6363       - right align (default)
6364
6365           set viewcolumns={name}
6366
6367       - dynamic align
6368
6369         It's like left alignment, but when the text is bigger than  the  col‐
6370         umn,  the alignment is made at the right (so the part of the field is
6371         always visible).
6372
6373           set viewcolumns=*{name}
6374
6375       Width specifier
6376
6377       It's a number followed by a  percent  sign,  two  numbers  (second  one
6378       should  be less than or equal to the first one) separated with a dot or
6379       a single number.
6380
6381       Specifies column width and its units. There are three size types:
6382
6383       - absolute size - column width is specified in characters
6384
6385           set viewcolumns=-100{name},20.15{ext}
6386
6387         results in two columns with lengths of 100  and  20  and  a  reserved
6388         space of five characters on the left of second column.
6389
6390       - relative  (percent)  size  - column width is specified in percents of
6391         view width
6392
6393           set viewcolumns=-80%{name},15%{ext},5%{mtime}
6394
6395         results in three columns with lengths of 80/100, 15/100 and 5/100  of
6396         view width.
6397
6398       - auto size (default) - column width is automatically determined
6399
6400           set viewcolumns=-{name},{ext},{mtime}
6401
6402         results  in  three  columns  with  length of one third of view width.
6403         There is no size adjustment to content, since it will slow down  ren‐
6404         dering.
6405
6406       Columns  of  different  sizing  types  can be freely mixed in one view.
6407       Though sometimes some of columns can be seen partly  or  be  completely
6408       invisible if there is not enough space to display them.
6409
6410       Column contents
6411
6412       This is usually a sorting key surrounded with curly braces, e.g.
6413
6414         {name},{ext},{mtime}
6415
6416       {name}  and {iname} types are the same and present both for consistency
6417       with 'sort' option.
6418
6419       Following types don't have corresponding sorting keys:
6420
6421         - {root}     - display name without extension (as  a  complement  for
6422           {ext})
6423
6424         - {fileroot} - display name without extension for anything except for
6425           directories and symbolic links to directories (as a complement  for
6426           {fileext})
6427
6428       Empty  curly braces ({}) are replaced with the default secondary column
6429       for primary sort key. So after the next command view will be  displayed
6430       almost  as if 'viewcolumns' is empty, but adding ellipsis for long file
6431       names:
6432
6433         set viewcolumns=-{name}..,6{}.
6434
6435       The last kind of column value is a string literal.  The literal is used
6436       as a column value for every row.  The syntax is "{#literal}", for exam‐
6437       ple:
6438
6439         3{#},{#|},{# | }
6440
6441       This can be used to draw column separators.  Mind that for  convenience
6442       literals  have  different defaults: truncation and automatically deter‐
6443       mined absolute size, which is what you usually want for them.  Example:
6444
6445         set viewcolumns=*{name}..,{#|},6{}.
6446
6447       Cropping specifier
6448
6449       It's from one to three dots after closing curly brace in column format.
6450
6451       Specifies type of text truncation if it  doesn't  fit  in  the  column.
6452       Currently three types are supported:
6453
6454         - truncation - text is truncated
6455
6456             set viewcolumns=-{name}.
6457
6458           results  in  truncation  of  names that are too long too fit in the
6459           view.
6460
6461         - adding of ellipsis - ellipsis on the left or right are  added  when
6462           needed
6463
6464             set viewcolumns=-{name}..
6465
6466           results  in  that  ellipsis  are  added at the end of too long file
6467           names.
6468
6469         - none (default) - text can pass column boundaries
6470
6471             set viewcolumns=-{name}...,{ext}
6472
6473           results in that long file names can partially be written on the ext
6474           column.
6475

Color schemes

6477       The color schemes in vifm can be applied in two different ways:
6478
6479         - as the primary color scheme;
6480
6481         - as local to a pane color scheme.
6482
6483       Both types are set using :colorscheme command, but of different forms:
6484
6485         - :colorscheme color_scheme_name - for the primary color scheme;
6486
6487         - :colorscheme color_scheme_name directory - for local color schemes.
6488
6489       Look  of different parts of the TUI (Text User Interface) is determined
6490       in this way:
6491
6492         - Border, TabLine,  TabLineSel,  TopLineSel,  TopLine,  CmdLine,  Er‐
6493           rorMsg, StatusLine, JobLine, SuggestBox and WildMenu are always de‐
6494           termined by the primary color scheme;
6495
6496         - CurrLine, Selected, Directory, Link,  BrokenLink,  Socket,  Device,
6497           Executable,  Fifo, CmpMismatch, CmpUnmatched, CmpBlank, Win, AuxWin
6498           and OtherWin are determined by primary color scheme and  a  set  of
6499           local color schemes, which can be empty.
6500
6501       There might be a set of local color schemes because they are structured
6502       hierarchically according to file system structure. For example,  having
6503       the following piece of file system:
6504
6505         ~
6506         `-- bin
6507            |
6508            `-- my
6509
6510       Two color schemes:
6511
6512         # ~/.config/vifm/colors/for_bin.vifm
6513         highlight Win cterm=none ctermfg=white ctermbg=red
6514         highlight CurrLine cterm=none ctermfg=red ctermbg=black
6515
6516         # ~/.config/vifm/colors/for_bin_my.vifm
6517         highlight CurrLine cterm=none ctermfg=green ctermbg=black
6518
6519       And these three commands in the vifmrc file:
6520
6521         colorscheme Default
6522         colorscheme for_bin ~/bin
6523         colorscheme for_bin_my ~/bin/my
6524
6525       File list will look in the following way for each level:
6526
6527       - ~/ - Default color scheme
6528         black background
6529         cursor with blue background
6530
6531       - ~/bin/ - mix of Default and for_bin color schemes
6532         red background
6533         cursor with black background and red foreground
6534
6535       - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes
6536         red background
6537         cursor with black background and green foreground
6538

Trash directory

6540       vifm has support of trash directory, which is used as temporary storage
6541       for deleted files or files that were cut.  Using trash is controlled by
6542       the  'trash'  option,  and  exact  path  to  the  trash can be set with
6543       'trashdir' option.  Trash directory in vifm differs  from  the  system-
6544       wide  one  by default, because of possible incompatibilities of storing
6545       deleted  files  among  different  file  managers.   But  one  can   set
6546       'trashdir'  to  "~/.local/share/Trash" to use a "standard" trash direc‐
6547       tory.
6548
6549       There are two scenarios of using trash in vifm:
6550
6551         1. As a place for storing files that were cut by "d" and may  be  in‐
6552            serted to some other place in file system.
6553
6554         2. As a storage of files, that are deleted but not purged yet.
6555
6556       The first scenario uses deletion ("d") operations to put files to trash
6557       and put ("p") operations to restore files from trash  directory.   Note
6558       that  such operations move files to and from trash directory, which can
6559       be long term operations in  case  of  different  partitions  or  remote
6560       drives mounted locally.
6561
6562       The  second scenario uses deletion ("d") operations for moving files to
6563       trash directory and :empty command-line command to purge all previously
6564       deleted files.
6565
6566       Deletion  and  put  operations  depend on registers, which can point to
6567       files in trash directory.  Normally, there are no nonexistent files  in
6568       registers, but vifm doesn't keep track of modifications under trash di‐
6569       rectory, so one shouldn't expect value of registers  to  be  absolutely
6570       correct if trash directory was modified not by operation that are meant
6571       for it.  But this won't lead to any issues with operations, since  they
6572       ignore nonexistent files.
6573

Client-Server

6575       vifm  supports  remote  execution of command-line mode commands, remote
6576       changing of directories and expression evaluation.   This  is  possible
6577       using --remote and --remote-expr command-line arguments.
6578
6579       To  execute  a command remotely combine --remote argument with -c <com‐
6580       mand> or +<command>.  For example:
6581
6582         vifm --remote -c 'cd /'
6583         vifm --remote '+cd /'
6584
6585       To change directory not using command-line mode commands one can  spec‐
6586       ify paths right after --remote argument, like this:
6587
6588         vifm --remote /
6589         vifm --remote ~
6590         vifm --remote /usr/bin /tmp
6591
6592       Evaluating  expression  remotely  might  be useful to query information
6593       about an instance, for example its location:
6594
6595         vifm --remote-expr 'expand("%d")'
6596
6597       If there are several running instances, the  target  can  be  specified
6598       with  --server-name  option (otherwise, the first one lexicographically
6599       is used):
6600
6601         vifm --server-name work --remote ~/work/project
6602
6603       List of names of running instances can be  obtained  via  --server-list
6604       option.  Name of the current one is available via v:servername.
6605
6606
6607       v:servername
6608              server  name  of  the  running  vifm instance.  Empty if client-
6609              server feature is disabled.
6610

External Renaming

6612       When an editor is run to edit list of file names, contents of the  tem‐
6613       porary file has the following format:
6614
6615         1. Order of lines correspond to the order of files in a view.
6616
6617         2. Lines that start with a "#" are comments and are ignored.
6618
6619         3. Single  backslash at the beginning of a line is ignored, so that a
6620            file starting with a backslash will appear like "\#name".
6621
6622       If an operation was rejected due to issues with file names,  next  time
6623       you'll see the following in this order:
6624
6625         1. Last error (in comments).
6626
6627         2. Original file names (in comments).
6628
6629         3. Failed list of new names.
6630
6631       Mind  that Vim plugin will extract list of original names and show them
6632       in a vertical split.
6633
6634       You can cancel renaming by removing all non-comments from  the  buffer.
6635       This also erases information about previous edits.
6636

Plugin

6638       Plugin for using vifm in vim as a file selector.
6639
6640       Commands:
6641
6642         :EditVifm   select a file or files to open in the current buffer.
6643         :Vifm       alias for :EditVifm.
6644         :SplitVifm  split buffer and select a file or files to open.
6645         :VsplitVifm  vertically  split  buffer  and select a file or files to
6646       open.
6647         :DiffVifm   select a file or files to compare  to  the  current  file
6648       with
6649                     :vert diffsplit.
6650         :TabVifm    select a file or files to open in tabs.
6651
6652       Each command accepts up to two arguments: left pane directory and right
6653       pane directory.  After arguments are checked, vifm process  is  spawned
6654       in  a  special "file-picker" mode.  To pick files just open them either
6655       by pressing l, i or Enter keys, or by running  :edit  command.   If  no
6656       files  are  selected,  file under the cursor is opened, otherwise whole
6657       selection is passed to the plugin and opened in vim.
6658
6659       The plugin have only  two  settings.   It's  a  string  variable  named
6660       g:vifm_term  to  let  user specify command to run GUI terminal.  By de‐
6661       fault it's equal to 'xterm -e'.   And  another  string  variable  named
6662       g:vifm_exec,  which  equals  "vifm"  by  default  and specifies path to
6663       vifm's executable.  To pass arguments  to  vifm  use  g:vifm_exec_args,
6664       which is empty by default.
6665
6666       To  use  the  plugin  copy  the vifm.vim file to either the system wide
6667       vim/plugin directory or into ~/.vim/plugin.
6668
6669       If you would prefer not to use the plugin and it is in the system  wide
6670       plugin directory add
6671
6672       let loaded_vifm=1
6673
6674       to your ~/.vimrc file.
6675

Reserved

6677       The following command names are reserved and shouldn't be used for user
6678       commands.
6679
6680         g[lobal]
6681         v[global]
6682

ENVIRONMENT

6684       VIFM   Points  to  main  configuration   directory   (usually   ~/.con‐
6685              fig/vifm/).
6686
6687       MYVIFMRC
6688              Points    to    main   configuration   file   (usually   ~/.con‐
6689              fig/vifm/vifmrc).
6690
6691       These environment variables are valid inside vifm and also can be  used
6692       to configure it by setting some of them before running vifm.
6693
6694       When $MYVIFMRC isn't set, it's made as $VIFM/vifmrc (exception for Win‐
6695       dows: vifmrc in the same directory as vifm.exe has higher priority than
6696       $VIFM/vifmrc).
6697
6698       See "Startup" section above for more details.
6699
6700       VIFM_FUSE_FILE
6701              On  execution  of  external commands this variable is set to the
6702              full path of file used to initiate FUSE  mount  of  the  closest
6703              mount point from current pane's directory up.  It's not set when
6704              outside FUSE mount point.  When vifm  is  used  inside  terminal
6705              multiplexer,  it  tries to set this variable as well (it doesn't
6706              work this way on its own).
6707

SEE ALSO

6709       vifm-convert-dircolors(1), vifm-pause(1)
6710
6711       Website: https://vifm.info/
6712       Wiki: https://wiki.vifm.info/
6713
6714       Esperanto translation of the documentation by Sebastian Cyprych:
6715       http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html
6716

AUTHOR

6718       Vifm was written by ksteen <ksteen@users.sourceforge.net>
6719       And currently is developed by xaizek <xaizek@posteo.net>
6720
6721
6722
6723vifm 0.12.1                    21 September 2022                       VIFM(1)
Impressum