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

NAME

6       vifm - vi file manager
7

SYNOPSIS

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

DESCRIPTION

14       Vifm is an ncurses based file manager with vi like keybindings.  If you
15       use vi, vifm gives you complete keyboard control over your files  with‐
16       out having to learn a new set of commands.
17

OPTIONS

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

General keys

110       Ctrl-C or Escape
111              cancel most operations (see "Cancellation" section below), clear
112              all selected files.
113
114       Ctrl-L clear and redraw the screen.
115

Basic Movement

117       The basic vi key bindings are used to move through the files and pop-up
118       windows.
119
120       k, gk, or Ctrl-P
121              move cursor up one line.
122
123       j, gj or Ctrl-N
124              move cursor down one line.
125
126       h      when 'lsview' is off move up one directory, otherwise move  left
127              one file.
128
129       l      when  'lsview'  is off move into a directory or launches a file,
130              otherwise move right one file.
131
132       gg     move to the first line of the file list.
133
134       G      move to the last line in the file list.
135
136       gh     go up one directory.
137
138       gl or Enter
139              enter directory or launch a file.
140
141       H      move to the first file in the window.
142
143       M      move to the file in the middle of the window.
144
145       L      move to the last file in the window.
146
147       Ctrl-F or Page Down
148              move forward one page.
149
150       Ctrl-B or Page Up
151              move back one page.
152
153       Ctrl-D jump back one half page.
154
155       Ctrl-U jump forward one half page.
156
157       n%     move to the file that is n percent from the top of the list (for
158              example 25%).
159
160       0 or ^ move  cursor  to the first column.  See 'lsview' option descrip‐
161              tion.
162
163       $      move cursor to the last column.  See  'lsview'  option  descrip‐
164              tion.
165
166       Space  switch file lists.
167

Movement with Count

169       Most  movement  commands  also  accept  a count, 12j would move down 12
170       files.
171
172       [count]%
173              move to percent of the file list.
174
175       [count]j
176              move down [count] files.
177
178       [count]k
179              move up [count] files.
180
181       [count]G or [count]gg
182              move to list position [count].
183
184       [count]h
185              go up [count] directories.
186

Scrolling panes

188       zt     redraw pane with file in top of list.
189
190       zz     redraw pane with file in center of list.
191
192       zb     redraw pane with file in bottom of list.
193
194       Ctrl-E scroll pane one line down.
195
196       Ctrl-Y scroll pane one line up.
197

Pane manipulation

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

Marks

288       Marks are set the same way as they are in vi.
289
290       You can use this characters for marks [a-z][A-Z][0-9].
291
292       m[a-z][A-Z][0-9]
293              set a mark for the file at the current cursor position.
294
295       '[a-z][A-Z][0-9]
296              navigate to the file set for the mark.
297
298
299       There are also several special marks that can't be set manually:
300
301         - '  (single  quote) - previously visited directory of the view, thus
302           hitting '' allows switching between two last locations
303
304         - < - the first file of the last visually selected block
305
306         - > - the last file of the last visually selected block
307

Searching

309       /regular expression pattern
310              search for files matching regular expression in  forward  direc‐
311              tion and advance cursor to next match.
312
313       /      perform forward search with top item of search pattern history.
314
315       ?regular expression pattern
316              search  for files matching regular expression in backward direc‐
317              tion and advance cursor to previous match.
318
319       ?      perform backward search with top item of search pattern history.
320
321       Matches are automatically selected  if  'hlsearch'  is  set.   Enabling
322       'incsearch'  makes  search  interactive.   'ignorecase' and 'smartcase'
323       options affect case sensitivity of search queries.
324
325
326       [count]n
327              go to the next file matching last search  pattern.   Takes  last
328              search direction into account.
329
330       [count]N
331              go  to  the  previous  file matching last search pattern.  Takes
332              last search direction into account.
333
334       If 'hlsearch' option is set, hitting n/N to perform search  and  go  to
335       the first matching item resets current selection in normal mode.  It is
336       not the case if search was already performed on files in the directory,
337       thus  selection  is  not reset after clearing selection with escape key
338       and hitting n/N key again.
339
340       Note: vifm uses extended regular expressions for / and ?.
341
342
343       [count]f[character]
344              search forward for file with [character] as first  character  in
345              name.  Search wraps around the end of the list.
346
347       [count]F[character]
348              search  backward for file with [character] as first character in
349              name.  Search wraps around the end of the list.
350
351       [count];
352              find the next match of f or F.
353
354       [count],
355              find the previous match of f or F.
356
357       Note: f, F, ; and , wrap around list beginning and end  when  they  are
358       used alone and they don't wrap when they are used as selectors.
359

File Filters

361       There are three basic file filters:
362
363         - dot files filter (excluding "." and ".." special directories, which
364           appearance is controlled by the 'dotdirs' option);
365
366         - manual filter for file names;
367
368         - automatic filter for file names;
369
370         - local filter for file names (see description of the "=" normal mode
371           command).
372
373       Performing  operations  on  manual  filter for file names automatically
374       does the same on automatic one.  The  file  name  filter  is  separated
375       mainly for convenience purpose and to get more deterministic behaviour.
376
377       The basic vim folding key bindings are used for filtering files.
378
379       Each file list has its own copy of each filter.
380
381       Filtered files are not checked in / search or :commands.
382
383       Files  and  directories  are  filtered separately.  For this a slash is
384       appended to a directory name before testing whether it matches the fil‐
385       ter.  Examples:
386
387
388         " filter directories which names end with '.files'
389         :filter /^.*\.files\/$/
390
391         " filter files which names end with '.d'
392         :filter /^.*\.d$/
393
394         " filter files and directories which names end with '.o'
395         :filter /^.*\.o\/?$/
396
397       za     toggle visibility of dot files.
398
399       zo     show dot files.
400
401       zm     hide dot files.
402
403       zf     add selected files to file name filter.
404
405       zO     show files hidden by file name filter.
406
407       zM     restore all filters.
408
409       zR     remove all filters.
410
411       zr     remove local filter.
412
413       zd     exclude  selection or current file from custom view.  Does noth‐
414              ing for regular view.
415
416       =regular expression pattern
417              filter out files that don't match regular  expression.   Whether
418              view  is updated as regular expression is changed depends on the
419              value of the 'incsearch' option.  This kind of filter  is  auto‐
420              matically reset when directory is changed.
421

Other Normal Mode Keys

423       [count]:
424              enter command line mode.  [count] generates range.
425
426       q:     open  external  editor  to prompt for command-line command.  See
427              "Command line editing" section for details.
428
429       q/     open external editor to prompt for search pattern to be searched
430              in  forward  direction.   See "Command line editing" section for
431              details.
432
433       q?     open external editor to prompt for search pattern to be searched
434              in  backward  direction.  See "Command line editing" section for
435              details.
436
437       q=     open external editor to prompt for filter pattern.  See "Command
438              line  editing"  section for details.  Unlike other q{x} commands
439              this one doesn't work in Visual mode.
440
441       [count]!! and [count]!<selector>
442              enter command line mode with entered ! command.   [count]  modi‐
443              fies range.
444
445       Ctrl-O go  backwards through directory history of current view.  Nonex‐
446              istent directories are automatically skipped.
447
448       Ctrl-I if 'cpoptions' contains "t" flag, <tab> and <c-i> switch  active
449              pane  just  like <space> does, otherwise it goes forward through
450              directory history of current view.  Nonexistent directories  are
451              automatically skipped.
452
453       Ctrl-G create  a  window showing detailed information about the current
454              file.
455
456       Shift-Tab
457              enters view mode (works only after  activating  view  pane  with
458              :view command).
459
460       ga     calculate directory size.  Uses cached directory sizes when pos‐
461              sible for better performance.  As  a  special  case  calculating
462              size  of  ".."  entry  results in calculation of size of current
463              directory.
464
465       gA     like ga, but force update.   Ignores  old  values  of  directory
466              sizes.
467
468       If file under cursor is selected, each selected item is processed, oth‐
469       erwise only current file is updated.
470
471       gf     find link destination (like l with 'followlinks' off,  but  also
472              finds directories).
473
474       gr     only for MS-Windows
475              same  as  l  key,  but  tries to run program with administrative
476              privileges.
477
478       av     go to visual mode into selection amending state preserving  cur‐
479              rent selection.
480
481       gv     go to visual mode restoring last selection.
482
483       [reg]gs
484              when no register is specified, restore last t selection (similar
485              to what gv does for visual  mode  selection).   If  register  is
486              present,  then  all  files listed in that register and which are
487              visible in current view are selected.
488
489       gu<selector>
490              make names of selected files lowercase.
491
492       [count]guu and [count]gugu
493              make names of [count] files starting from the current one lower‐
494              case.  Without [count] only current file is affected.
495
496       gU<selector>
497              make names of selected files uppercase.
498
499       [count]gUU and [count]gUgU
500              make names of [count] files starting from the current one upper‐
501              case.  Without [count] only current file is affected.
502
503       e      explore file in the current pane.
504
505       i      handle file (even if it's an executable and 'runexec' option  is
506              set).
507
508       cw     change word is used to rename a file or files.
509
510       cW     change  WORD is used to change only name of file (without exten‐
511              sion).
512
513       cl     change link target.
514
515       co     only for *nix
516              change file owner.
517
518       cg     only for *nix
519              change file group.
520
521       cp     change file attributes (permission on  *nix  and  properties  on
522              Windows).
523
524       [count]C
525              clone file [count] times.
526
527       [count]dd or d[count]selector
528              move  selected  file  or  files  to  trash directory (if 'trash'
529              option is set, otherwise delete).  See "Trash directory" section
530              below.
531
532       [count]DD or D[count]selector
533              like dd and d<selector>, but omitting trash directory (even when
534              'trash' option is set).
535
536       Y, [count]yy or y[count]selector
537              yank selected files.
538
539       p      copy yanked files to the current directory or move the files  to
540              the  current directory if they were deleted with dd or :d[elete]
541              or if the files were yanked from trash  directory.   See  "Trash
542              directory" section below.
543
544       P      move the last yanked files.  The advantage of using P instead of
545              d followed by p is that P moves files  only  once.   This  isn't
546              important  in  case  you're moving files in the same file system
547              where your home directory is, but using P to move files on  some
548              other  file  system  (or  file systems, in case you want to move
549              files from fs1 to fs2 and your home is on  fs3)  can  save  your
550              time.
551
552       al     put symbolic links with absolute paths.
553
554       rl     put symbolic links with relative paths.
555
556       t      select or unselect (tag) the current file.
557
558       u      undo last change.
559
560       Ctrl-R redo last change.
561
562       v or V enter visual mode, clears current selection.
563
564       [count]Ctrl-A
565              increment first number in file name by [count] (1 by default).
566
567       [count]Ctrl-X
568              decrement first number in file name by [count] (1 by default).
569
570       ZQ     same as :quit!.
571
572       ZZ     same as :quit.
573
574       .      repeat  last  command-line  command (not normal mode command) of
575              this session (does nothing right after startup or :restart  com‐
576              mand).   The  command doesn't depend on command-line history and
577              can be used with completely disabled history.
578
579       (      goto previous group.  Groups are defined by primary sorting key.
580              For name and iname members of each group have same first letter,
581              for all other sorting keys vifm uses size, uid, ...
582
583       )      goto next group.  See ( key description above.
584
585       {      similar to ( key, but always considers whether entry is file  or
586              directory  and  thus  speeds  up  navigation to closest previous
587              entry of the opposite type.
588
589       }      same as {, but in forward direction.
590

Using Count

592       You can use count with commands like yy.
593
594       [count]yy
595              yank count files starting from current cursor position downward.
596
597       Or you can use count with motions passed to y, d or D.
598
599       d[count]j
600              delete (count + 1) files starting from current  cursor  position
601              upward.
602

Registers

604       vifm  supports  multiple registers for temporary storing list of yanked
605       or deleted files.
606
607       Registers should be specified by hitting double quote key followed by a
608       register  name.   Count  is  specified after register name.  By default
609       commands use unnamed register, which has double quote as its name.
610
611       Though all commands accept registers, most  of  commands  ignores  them
612       (for  example H or Ctrl-U).  Other commands can fill register or append
613       new files to it.
614
615       Presently vifm supports ", _, a-z and A-Z characters as register names.
616
617       As mentioned above " is unnamed register and has special meaning of the
618       default  register.  Every time when you use named registers (a-z and A-
619       Z) unnamed register is updated to contain same list  of  files  as  the
620       last used register.
621
622       _  is black hole register.  It can be used for writing, but its list is
623       always empty.
624
625       Registers with names from a to z and from A to Z are named ones.   Low‐
626       ercase  registers  are cleared before adding new files, while uppercase
627       aren't and should be used to append new files to the existing file list
628       of appropriate lowercase register (A for a, B for b, ...).
629
630       Registers  can be changed on :empty command if they contain files under
631       trash directory (see "Trash directory" section below).
632
633       Registers do not contain one file more than once.
634
635       Example:
636
637         "a2yy
638
639       puts names of two files to register a (and to the unnamed register),
640
641         "Ad
642
643       removes one file and append its name to register a (and to the  unnamed
644       register),
645
646         p or "ap or "Ap
647
648       inserts previously yanked and deleted files into current directory.
649

Selectors

651       y,  d, D, !, gu and gU commands accept selectors.  You can combine them
652       with any of selectors below to quickly remove or yank several files.
653
654       Most of selectors are like vi motions: j, k, gg, G, H, L, M, %,  f,  F,
655       ;, comma, ', ^, 0 and $.  But there are some additional ones.
656
657       a      all files in current view.
658
659       s      selected files.
660
661       S      all files except selected.
662
663       Examples:
664
665         - dj - delete file under cursor and one below;
666
667         - d2j - delete file under cursor and two below;
668
669         - y6gg - yank all files from cursor position to 6th file in the list.
670
671       When you pass a count to whole command and its selector they are multi‐
672       plied. So:
673
674         - 2d2j - delete file under cursor and four below;
675
676         - 2dj - delete file under cursor and two below;
677
678         - 2y6gg - yank all files from cursor position to  12th  file  in  the
679           list.
680

Visual Mode

682       Visual mode has to generic operating submodes:
683
684         - plain selection as it is in Vim;
685
686         - selection editing submode.
687
688       Both  modes  select files in range from cursor position at which visual
689       mode was entered to current cursor position (let's call  it  "selection
690       region").  Each of two borders can be adjusted by swapping them via "o"
691       or "O" keys and updating cursor position  with  regular  cursor  motion
692       keys.   Obviously,  once  initial  cursor position is altered this way,
693       real start position becomes unavailable.
694
695       Plain Vim-like visual mode starts with cleared selection, which is  not
696       restored  on  rejecting selection ("Escape", "Ctrl-C", "v", "V").  Con‐
697       trary to it, selection editing doesn't clear previously selected  files
698       and  restores  them after reject.  Accepting selection by performing an
699       operation on selected items (e.g. yanking them via "y") moves cursor to
700       the  top of current selection region (not to the top most selected file
701       of the view).
702
703       In turn, selection editing supports three types  of  editing  (look  at
704       statusbar to know which one is currently active):
705
706         - append - amend selection by selecting elements in selection region;
707
708         - remove  -  amend  selection  by  deselecting  elements in selection
709           region;
710
711         - invert - amend selection by  inverting  selection  of  elements  in
712           selection region.
713
714       No  matter  how  you  activate selection editing it starts in "append".
715       One can switch type of operation (in the order given above) via  "Ctrl-
716       G" key.
717
718       Almost all normal mode keys work in visual mode, but instead of accept‐
719       ing selectors they operate on selected items.
720
721       Enter  save selection and go back to normal mode not moving cursor.
722
723       av     leave visual mode if in amending mode (restores previous  selec‐
724              tion), otherwise switch to amending selection mode.
725
726       gv     restore previous visual selection.
727
728       v, V, Ctrl-C or Escape
729              leave  visual  mode if not in amending mode, otherwise switch to
730              normal visual selection.
731
732       Ctrl-G switch type of amending by round robin scheme: append ->  remove
733              -> invert.
734
735       :      enter  command  line  mode.  Selection is cleared on leaving the
736              mode.
737
738       o      switch active selection bound.
739
740       O      switch active selection bound.
741
742       gu, u  make names of selected files lowercase.
743
744       gU, U  make names of selected files uppercase.
745

View Mode

747       This mode tries to imitate the less program.  List of builtin shortcuts
748       can be found below.  Shortcuts can be customized using :qmap, :qnoremap
749       and :qunmap command-line commands.
750
751       Shift-Tab, Tab, q, Q, ZZ
752              return to normal mode.
753
754       [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter
755              scroll forward one line (or [count] lines).
756
757       [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P
758              scroll backward one line (or [count] lines).
759
760       [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space
761              scroll forward one window (or [count] lines).
762
763       [count]b, [count]Ctrl-B, [count]Alt-V
764              scroll backward one window (or [count] lines).
765
766       [count]z
767              scroll forward one window (and set window to [count]).
768
769       [count]w
770              scroll backward one window (and set window to [count]).
771
772       [count]Alt-Space
773              scroll forward one window, but don't stop at end-of-file.
774
775       [count]d, [count]Ctrl-D
776              scroll forward one half-window (and set half-window to [count]).
777
778       [count]u, [count]Ctrl-U
779              scroll  backward  one  half-window  (and  set   half-window   to
780              [count]).
781
782       r, Ctrl-R, Ctrl-L
783              repaint screen.
784
785       R      reload view preserving scroll position.
786
787       F      toggle  automatic  forwarding.   Roughly  equivalent to periodic
788              file reload and scrolling to the bottom.  The behaviour is simi‐
789              lar to `tail -F` or F key in less.
790
791       [count]/pattern
792              search forward for ([count]‐th) matching line.
793
794       [count]?pattern
795              search backward for ([count]‐th) matching line.
796
797       [count]n
798              repeat previous search (for [count]‐th occurrence).
799
800       [count]N
801              repeat  previous  search  in  reverse  direction (for [count]‐th
802              occurrence).
803
804       [count]g, [count]<, [count]Alt-<
805              scroll to the first line of the file (or line [count]).
806
807       [count]G, [count]>, [count]Alt->
808              scroll to the last line of the file (or line [count]).
809
810       [count]p, [count]%
811              scroll to the beginning of the file (or N percent into file).
812
813       v      invoke an editor to edit the current  file  being  viewed.   The
814              command  for  editing  is taken from the 'vicmd'/'vixcmd' option
815              value and extended with middle line number prepended by  a  plus
816              sign and name of the current file.
817
818       All  "Ctrl-W  x" keys work the same was as in Normal mode.  Active mode
819       is automatically changed on navigating among windows.   When  less-like
820       mode  activated  on  file preview is left using one by "Ctrl-W x" keys,
821       its state is stored until another file is displayed using preview (it's
822       possible  to leave the mode, hide preview pane, do something else, then
823       get back to the file and show preview pane again with previously stored
824       state in it).
825

Command line Mode

827       These keys are available in all submodes of the command line mode: com‐
828       mand, search, prompt and filtering.
829
830       Down, Up, Left, Right, Home, End and Delete are extended keys and  they
831       are  not  available  if  vifm  is compiled with --disable-extended-keys
832       option.
833
834       Esc, Ctrl-C
835              leave command line mode,  cancels  input.   Cancelled  input  is
836              saved into appropriate history and can be recalled later.
837
838       Ctrl-M, Enter
839              execute command and leave command line mode.
840
841       Ctrl-I, Tab
842              complete command or its argument.
843
844       Shift-Tab
845              complete in reverse order.
846
847       Ctrl-_ stop completion and return original input.
848
849       Ctrl-B, Left
850              move cursor to the left.
851
852       Ctrl-F, Right
853              move cursor to the right.
854
855       Ctrl-A, Home
856              go to line beginning.
857
858       Ctrl-E, End
859              go to line end.
860
861       Alt-B  go to the beginning of previous word.
862
863       Alt-F  go to the end of next word.
864
865       Ctrl-U remove  characters  from  cursor  position till the beginning of
866              line.
867
868       Ctrl-K remove characters from cursor position till the end of line.
869
870       Ctrl-H, Backspace
871              remove character before the cursor.
872
873       Ctrl-D, Delete
874              remove character under the cursor.
875
876       Ctrl-W remove characters from cursor position  till  the  beginning  of
877              previous word.
878
879       Alt-D  remove  characters  from  cursor  position till the beginning of
880              next word.
881
882       Ctrl-T swap the order of current and previous character and move cursor
883              forward  or,  if  cursor past the end of line, swap the order of
884              two last characters in the line.
885
886       Alt-.  insert last part of previous command to current cursor position.
887              Each next call will insert last part of older command.
888
889       Ctrl-G edit command-line content in external editor.  See "Command line
890              editing" section for details.
891
892       Ctrl-N recall more recent command-line from history.
893
894       Ctrl-P recall older command-line from history.
895
896       Up     recall more recent command-line from history, that begins as the
897              current command-line.
898
899       Down   recall  older command-line from history, that begins as the cur‐
900              rent command-line.
901
902       Ctrl-] trigger abbreviation expansion.
903

Pasting special values

905       The shortcuts listed below insert specified values into current  cursor
906       position.  Last key of every shortcut references value that it inserts:
907         - c - [c]urrent file
908         - d - [d]irectory path
909         - e - [e]xtension of a file name
910         - r - [r]oot part of a file name
911         - t - [t]ail part of directory path
912
913         - a - [a]utomatic filter
914         - m - [m]anual filter
915         - = - local filter, which is bound to "=" in normal mode
916
917       Values related to filelist in current pane are available through Ctrl-X
918       prefix, while values from the other pane have  doubled  Ctrl-X  key  as
919       their  prefix  (doubled Ctrl-X is presumably easier to type than upper‐
920       case letters; it's still easy to remap the keys to correspond to  names
921       of similar macros).
922
923       Ctrl-X c
924              name of the current file of the active pane.
925
926       Ctrl-X d
927              path to the current directory of the active pane.
928
929       Ctrl-X e
930              extension of the current file of the active pane.
931
932       Ctrl-X r
933              name root of current file of the active pane.
934
935       Ctrl-X t
936              the  last  component  of  path  to  the current directory of the
937              active pane.
938
939       Ctrl-X Ctrl-X c
940              name of the current file of the inactive pane.
941
942       Ctrl-X Ctrl-X d
943              path to the current directory of the inactive pane.
944
945       Ctrl-X Ctrl-X e
946              extension of the current file of the inactive pane.
947
948       Ctrl-X Ctrl-X r
949              name root of current file of the inactive pane.
950
951       Ctrl-X Ctrl-X t
952              the last component of path to the current directory of the inac‐
953              tive pane.
954
955
956       Ctrl-X a
957              value of automatic filter of the active pane.
958
959       Ctrl-X m
960              value of manual filter of the active pane.
961
962       Ctrl-X =
963              value of local filter of the active pane.
964
965
966       Ctrl-X /
967              last pattern from search history.
968

Command line editing

970       vifm provides a facility to edit several kinds of data, that is usually
971       edited in command-line mode, in external editor (using  command  speci‐
972       fied  by 'vicmd' or 'vixcmd' option).  This has at least two advantages
973       over built-in command-line mode:
974         - one can use full power of Vim to edit text;
975         - finding and reusing history entries becomes possible.
976
977       The facility is supported by four input submodes of the command-line:
978         - command;
979         - forward search;
980         - backward search;
981         - file rename (see description of cw and cW normal mode keys).
982
983       Editing command-line using external editor is activated by  the  Ctrl-G
984       shortcut.   It's  also  possible  to do almost the same from Normal and
985       Visual modes using q:, q/ and q? commands.
986
987       Temporary file created for the purpose of editing the line has the fol‐
988       lowing structure:
989
990         1. First line, which is either empty or contains text already entered
991            in command-line.
992
993         2. 2nd and all other lines with history items starting with the  most
994            recent  one.   Altering this lines in any way won't change history
995            items stored by vifm.
996
997       After editing application is finished the first line  of  the  file  is
998       taken  as  the  result  of operation, when the application returns zero
999       exit code.  If the application returns an error (see :cquit command  in
1000       Vim), all the edits made to the file are ignored, but the initial value
1001       of the first line is saved in appropriate history.
1002

More Mode

1004       This is the mode that appears when status bar content is so big that it
1005       doesn't  fit  on the screen.  One can identify the mode by "-- More --"
1006       message at the bottom.
1007
1008       The following keys are handled in this mode:
1009
1010
1011       Enter, Ctrl-J, j or Down
1012              scroll one line down.
1013
1014       Backspace, k or Up
1015              scroll one line up.
1016
1017
1018       d      scroll one page (half of a screen) down.
1019
1020       u      scroll one page (half of a screen) up.
1021
1022
1023       Space, f or PageDown
1024              scroll down a screen.
1025
1026       b or PageUp
1027              scroll up a screen.
1028
1029
1030       G      scroll to the bottom.
1031
1032       g      scroll to the top.
1033
1034
1035       q, Escape or Ctrl-C
1036              quit the mode.
1037
1038       :      switch to command-line mode.
1039

Commands

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

Ranges

2667       The ranges implemented include:
2668         2,3 - from second to third file in the list (including it)
2669         % - the entire directory.
2670         . - the current position in the filelist.
2671         $ - the end of the filelist.
2672         't - the mark position t.
2673
2674       Examples:
2675
2676         :%delete
2677
2678       would delete all files in the directory.
2679
2680         :2,4delete
2681
2682       would delete the files in the list positions 2 through 4.
2683
2684         :.,$delete
2685
2686       would  delete  the  files  from  the current position to the end of the
2687       filelist.
2688
2689         :3delete4
2690
2691       would delete the files in the list positions 3, 4, 5, 6.
2692
2693       If a backward range is given :4,2delete - an query message is given and
2694       user can chose what to do next.
2695
2696       The builtin commands that accept a range are :d[elete] and :y[ank].
2697

Command macros

2699       The command macros may be used in user commands.
2700
2701       %a     User  arguments.   When  user arguments contain macros, they are
2702              expanded before preforming substitution of %a.
2703
2704       %c %"c The current file under the cursor.
2705
2706       %C %"C The current file under the cursor in the other directory.
2707
2708       %f %"f All of the selected files.
2709
2710       %F %"F All of the selected files in the other directory list.
2711
2712       %b %"b Same as %f %F.
2713
2714       %d %"d Full path to current directory.
2715
2716       %D %"D Full path to other file list directory.
2717
2718       %rx %"rx
2719              Full paths to files in the register {x}.   In  case  of  invalid
2720              symbol in place of {x}, it's processed with the rest of the line
2721              and default register is used.
2722
2723       %m     Show command output in a menu.
2724
2725       %M     Same as %m, but l (or Enter) key is handled like for :locate and
2726              :find commands.
2727
2728       %u     Process  command output as list of paths and compose custom view
2729              out of it.
2730
2731       %U     Same as %u, but implies less list updates inside vifm, which  is
2732              absence of sorting at the moment.
2733
2734       %S     Show command output in the status bar.
2735
2736       %s     Execute  command  in split window of active terminal multiplexer
2737              (ignored if not running inside one).
2738
2739       %n     Forbid using of terminal multiplexer to run the command.
2740
2741       %i     Completely ignore command output.
2742
2743
2744       %pc    Marks end of the main command and beginning of  the  clear  com‐
2745              mand, which is invoked on closing preview of a file.
2746
2747       The following dimensions and coordinates are in characters:
2748
2749       %px    x coordinate of top-left corner of preview area.
2750
2751       %py    y coordinate of top-left corner of preview area.
2752
2753       %pw    width of preview area.
2754
2755       %ph    height of preview area.
2756
2757
2758       Use %% if you need to put a percent sign in your command.
2759
2760       Note  that %m, %M, %s, %S, %i, %u and %U macros are mutually exclusive.
2761       Only the last one of them on the command will take effect.
2762
2763       You can use file name modifiers after %c, %C, %f, %F,  %b,  %d  and  %D
2764       macros.  Supported modifiers are:
2765
2766         - :p           - full path
2767
2768         - :u             -   UNC   name   of   path   (e.g.   "\\server"   in
2769           "\\server\share"), Windows only.  Expands to current computer  name
2770           for not UNC paths.
2771
2772         - :~           - relative to the home directory
2773
2774         - :.           - relative to current directory
2775
2776         - :h           - head of the file name
2777
2778         - :t           - tail of the file name
2779
2780         - :r           - root of the file name (without last extension)
2781
2782         - :e           - extension of the file name (last one)
2783
2784         - :s?pat?sub?   -  substitute  the  first occurrence of pat with sub.
2785           You can use any character for '?', but it must not occur in pat  or
2786           sub.
2787
2788         - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with
2789           sub.
2790
2791       See ':h filename-modifiers' in Vim's  documentation  for  the  detailed
2792       description.
2793
2794       Using  %x means expand corresponding macro escaping all characters that
2795       have special meaning.  And %"x means using of double quotes and  escape
2796       only  backslash  and  double  quote characters, which is more useful on
2797       Windows systems.
2798
2799       Position and quantity (if there is any) of %m, %M, %S or %s  macros  in
2800       the command is unimportant.  All their occurrences are removed from the
2801       resulting command.
2802
2803       %c and %f macros are expanded to file names only, when %C  and  %F  are
2804       expanded to full paths.  %f and %F follow this in %b too.
2805
2806       :com move mv %f %D
2807              set  the  :move command to move all of the files selected in the
2808              current directory to the other directory.
2809
2810       The %a macro is replaced with any arguments given to an alias  command.
2811       All arguments are considered optional.
2812              :com  lsl !!ls -l %a - set the lsl command to execute ls -l with
2813              or without an argument.
2814
2815       :lsl<Enter>
2816              will list the directory contents of the current directory.
2817
2818       :lsl filename<Enter>
2819              will list only the given filename.
2820
2821       The macros can also be used in directly executing commands.   ":!mv  %f
2822       %D" would move the current directory selected files to the other direc‐
2823       tory.
2824
2825       Appending & to the end of a command causes it to  be  executed  in  the
2826       background.   Typically  you want to run two kinds of external commands
2827       in the background:
2828
2829         - GUI applications that doesn't fork thus block vifm (:!sxiv %f &);
2830
2831         - console tools that do not work with terminal (:!mv %f %D &).
2832
2833       You don't want to run terminal commands, which require  terminal  input
2834       or output something in background because they will mess up vifm's TUI.
2835       Anyway, if you did run such a command, you can use Ctrl-L key to update
2836       vifm's TUI.
2837
2838       Rewriting  the example command with macros given above with background‐
2839       ing:
2840
2841       %m, %M, %s, %S, %u and %U macros cannot  be  combined  with  background
2842       mark (" &") as it doesn't make much sense.
2843

Command backgrounding

2845       Copy  and move operation can take a lot of time to proceed.  That's why
2846       vifm supports backgrounding of this  two  operations.   To  run  :copy,
2847       :move  or :delete command in the background just add " &" at the end of
2848       a command.
2849
2850       For each background operation a new thread is created.   Currently  job
2851       cannot be stopped or paused.
2852
2853       You  can  see  if  command  is  still running in the :jobs menu.  Back‐
2854       grounded commands have progress instead  of  process  id  at  the  line
2855       beginning.
2856
2857       Background operations cannot be undone.
2858

Cancellation

2860       Note that cancellation works somewhat different on Windows platform due
2861       to different mechanism of break signal  propagation.   One  also  might
2862       need to use Ctrl-Break shortcut instead of Ctrl-C.
2863
2864       There are two types of operations that can be cancelled:
2865
2866         - file system operations;
2867
2868         - mounting  with  FUSE  (but  not  unmounting as it can cause loss of
2869           data);
2870
2871         - calls of external applications.
2872
2873       Note that vifm never terminates applications, it  sends  SIGINT  signal
2874       and lets the application quit normally.
2875
2876       When one of set of operations is cancelled (e.g. copying of 5th file of
2877       10 files), further operations are cancelled too.   In  this  case  undo
2878       history will contain only actually performed operations.
2879
2880       Cancelled  operations are indicated by "(cancelled)" suffix appended to
2881       information message on statusbar.
2882
2883       File system operations
2884
2885       Currently the following commands  can  be  cancelled:  :alink,  :chmod,
2886       :chown,  :clone,  :copy,  :delete,  :mkdir,  :move,  :restore,  :rlink,
2887       :touch.  File putting (on p/P key) can be cancelled as well.  It's  not
2888       hard to see that these are mainly long-running operations.
2889
2890       Cancelling  commands when they are repeated for undo/redo operations is
2891       allowed for convenience, but is not recommended  as  further  undo/redo
2892       operations  might  get  blocked  by side-effects of partially cancelled
2893       group of operations.
2894
2895       These commands can't be cancelled: :empty, :rename, :substitute, :tr.
2896
2897       Mounting with FUSE
2898
2899       It's not considered to be an error, so only notification on the  status
2900       bar is shown.
2901
2902       External application calls
2903
2904       Each  of  this  operations  can  be  cancelled: :apropos, :find, :grep,
2905       :locate.
2906

Patterns

2908       :highlight, :filetype, :filextype, :fileviewer commands and  'classify'
2909       option  support globs, regular expressions and mime types to match file
2910       names or their paths.
2911
2912       There are six possible ways to write a single pattern:
2913
2914         1. [!]{comma-separated-name-globs}
2915
2916         2. [!]{{comma-separated-path-globs}}
2917
2918         3. [!]/name-regular-expression/[iI]
2919
2920         4. [!]//path-regular-expression//[iI]
2921
2922         5. [!]<comma-separated-mime-type-globs>
2923
2924         6. undecorated-pattern
2925
2926       To combine several patterns (AND them), make sure you're using  of  the
2927       first five forms and write patterns one after another, like this:
2928         <text/plain>{*.vifm}
2929       Mind that if you make a mistake the whole string will be treated as the
2930       sixth form.
2931
2932       :filetype, :filextype and :fileviewer commands  accept  comma-separated
2933       list of patterns instead of a single pattern, thus effectively handling
2934       OR operation on them:
2935         <text/plain>{*.vifm},<application/pdf>{*.pdf}
2936
2937       Five first forms can include leading exclamation mark that negates pat‐
2938       tern matching.
2939
2940       The  last  form is implicitly refers to one of others.  :highlight does
2941       not accept undecorated form, while :filetype,  :filextype,  :fileviewer
2942       and 'classify' treat it as list of name globs.
2943
2944       Regular expression patterns are case insensitive by default.
2945
2946       "Globs"  section below provides short overview of globs and some impor‐
2947       tant points that one needs to know about them.
2948
2949       Mime type matching is essentially globs matching applied to  mime  type
2950       of  a  file instead of its name/path.  Note: mime types aren't detected
2951       on Windows.
2952

Globs

2954       Globs are always case insensitive as it makes sense in general case.
2955
2956       *, ?, [ and ] are treated as special symbols in the pattern.  E.g.
2957
2958         :filetype * less %c
2959
2960       matches all files.  One can use character classes for escaping, so
2961
2962         :filetype [*] less %c
2963
2964       matches only one file name, the one which contains only  asterisk  sym‐
2965       bol.
2966
2967       *  means  any  number  of any characters (possibly an empty substring),
2968       with one exception: asterisk at the pattern beginning doesn't match dot
2969       in the first position.  E.g.
2970
2971         :fileviewer *.zip,*.jar zip -sf %c
2972
2973       associates  using  of  zip program to preview all files with zip or jar
2974       extensions as listing of their content.
2975
2976       ? means any character at this position.  E.g.
2977
2978         :fileviewer ?.out file %c
2979
2980       calls file tool for all files which has exactly  one  character  before
2981       their extension (e.g. a.out, b.out).
2982
2983       Square brackets designate character class, which means that whole char‐
2984       acter class matches against any of characters listed in it.  For  exam‐
2985       ple
2986
2987         :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c
2988
2989       makes  vifm  call highlight program to colorize source and header files
2990       in C language for a 256-color terminal.  Equal command would be
2991
2992         :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c
2993
2994
2995       Inside square brackets ^ or ! can be used for symbol class  negotiation
2996       and  the - symbol to set a range. ^ and ! should appear right after the
2997       opening square bracket.  For example
2998
2999         :filetype *.[!d]/ inspect_dir
3000
3001       associates inspect_dir as additional handler for all  directories  that
3002       have one character extension unless it's "d" letter.  And
3003
3004         :filetype [0-9].jpg sxiv
3005
3006       associates  sxiv picture viewer only for JPEG-files that contain single
3007       digit in their name.
3008

:set options

3010       Local options
3011              These are kind of options that are local to a specific view.  So
3012              you can set ascending sorting order for left pane and descending
3013              order for right pane.
3014
3015              In addition to being local to views, each such option  also  has
3016              two values:
3017
3018                - local  to  current  directory (value associated with current
3019                  location);
3020
3021                - global to  current  directory  (value  associated  with  the
3022                  pane).
3023
3024              The  idea  is  that  current  directory  can be made a temporary
3025              exception to regular configuration of the view, until  directory
3026              change.   Use :setlocal for that.  :setglobal changes view value
3027              not affecting settings until  directory  change.   :set  applies
3028              changes immediately to all values.
3029
3030
3031       'aproposprg'
3032              type: string
3033              default: "apropos %a"
3034              Specifies  format  for  an external command to be invoked by the
3035              :apropos command.  The format supports expanding of macros, spe‐
3036              cific  for a particular *prg option, and %% sequence for insert‐
3037              ing percent sign literally.  This option should include  the  %a
3038              macro  to  specify placement of arguments passed to the :apropos
3039              command.  If the macro is not used, it will be implicitly  added
3040              after a space to the value of this option.
3041
3042       'autochpos'
3043              type: boolean
3044              default: true
3045              When disabled vifm will set cursor to the first line in the view
3046              after :cd and :pushd commands instead of saved cursor  position.
3047              Disabling  this will also make vifm clear information about cur‐
3048              sor position in the view history on :cd and :pushd commands (and
3049              on  startup if 'autochpos' is disabled in the vifmrc).  l key in
3050              the ":history ." and ":trashes" menus is treated like  :cd  com‐
3051              mand.   This  option  also affects marks so that navigating to a
3052              mark doesn't restore cursor position.
3053
3054       'columns' 'co'
3055              type: integer
3056              default: terminal width on startup
3057              Terminal width in characters.
3058
3059       'cdpath' 'cd'
3060              type: string list
3061              default: value of $CDPATH with commas instead of colons
3062              Specifies locations to check on changing directory with relative
3063              path  that  doesn't  start  with "./" or "../".  When non-empty,
3064              current directory is examined after directories  listed  in  the
3065              option.
3066
3067              This option doesn't affect completion of :cd command.
3068
3069              Example:
3070
3071                set cdpath=~
3072
3073              This  way  ":cd  bin"  will  switch to "~/bin" even if directory
3074              named "bin" exists in current directory, while ":cd ./bin"  com‐
3075              mand will ignore value of 'cdpath'.
3076
3077       'chaselinks'
3078              type: boolean
3079              default: false
3080              When  enabled path of view is always resolved to real path (with
3081              all symbolic links expanded).
3082
3083       'classify'
3084              type: string list
3085              default: ":dir:/"
3086              Specifies file name prefixes and suffixes depending on file type
3087              or name.  The format is either of:
3088                - [{prefix}]:{filetype}:[{suffix}]
3089                - [{prefix}]::{pattern}::[{suffix}]
3090              Possible  {pattern}  forms  are  described in "Patterns" section
3091              above.
3092
3093              Priority rules:
3094                - file name patterns have priority over type patterns
3095                - file name patterns are matched  in  left-to-right  order  of
3096              their appearance in this option
3097
3098              Either {prefix} or {suffix} or both can be omitted (which is the
3099              default for all unspecified file types), this means empty  {pre‐
3100              fix}  and/or  {suffix}.  {prefix} and {suffix} should consist of
3101              at most eight characters.  Elements  are  separated  by  commas.
3102              Neither  prefixes  nor  suffixes are part of file names, so they
3103              don't affect commands which operate on file names  in  any  way.
3104              Comma  (',')  character can be inserted by doubling it.  List of
3105              file type names can be found in the  description  of  filetype()
3106              function.
3107
3108       'confirm' 'cf'
3109              type: set
3110              default: delete,permdelete
3111              Defines which operations require confirmation:
3112               - delete     - moving files to trash (on d or :delete);
3113               -  permdelete  -  permanent deletion of files (on D or :delete!
3114              command or on undo/redo operation).
3115
3116       'cpoptions' 'cpo'
3117              type: charset
3118              default: "fst"
3119              Contains  a  sequence  of  single-character  flags.   Each  flag
3120              enables behaviour of older versions of vifm.  Flags:
3121               -  f  -  when  included, running :filter command results in not
3122              inverted (matching files  are  filtered  out)  and  :filter!  in
3123              inverted (matching files are left) filter, when omitted, meaning
3124              of the exclamation mark changes to the opposite;
3125               - s - when included, yy, dd and DD normal mode commands act  on
3126              selection, otherwise they operate on current file only;
3127               -  t  - when included, <tab> (thus <c-i>) behave as <space> and
3128              switch active pane, otherwise <tab> and <c-i> go forward in  the
3129              view history.
3130
3131       'cvoptions'
3132              type: set
3133              default:
3134              Specifies  whether entering/leaving custom views triggers events
3135              that normally happen on entering/leaving directories:
3136               - autocmds    - trigger autocommands on entering/leaving custom
3137              views;
3138               -  localopts   - reset local options on entering/leaving custom
3139              views;
3140               - localfilter - reset local filter on  entering/leaving  custom
3141              views.
3142
3143       'deleteprg'
3144              type: string
3145              default: ""
3146              Specifies  program to run on files that are permanently removed.
3147              When empty, files are removed as usual, otherwise  this  command
3148              is  invoked  on each file by appending its name.  If the command
3149              doesn't remove files, they will remain on the file system.
3150
3151       'dirsize'
3152              type: enumeration
3153              default: size
3154              Controls how size of directories is  displayed  in  file  views.
3155              The following values are possible:
3156               -  size   - size of directory (i.e., size used to store list of
3157              files)
3158               - nitems - number of entries in the directory (excluding .  and
3159              ..)
3160
3161              Size  obtained via ga/gA overwrites this setting so seeing count
3162              of files and occasionally size of directories is possible.
3163
3164       'dotdirs'
3165              type: set
3166              default: nonrootparent
3167              Controls displaying of dot directories.   The  following  values
3168              are possible:
3169               - rootparent    - show "../" in root directory of file system
3170               -  nonrootparent  -  show "../" in non-root directories of file
3171              system
3172
3173              Note that empty directories always contain "../"  entry  regard‐
3174              less of value of this option.  "../" disappears at the moment at
3175              least one file is created.
3176
3177       'fastrun'
3178              type: boolean
3179              default: false
3180              With this option turned on you can run  partially  entered  com‐
3181              mands  with unambiguous beginning using :! (e.g. :!Te instead of
3182              :!Terminal or :!Te<tab>).
3183
3184       'fillchars' 'fcs'
3185              type: string list
3186              default: ""
3187              Sets characters used to fill borders.
3188                item       default  Used for
3189                vborder:c  ' '      left, middle and right vertical borders
3190
3191              If value is omitted, its default value is used.  Example:
3192
3193                set fillchars=vborder:.
3194
3195       'findprg'
3196              type: string
3197              default: "find %s %a -print , -type d \( ! -readable -o !  -exe‐
3198              cutable \) -prune"
3199              Specifies  format  for  an external command to be invoked by the
3200              :find command.  The format supports expanding  of  macros,  spe‐
3201              cific  for a particular *prg option, and %% sequence for insert‐
3202              ing percent sign literally.  This option should include  the  %s
3203              macro  to specify placement of list of paths to search in and %a
3204              or %A macro to specify placement  of  arguments  passed  to  the
3205              :find command.  If some of the macros are not used, they will be
3206              implicitly added after a space to the value of the option in the
3207              following  order:  %s, %a.  Note that when neither %a nor %A are
3208              specified, it's %a which is added implicitly.
3209
3210              The macros can slightly change their meaning depending on  :find
3211              command  arguments.  When the first argument points to an exist‐
3212              ing directory, %s is assigned all arguments and %a/%A  are  left
3213              empty.   Otherwise,  %s  is assigned a dot (".") meaning current
3214              directory or list of selected file names,  if  any.   %a/%A  are
3215              assigned arguments when first argument starts with a dash ("-"),
3216              otherwise %a gets an escaped version of arguments, prepended  by
3217              "-name" (on *nix) or "-iname" (on Windows) predicate.
3218
3219              %a  and  %A macros contain almost the same value, the difference
3220              is that %a can be escaped and %A is never escaped.  %A is to  be
3221              used  mainly  on Windows, where shell escaping is a mess and can
3222              break command execution.
3223
3224              Optional %u or %U macro could be used (if both specified  %U  is
3225              chosen)  to  force redirection to custom or unsorted custom view
3226              respectively.
3227
3228              Starting from Windows Server 2003 a where command is  available,
3229              one can configure vifm to use it in the following way:
3230
3231                set findprg="where /R %s %A"
3232
3233              As  the  syntax of this command is rather limited, one can't use
3234              :find command with selection of more than one item in this case.
3235              The  command  looks  for files only completely ignoring directo‐
3236              ries.
3237
3238              When using find port on Windows,  another  option  is  to  setup
3239              'findprg' like this:
3240
3241                set findprg="find %s %a"
3242
3243       'followlinks'
3244              type: boolean
3245              default: true
3246              Follow  links  on  l  or Enter.  That is navigate to destination
3247              file instead of treating the link as if  it  were  target  file.
3248              Doesn't  affects  links to directories, which are always entered
3249              (use gf key for directories).
3250
3251       'fusehome'
3252              type: string
3253              default: "($XDG_DATA_HOME/.local/share | $VIFM)/fuse/"
3254              Directory to be used as a root dir for FUSE  mounts.   Value  of
3255              the   option   can   contain   environment  variables  (in  form
3256              "$envname"), which will be expanded (prepend it with a slash  to
3257              prevent  expansion).   The  value  should  expand to an absolute
3258              path.
3259
3260              If you change this option,  vifm  won't  remount  anything.   It
3261              affects future mounts only.  See "Automatic FUSE mounts" section
3262              below for more information.
3263
3264       'gdefault' 'gd'
3265              type: boolean
3266              default: false
3267              When on, 'g' flag is on for :substitute by default.
3268
3269       'grepprg'
3270              type: string
3271              default: "grep -n -H -I -r %i %a %s"
3272              Specifies format for an external command to be  invoked  by  the
3273              :grep  command.   The  format supports expanding of macros, spe‐
3274              cific for a particular *prg option, and %% sequence for  insert‐
3275              ing  percent  sign literally.  This option should include the %i
3276              macro to specify placement of  "-v"  string  when  inversion  of
3277              results  is  requested,  %a  or %A macro to specify placement of
3278              arguments passed to the :grep command and the %s macro to  spec‐
3279              ify  placement  of  list  of files to search in.  If some of the
3280              macros are not used, they will be implicitly added after a space
3281              to the value of the 'grepprg' option in the following order: %i,
3282              %a, %s.  Note that when neither %a nor %A are specified, it's %a
3283              which is added implicitly.
3284
3285              Optional  %u  or %U macro could be used (if both specified %U is
3286              chosen) to force redirection to custom or unsorted  custom  view
3287              respectively.
3288
3289              See  'findprg'  option  for description of difference between %a
3290              and %A.
3291
3292              Example of setup to use ack (http://beyondgrep.com/) instead  of
3293              grep:
3294
3295                set grepprg=ack\ -H\ -r\ %i\ %a\ %s
3296
3297              or   The   Silver  Searcher  (https://github.com/ggreer/the_sil
3298              ver_searcher):
3299
3300                set grepprg=ag\ --line-numbers\ %i\ %a\ %s
3301
3302
3303
3304       'history' 'hi'
3305              type: integer
3306              default: 15
3307              Maximum number of stored items in all histories.
3308
3309       'hlsearch' 'hls'
3310              type: boolean
3311              default: true
3312              Highlight all matches of search pattern.
3313
3314       'iec'  type: boolean
3315              default: false
3316              Use KiB, MiB, ... instead of KB, MB, ...
3317
3318       'ignorecase' 'ic'
3319              type: boolean
3320              default: false
3321              Ignore case in search patterns (:substitute, / and  ?  commands)
3322              and  characters  after f and F commands.  It doesn't affect file
3323              filtering.
3324
3325       'incsearch' 'is'
3326              type: boolean
3327              default: false
3328              When this option is set, search and view update for local filter
3329              is  be performed starting from initial cursor position each time
3330              search pattern is changed.
3331
3332       'iooptions'
3333              type: set
3334              default:
3335              Controls details of file operations.  The following  values  are
3336              available:
3337               -  fastfilecloning - perform fast file cloning (copy-on-write),
3338              when available
3339                                   (available on Linux and btrfs file system).
3340
3341       'laststatus' 'ls'
3342              type: boolean
3343              default: true
3344              Controls if status bar is visible.
3345
3346       'lines'
3347              type: integer
3348              default: terminal height on startup
3349              Terminal height in lines.
3350
3351       'locateprg'
3352              type: string
3353              default: "locate %a"
3354              Specifies format for an external command to be  invoked  by  the
3355              :locate  command.  The format supports expanding of macros, spe‐
3356              cific for a particular *prg option, and %% sequence for  insert‐
3357              ing  percent  sign literally.  This option should include the %a
3358              macro to specify placement of arguments passed  to  the  :locate
3359              command.   If the macro is not used, it will be implicitly added
3360              after a space to the value of this option.
3361
3362              Optional %u or %U macro could be used (if both specified  %U  is
3363              chosen)  to  force redirection to custom or unsorted custom view
3364              respectively.
3365
3366       'mintimeoutlen'
3367              type: integer
3368              default: 150
3369              The fracture of 'timeoutlen'  in  milliseconds  that  is  waited
3370              between  subsequent input polls, which affects various asynchro‐
3371              nous operations (detecting changes  made  by  external  applica‐
3372              tions,  monitoring background jobs, redrawing UI).  There are no
3373              strict guarantees, however the higher this value is, the less is
3374              CPU load in idle mode.
3375
3376       'lsview'
3377              type: boolean
3378              default: false
3379              scope: local
3380              When  this  option  is  set, directory view will be displayed in
3381              multiple columns with file names similar to output  of  `ls  -x`
3382              command.   See  "ls-like view" section below for format descrip‐
3383              tion.
3384
3385       'number' 'nu'
3386              type: boolean
3387              default: false
3388              scope: local
3389              Print line number in front  of  each  file  name  when  'lsview'
3390              option  is  turned  off.   Use 'numberwidth' to control width of
3391              line number.  Also see 'relativenumber'.
3392
3393       'numberwidth' 'nuw'
3394              type: integer
3395              default: 4
3396              scope: local
3397              Minimal number of characters for line number field.
3398
3399       'relativenumber' 'rnu'
3400              type: boolean
3401              default: false
3402              scope: local
3403              Print relative line number in  front  of  each  file  name  when
3404              'lsview'  option  is  turned  off.  Use 'numberwidth' to control
3405              width of line number.   Various  combinations  of  'number'  and
3406              'relativenumber' lead to such results:
3407
3408                                      nonumber               number
3409
3410                  norelativenumber   | first                |   1 first
3411                                     | second               |   2 second
3412                                     | third                |   3 third
3413
3414                    relativenumber   |   1 first            |   1 first
3415                                     |   0 second           |2    second
3416                                     |   1 third            |   1 third
3417
3418
3419       'rulerformat' 'ruf'
3420              type: string
3421              default: "%l/%S "
3422              Determines  the  content  of the ruler.  Its minimal width is 13
3423              characters and it's right aligned.  Following  macros  are  sup‐
3424              ported:
3425               %=  - separation point between left and right aligned halves of
3426              the line
3427               %l - file number
3428               %L - total number of files  in  view  (including  filtered  out
3429              ones)
3430               %- - number of filtered out files
3431               %S - number of displayed files
3432               %= - separation point between left and right align items
3433               %% - percent sign
3434               %[ - designates beginning of an optional block
3435               %] - designates end of an optional block
3436
3437              Percent  sign  can  be followed by optional minimum field width.
3438              Add '-' before minimum field width if you want field to be right
3439              aligned.   Note  ambiguity  with  number  of filtered out files,
3440              which can be resolved with the help of width field ("%0-").
3441
3442              Example:
3443
3444                set rulerformat='%2l-%S%[ +%0-%]'
3445
3446       'runexec'
3447              type: boolean
3448              default: false
3449              Run executable file on Enter or l.
3450
3451       'scrollbind' 'scb'
3452              type: boolean
3453              default: false
3454              When this option is set, vifm will try  to  keep  difference  of
3455              scrolling positions of two windows constant.
3456
3457       'scrolloff' 'so'
3458              type: integer
3459              default: 0
3460              Minimal  number of screen lines to keep above and below the cur‐
3461              sor.  If you want cursor line to always be in the middle of  the
3462              view (except at the beginning or end of the file list), set this
3463              option to some large value (e.g. 999).
3464
3465       'shell' 'sh'
3466              type: string
3467              default: $SHELL or "/bin/sh" or "cmd" (on MS-Windows)
3468              Full path to the shell to use to run external commands.  On *nix
3469              a shell argument can be supplied.
3470
3471       'shortmess' 'shm'
3472              type: charset
3473              default: "p"
3474              Contains  a  sequence  of  single-character  flags.   Each  flag
3475              enables shortening of some message displayed by vifm in the TUI.
3476              Flags:
3477              T  -  truncate status-bar messages in the middle if they are too
3478              long to fit on the command line.  "..." will appear in the  mid‐
3479              dle.
3480              p - use tilde shortening in view titles.
3481
3482       'slowfs'
3483              type: string list
3484              default: ""
3485              only for *nix
3486              A  list of mounter fs name beginnings (first column in /etc/mtab
3487              or /proc/mounts) or paths prefixes for fs/directories that  work
3488              too  slow  for  you.   This option can be used to stop vifm from
3489              making some requests to particular kinds of  file  systems  that
3490              can  slow  down file browsing.  Currently this means don't check
3491              if directory has changed, skip check if target of symbolic links
3492              exists,  assume  that  link  target  located  on slow fs to be a
3493              directory (allows entering directories and navigating  to  files
3494              via gf).  If you set the option to "*", it means all the systems
3495              are considered slow (useful for cygwin,  where  all  the  checks
3496              might render vifm very slow if there are network mounts).
3497
3498              Example for autofs root /mnt/autofs:
3499
3500                set slowfs+=/mnt/autofs
3501
3502       'smartcase' 'scs'
3503              type: boolean
3504              default: false
3505              Overrides  the  ignorecase option if the search pattern contains
3506              at least one upper case character.  Only  used  when  ignorecase
3507              option is enabled.  It doesn't affect file filtering.
3508
3509       'sort' type: string list
3510              default: +name on *nix and +iname on Windows
3511              scope: local
3512              Sets  list of sorting keys (first item is primary key, second is
3513              secondary key, etc.):
3514                 [+-]ext     - extension of files and directories
3515                 [+-]fileext - extension of files only
3516                 [+-]name    - name (including extension)
3517                 [+-]iname   - name (including extension, ignores case)
3518                 [+-]type                -              file              type
3519              (dir/reg/exe/link/char/block/sock/fifo)
3520                 [+-]dir     - directory grouping (directory < file)
3521                 [+-]gid     - group id (*nix only)
3522                 [+-]gname   - group name (*nix only)
3523                 [+-]mode    - file type derived from its mode (*nix only)
3524                 [+-]perms   - permissions string (*nix only)
3525                 [+-]uid     - owner id (*nix only)
3526                 [+-]uname   - owner name (*nix only)
3527                 [+-]nlinks  - number of hard links (*nix only)
3528                 [+-]size    - size
3529                 [+-]nitems  - number of items in a directory (zero for files)
3530                 [+-]groups  - groups extracted via regexps from 'sortgroups'
3531                 [+-]target   -  symbolic  link  target  (empty for other file
3532              types)
3533                 [+-]atime   - time accessed (e.g. read, executed)
3534                 [+-]ctime   - time changed (changes in metadata, e.g. mode)
3535                 [+-]mtime   - time modified (when file contents is changed)
3536
3537              Note: look for st_atime, st_ctime and st_mtime in "man  2  stat"
3538              for more information on time keys.
3539
3540              '+'  means ascending sort for this key, and '-' means descending
3541              sort.
3542
3543              "dir" key is somewhat similar in  this  regard  but  it's  added
3544              implicitly:  when  "dir" is not specified, sorting behaves as if
3545              it was the first key in the list.  That's why if one wants sort‐
3546              ing  algorithm  to  mix  directories  and files, "dir" should be
3547              appended to sorting option, for example like this:
3548
3549                set sort+=dir
3550
3551              or
3552
3553                set sort=-size,dir
3554
3555              Value of the option is checked to include dir  key  and  default
3556              sorting key (name on *nix, iname on Windows).  Here is what hap‐
3557              pens if one of them is missing:
3558
3559                - type key is added at the beginning;
3560
3561                - default key is added at the end;
3562
3563              all other keys are left untouched (at most they are moved).
3564
3565              This option also changes view columns according to primary sort‐
3566              ing key set, unless 'viewcolumns' option is not empty.
3567
3568       'sortnumbers'
3569              type: boolean
3570              default: false
3571              scope: local
3572              Natural sort of (version) numbers within text.
3573
3574       'sortgroups'
3575              type: string
3576              default: ""
3577              scope: local
3578              Sets  comma-separated  list  of  regular  expressions to use for
3579              group sorting, double comma is literal comma.   Each  expression
3580              should  contain  at least one group or its value will be consid‐
3581              ered to be always empty.   Only  first  match  of  each  regular
3582              expression  is  considered.  Groups are considered from right to
3583              first similar to 'sort', first group divides list of files  into
3584              sub-groups,  each  of which is sorted by the second group and so
3585              on.
3586
3587              Example:
3588                set sortgroups=-(done|todo).*
3589              this would put files with "-done" in their names above all files
3590              with "-todo".
3591
3592       'sortorder'
3593              type: enumeration
3594              default: ascending
3595              Sets sort order for primary key: ascending, descending.
3596
3597       'statusline' 'stl'
3598              type: string
3599              default: ""
3600              Determines  the content of the status line (the line right above
3601              command-line).  Empty string means use same format like in  pre‐
3602              vious versions.  Following macros are supported:
3603
3604              - %t - file name (considering value of the 'classify' option)
3605
3606              - %A  -  file  attributes  (permissions on *nix or properties on
3607                Windows) %u - user name or uid (if it cannot be resolved)
3608
3609              - %g - group name or gid (if it cannot be resolved)
3610
3611              - %s - file size in human readable format
3612
3613              - %E - size of selected files in human readable format, same  as
3614                %s  when no files are selected, except that it will never show
3615                size of ../ in visual mode, since it cannot be selected
3616
3617              - %d - file modification date (uses 'timefmt' option)
3618
3619              - %z - short tips/tricks/hints that chosen  randomly  after  one
3620                minute period
3621
3622              - all 'rulerformat' macros
3623
3624              Percent  sign  can  be followed by optional minimum field width.
3625              Add '-' before minimum field width if you want field to be right
3626              aligned.  Example:
3627
3628                set statusline="  %t%= %A %10u:%-7g %15s %20d "
3629
3630              On  Windows file properties include next flags (upper case means
3631              flag is on):
3632               A - archive
3633               H - hidden
3634               I - content isn't indexed
3635               R - readonly
3636               S - system
3637               C - compressed
3638               D - directory
3639               E - encrypted
3640               P - reparse point (e.g. symbolic link)
3641               Z - sparse file
3642
3643       'suggestoptions'
3644              type: string list
3645              default:
3646              Controls when, for what and how suggestions are displayed.   The
3647              following values are available:
3648               - normal          - in normal mode;
3649               - visual          - in visual mode;
3650               - view            - in view mode;
3651               - otherpane       - use other pane to display suggestions, when
3652              available;
3653               - delay[:num]     - display suggestions after a small delay (to
3654              do not annoy if you just want to type a fast shortcut consisting
3655              of multiple keys),  num  specifies  the  delay  in  ms  (500  by
3656              default), 'timeoutlen' at most;
3657               - keys            - include shortcuts (commands and selectors);
3658               - marks           - include marks;
3659               -  registers[:num] - include registers, at most num files (5 by
3660              default).
3661
3662       'syscalls'
3663              type: boolean
3664              default: false
3665              When disabled, vifm will rely on external applications  to  per‐
3666              form  file-system  operations,  otherwise  system calls are used
3667              instead (much faster).  The feature is {EXPERIMENTAL} and {WORK-
3668              IN-PROGRESS}.   The  option  will be eventually removed.  Mostly
3669              *nix-like systems are affected.
3670
3671       'tabstop' 'ts'
3672              type: integer
3673              default: value from curses library
3674              Number of spaces that a Tab in the file counts for.
3675
3676       'timefmt'
3677              type: string
3678              default: " %m/%d %H:%M"
3679              Format of time in file list.  See "man 1 date" or "man  3  strf‐
3680              time" for details.
3681
3682       'timeoutlen' 'tm'
3683              type: integer
3684              default: 1000
3685              The time in milliseconds that is waited for a mapped key in case
3686              of already typed key sequence is ambiguous.
3687
3688       'title'
3689              type: boolean
3690              default: true when title can be restored, false otherwise
3691              When enabled title of the  terminal  or  terminal  multiplexer's
3692              window is updated according to current location.
3693
3694       'trash'
3695              type: boolean
3696              default: true
3697              Use trash directory.  See "Trash directory" section below.
3698
3699       'trashdir'
3700              type: string
3701              default: on *nix:
3702                 "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash"
3703                 or if $VIFM/Trash doesn't exist
3704                 "%r/.vifm-Trash-%u,$XDG_DATA_HOME/vifm/Trash,%r/.vifm-Trash"
3705                       on Windows:
3706                 "%r/.vifm-Trash,$XDG_DATA_HOME/vifm/Trash"
3707              List of trash directory path specifications, separated with com‐
3708              mas.  Each list item either defines an absolute  path  to  trash
3709              directory  or  a  path  relative to a mount point root when list
3710              element starts with "%r/".  Value  of  the  option  can  contain
3711              environment  variables  (of  form  "$envname"),  which  will  be
3712              expanded (prepend $ with a slash to prevent  expansion).   Envi‐
3713              ronment variables are expanded when the option is set.
3714
3715              On  *nix,  if  element ends with "%u", the mark is replaced with
3716              real user ID and permissions are set  so  that  only  that  only
3717              owner is able to use it.
3718              Note that even this setup is not completely secure when combined
3719              with "%r/" and it's overall safer to keep files in  home  direc‐
3720              tory, but that implies cost of copying files between partitions.
3721
3722              When  new file gets cut (deleted) vifm traverses each element of
3723              the option in the order of their appearance and uses first trash
3724              directory  that  it  was  able  to  create  or  that  is already
3725              writable.
3726
3727              Default value tries to use trash directory per mount  point  and
3728              falls back to ~/.vifm/Trash on failure.
3729
3730              Will  attempt to create the directory if it does not exist.  See
3731              "Trash directory" section below.
3732
3733       'tuioptions' 'to'
3734              type: charset
3735              default: "ps"
3736              Each flag configures some aspect of TUI appearance.   The  flags
3737              are:
3738              p - when included:
3739                *  file  list  inside  a pane gets additional single character
3740              padding on left and right sides;
3741                * quick view and view mode get single character padding.
3742              s - when included, left and right borders (side  borders,  hence
3743              "s" character) are visible.
3744
3745       'undolevels' 'ul'
3746              type: integer
3747              default: 100
3748              Maximum  number  of  changes that can be undone.  Note that here
3749              single file operation is used as a  unit,  not  operation,  i.e.
3750              deletion of 101 files will exceed default limit.
3751
3752       'vicmd'
3753              type: string
3754              default: "vim"
3755              The  actual command used to start vi.  Ampersand sign at the end
3756              (regardless whether it's preceded by space or not)  means  back‐
3757              grounding of command.
3758
3759       'viewcolumns'
3760              type: string
3761              default: ""
3762              scope: local
3763              Format string containing list of columns in the view.  When this
3764              option is empty view columns to show  are  chosen  automatically
3765              using sorting keys (see 'sort') as a base.  Value of this option
3766              is ignored if 'lsview' is set.  See "Column view" section  below
3767              for format description.
3768
3769              An  example  of  setting the options for both panes (note :windo
3770              command):
3771
3772                windo set viewcolumns=-{name}..,6{size},11{perms}
3773
3774       'vixcmd'
3775              type: string
3776              default: value of 'vicmd'
3777              The command used to start vi when in X.  Ampersand sign  at  the
3778              end  (regardless  whether  it's  preceded by space or not) means
3779              backgrounding of command.
3780
3781       'vifminfo'
3782              type: set
3783              default: bookmarks,bmarks
3784              Controls what will be saved in the $VIFM/vifminfo file.
3785
3786                 bmarks    - named bookmarks
3787                 bookmarks - marks, except special ones like '< and '>
3788                 tui       - state of the user interface (sorting,  number  of
3789              windows, quick
3790                             view state, active view)
3791                 dhistory  - directory history
3792                 state     - file name and dot filters and terminal multiplex‐
3793              ers integration
3794                             state
3795                 cs        - primary color scheme
3796                 savedirs  - save last visited directory (requires dhistory)
3797                 chistory  - command line history
3798                 shistory  - search history (/ and ? commands)
3799                 phistory  - prompt history
3800                 fhistory  - history of local filter (see description  of  the
3801              "=" normal mode
3802                             command)
3803                 dirstack  - directory stack overwrites previous stack, unless
3804              stack of
3805                             current session is empty
3806                 registers - registers content
3807                 options   - all options that can be set with the :set command
3808              (obsolete)
3809                 filetypes - associated programs and viewers (obsolete)
3810                 commands   - user defined commands (see :command description)
3811              (obsolete)
3812
3813       'vimhelp'
3814              type: boolean
3815              default: false
3816              Use vim help format.
3817
3818       'wildmenu' 'wmnu'
3819              type: boolean
3820              default: false
3821              Controls whether possible matches of completion  will  be  shown
3822              above the command line.
3823
3824       'wildstyle'
3825              type: enumeration
3826              default: bar
3827              Picks presentation style of wild menu.  Possible values:
3828               - bar   - one-line with left-to-right cursor
3829               - popup - multi-line with top-to-bottom cursor
3830
3831       'wordchars'
3832              type: string list
3833              default:  "1-8,14-31,33-255" (that is all non-whitespace charac‐
3834              ters)
3835              Specifies which characters in command-line mode should  be  con‐
3836              sidered  as  part of a word.  Value of the option is comma-sepa‐
3837              rated list of ranges.  If both endpoints of a range match,  sin‐
3838              gle  endpoint  is enough (e.g. "a" = "a-a").  Both endpoints are
3839              inclusive.  There are two accepted forms: character representing
3840              itself  or  number  encoding character according to ASCII table.
3841              In case of ambiguous characters (dash, comma, digit) use numeric
3842              form.   Accepted characters are in the range from 0 to 255.  Any
3843              Unicode character with code greater than 255 is considered to be
3844              part of a word.
3845
3846              The option affects Alt-D, Alt-B and Alt-F, but not Ctrl-W.  This
3847              is intentionally to allow two use cases:
3848
3849               - Moving by WORDS and deletion by words.
3850               - Moving by words and deletion by WORDS.
3851
3852              To get the latter use the following mapping:
3853
3854                cnoremap <c-w> <a-b><a-d>
3855
3856              Also used for abbreviations.
3857
3858       'wrap' type: boolean
3859              default: true
3860              Controls whether to wrap text in quick view.
3861
3862       'wrapscan' 'ws'
3863              type: boolean
3864              default: true
3865              Searches wrap around end of the list.
3866

Mappings

3868       Since it's not easy to enter special characters there are several  spe‐
3869       cial sequences that can be used in place of them.  They are:
3870
3871       <cr>   Enter key.
3872
3873       <esc>  Escape key.
3874
3875       <space>
3876              Space key.
3877
3878       <lt>   Less-than character (<).
3879
3880       <nop>  provides a way to disable a mapping (by mapping it to <nop>).
3881
3882       <bs>   Backspace key (see key conflict description below).
3883
3884       <tab> <s-tab>
3885              Tabulation and Shift+Tabulation keys.
3886
3887       <home> <end>
3888              Home/End.
3889
3890       <left> <right> <up> <down>
3891              Arrow keys.
3892
3893       <pageup> <pagedown>
3894              PageUp/PageDown.
3895
3896       <del> <delete>
3897              Delete  key.   <del>  and  <delete>  mean  different  codes, but
3898              <delete> is more common.
3899
3900       <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_>
3901              Control + some key (see key conflict description below).
3902
3903       <a-a>,<a-b>,...,<a-z>
3904              <m-a>,<m-b>,...,<m-z> Alt + some key.
3905
3906       <a-c-a>,<a-c-b>,...,<a-c-z>
3907              <m-c-a>,<m-c-b>,...,<m-c-z> only for *nix
3908              Alt + Ctrl + some key.
3909
3910       <f0> - <f63>
3911              Functional keys.
3912
3913       <c-f1> - <c-f12>
3914              only for MS-Windows
3915              functional keys with Control key pressed.
3916
3917       <a-f1> - <a-f12>
3918              only for MS-Windows
3919              functional keys with Alt key pressed.
3920
3921       <s-f1> - <s-f12>
3922              only for MS-Windows
3923              functional keys with Shift key pressed.
3924
3925       Note that due to the way terminals process their  input,  several  key‐
3926       board keys might be mapped to single key code, for example:
3927
3928         - <cr> and <c-m>;
3929
3930         - <tab> and <c-i>;
3931
3932         - <c-h> and <bs>;
3933
3934         - etc.
3935
3936       Most  of  the  time  they  are defined consistenly and don't cause sur‐
3937       prises, but <c-h> and <bs> are treated differently in  different  envi‐
3938       ronments (although they match each other all the time), that's why they
3939       correspond to different keys in vifm.  As a consequence, if you map <c-
3940       h> or <bs> be sure to map the other one to the same combination so that
3941       the mapping will work in all environments.
3942
3943       vifm removes whitespace characters at the beginning  and  end  of  com‐
3944       mands.   That's  why  you  may want to use <space> at the end of rhs in
3945       mappings.  For example:
3946
3947         cmap <f1> man<space>
3948
3949       will put "man " in line when you hit the <f1> key in the  command  line
3950       mode.
3951

Expression syntax

3953       Supported expressions is a subset of what VimL provides.
3954
3955       Expression syntax summary, from least to most significant:
3956
3957       expr1      expr2 || expr2 ..       logical OR
3958
3959       expr2      expr3 && expr3 ..       logical AND
3960
3961       expr3      expr4 == expr4          equal
3962                  expr4 != expr4          not equal
3963                  expr4 >  expr4          greater than
3964                  expr4 >= expr4          greater than or equal
3965                  expr4 <  expr4          smaller than
3966                  expr4 <= expr4          smaller than or equal
3967
3968       expr4      expr5 . expr5 ..        string concatenation
3969
3970       expr5      - expr5                 unary minus
3971                  + expr5                 unary plus
3972                  ! expr5                 logical NOT
3973
3974       expr6      number                  number constant
3975                  "string"                string constant, \ is special
3976                  'string'                string constant, ' is doubled
3977                  &option                 option value
3978                  $VAR                    environment variable
3979                  function(expr1, ...)    function call
3980
3981       ".." indicates that the operations in this level can be concatenated.
3982
3983       expr1
3984       -----
3985       expr2 || expr1
3986
3987       Arguments are converted to numbers before evaluation.
3988
3989       Result is non-zero if at least one of arguments is non-zero.
3990
3991       It's  right  associative  and with short-circuiting, so sub-expressions
3992       are evaluated from left to right until result of  whole  expression  is
3993       determined (i.e., until first non-zero) or end of the expression.
3994
3995       expr2
3996       -----
3997       expr3 && expr2
3998
3999       Arguments are converted to numbers before evaluation.
4000
4001       Result is non-zero only if both arguments are non-zero.
4002
4003       It's  right  associative  and with short-circuiting, so sub-expressions
4004       are evaluated from left to right until result of  whole  expression  is
4005       determined (i.e., until first zero) or end of the expression.
4006
4007       expr3
4008       -----
4009       expr4 {cmp} expr4
4010
4011       Compare  two  expr4  expressions,  resulting  in a 0 if it evaluates to
4012       false or 1 if it evaluates to true.
4013
4014       equal                   ==
4015       not equal               !=
4016       greater than            >
4017       greater than or equal   >=
4018       smaller than            <
4019       smaller than or equal   <=
4020
4021       Examples:
4022
4023         'a' ==  'a'         == 1
4024         'a' >   'b'         == 1
4025         'a' ==  'b'         == 0
4026         '2' >   'b'         == 0
4027          2  >   'b'         == 1
4028          2  >   '1b'        == 1
4029          2  >   '9b'        == 0
4030         -1  == -'1'         == 1
4031          0  ==  '--1'       == 1
4032
4033       expr4
4034       -----
4035       expr5 . expr5 ..     string concatenation
4036
4037       Examples:
4038
4039         'a' . 'b'           == 'ab'
4040         'aaa' . '' . 'c'    == 'aaac'
4041
4042       expr5
4043       -----
4044
4045       - expr5              unary minus
4046       + expr5              unary plus
4047       ! expr5              logical NOT
4048
4049       For '-' the sign of the number is changed.
4050       For '+' the number is unchanged.
4051       For '!' non-zero becomes zero, zero becomes one.
4052
4053       A String will be converted to a Number first.
4054
4055       These operations can be repeated and mixed.  Examples:
4056
4057          --9                == 9
4058         ---9                == -9
4059          -+9                == 9
4060          !-9                == 0
4061          !''                == 1
4062         !'x'                == 0
4063          !!9                == 1
4064
4065       expr6
4066       -----
4067
4068       number               number constant
4069       -----
4070
4071       Decimal number.  Examples:
4072
4073         0                   == 0
4074         0000                == 0
4075         01                  == 1
4076         123                 == 123
4077         10000               == 10000
4078
4079       string
4080       ------
4081       "string"             string constant
4082
4083       Note that double quotes are used.
4084
4085       A string constant accepts these special characters:
4086         \b      backspace <bs>
4087         \e      escape <esc>
4088         \n      newline
4089         \r      return <cr>
4090         \t      tab <tab>
4091         \\      backslash
4092         \"      double quote
4093
4094       Examples:
4095
4096         "\"Hello,\tWorld!\""
4097         "Hi,\nthere!"
4098
4099       literal-string
4100       --------------
4101       'string'             string constant
4102
4103       Note that single quotes are used.
4104
4105       This string is taken as it is.  No backslashes are removed  or  have  a
4106       special  meaning.   The only exception is that two quotes stand for one
4107       quote.
4108
4109       Examples:
4110
4111         'All\slashes\are\saved.'
4112         'This string contains doubled single quotes ''here'''
4113
4114       option
4115       ------
4116       &option               option value (local one is preferred, if  exists)
4117       &g:option              global  option value &l:option             local
4118       option value
4119
4120       Examples:
4121
4122         echo 'Terminal size: '.&columns.'x'.&lines
4123         if &columns > 100
4124
4125       Any valid option name can be used here (note that "all" in  ":set  all"
4126       is a pseudo option).  See ":set options" section above.
4127
4128       environment variable
4129       --------------------
4130       $VAR                  environment variable
4131
4132       The  String value of any environment variable.  When it is not defined,
4133       the result is an empty string.
4134
4135       Examples:
4136
4137         'This is my $PATH env: ' . $PATH
4138         'vifmrc at ' . $MYVIFMRC . ' is used.'
4139
4140       function call
4141       -------------
4142       function(expr1, ...)  function call
4143
4144       See "Functions" section below.
4145
4146       Examples:
4147
4148         "'" . filetype('.') . "'"
4149         filetype('.') == 'reg'
4150

Functions

4152       USAGE               RESULT        DESCRIPTION
4153
4154       chooseopt({opt})    String        Queries choose parameters  passed  on
4155       startup.
4156       executable({expr})   Integer       Checks whether {expr} command avail‐
4157       able.
4158       expand({expr})      String        Expands special keywords in {expr}.
4159       filetype({fnum})    String        Returns file type from position.
4160       getpanetype()       String        Returns type of current pane.
4161       has({property})     Integer       Checks whether  instance  has  {prop‐
4162       erty}.
4163       layoutis({type})     Integer        Checks  whether  layout  is of type
4164       {type}.
4165       paneisat({loc})     Integer       Checks whether  current  pane  is  at
4166       {loc}.
4167       system({command})    String         Executes  shell command and returns
4168       its output.
4169
4170       chooseopt({opt})
4171
4172       Retrieves values of options related to file choosing.  {opt} can be one
4173       of:
4174           files      returns argument of --choose-files or empty string
4175           dir        returns argument of --choose-dir or empty string
4176           cmd        returns argument of --on-choose or empty string
4177           delimiter  returns argument of --delimiter or the default one (\n)
4178
4179       executable({expr})
4180
4181       If {expr} is absolute or relative path, checks whether path destination
4182       exists and refers to an executable, otherwise  checks  whether  command
4183       named  {expr}  is  present  in directories listed in $PATH.  Checks for
4184       various  executable  extensions  on  Windows.   Returns  boolean  value
4185       describing result of the check.
4186
4187       Example:
4188
4189         " use custom default viewer script if it's available and installed
4190         " in predefined system directory, otherwise try to find it elsewhere
4191         if executable('/usr/local/bin/defviewer')
4192             fileview * /usr/local/bin/defviewer %c
4193         else
4194             if executable('defviewer')
4195                 fileview * defviewer %c
4196             endif
4197         endif
4198
4199       expand({expr})
4200
4201       Expands  environment variables and macros in {expr} just like it's done
4202       for command-line commands.  Returns a  string.   See  "Command  macros"
4203       section above.
4204
4205       Examples:
4206
4207         " percent sign
4208         :echo expand('%%')
4209         " the last part of directory name of the other pane
4210         :echo expand('%D:t')
4211         " $PATH environment variable (same as `:echo $PATH`)
4212         :echo expand('$PATH')
4213
4214       filetype({fnum})
4215
4216       The  result  is  a string, which represents file type and is one of the
4217       list:
4218           exe    executables
4219           reg    regular files
4220           link   symbolic links
4221           dir    directories
4222           char   character devices
4223           block  block devices
4224           fifo   pipes
4225           sock   *nix domain sockets
4226           ?      unknown file type (should never appear)
4227
4228       Parameter {fnum} can have following values:
4229           - '.' to get type of file under the cursor in the active pane
4230
4231       getpanetype()
4232
4233       Retrieves string describing type of current pane.  Possible return val‐
4234       ues:
4235           regular      regular file listing of some directory
4236           custom       custom file list (%u)
4237           very-custom  very custom file list (%U)
4238
4239       has({property})
4240
4241       Allows  examining  internal  parameters from scripts to e.g. figure out
4242       environment in which application is running.  Returns 1 if property  is
4243       true/present, otherwise 0 is returned.  Currently the following proper‐
4244       ties are supported (anything else will yield 0):
4245           unix  runs in *nix-like environment (including Cygwin)
4246           win   runs on Windows
4247
4248       Usage example:
4249
4250         " skip user/group on Windows
4251         if !has('win')
4252             let $RIGHTS = '%10u:%-7g '
4253         endif
4254
4255         execute 'set' 'statusline="  %t%= %A '.$RIGHTS.'%15E %20d  "'
4256
4257       layoutis({type})
4258
4259       Checks whether current interface layout is {type} or not, where  {type}
4260       can be:
4261           only    single-pane mode
4262           split   double-pane mode (either vertical or horizon split)
4263           vsplit  vertical split (left and right panes)
4264           hsplit  horizontal split (top and bottom panes)
4265
4266       Usage example:
4267
4268         " automatically split vertically before enabling preview
4269         :nnoremap w :if layoutis('only') | vsplit | endif | view<cr>
4270
4271       paneisat({loc})
4272
4273       Checks whether position of active pane in current layout matches one of
4274       the following locations:
4275           top     pane reaches top border
4276           bottom  pane reaches bottom border
4277           left    pane reaches left border
4278           right   pane reaches right border
4279
4280       system({command})
4281
4282       Runs the command in shell and returns its output (joined standard  out‐
4283       put  and  standard error streams).  All trailing newline characters are
4284       stripped to allow easy appending  to  command  output.   Ctrl-C  should
4285       interrupt the command.
4286
4287       Usage example:
4288
4289         " command to enter .git/ directory of git-repository (when ran inside one)
4290         command! cdgit :execute 'cd' system('git rev-parse --git-dir')
4291
4293       When  navigating  to some path from a menu there is a difference in end
4294       location depending on whether path has trailing slash  or  not.   Files
4295       normally  don't have trailing slashes so "file/" won't work and one can
4296       only navigate to a file anyway.  On the  other  hand  with  directories
4297       there  are  two  options:  navigate to a directory or inside of it.  To
4298       allow both use cases, the first one is used on paths like "dir" and the
4299       second one for "dir/".
4300
4301       Commands
4302
4303       :range navigate to a menu line.
4304
4305       :exi[t][!] :q[uit][!] :x[it][!]
4306              leave menu mode.
4307
4308       :noh[lsearch]
4309              reset search match highlighting.
4310
4311       :w[rite] {dest}
4312              write all menu lines into file specified by {dest}.
4313
4314       General
4315
4316       j, Ctrl-N - move down.
4317       k, Ctrl-P - move up.
4318       Enter, l - select and exit the menu.
4319       Ctrl-L - redraw the menu.
4320
4321       Escape, Ctrl-C, ZZ, ZQ, q - quit.
4322
4323       In all menus
4324
4325       The following set of keys has the same meaning as in normal mode.
4326
4327       Ctrl-B, Ctrl-F
4328       Ctrl-D, Ctrl-U
4329       Ctrl-E, Ctrl-Y
4330       /, ?
4331       n, N
4332       [count]G, [count]gg
4333       H, M, L
4334       zb, zt, zz
4335
4336       zh - scroll menu items [count] characters to the right.
4337       zl - scroll menu items [count] characters to the left.
4338       zH - scroll menu items half of screen width characters to the right.
4339       zL - scroll menu items half of screen width characters to the left.
4340
4341       : - enter command line mode for menus (currently only :exi[t], :q[uit],
4342       :x[it] and :{range} are supported).
4343
4344       b - interpret content of the menu as list of paths and use it to create
4345       custom  view  in  place  of previously active pane.  See "Custom views"
4346       section below.
4347       B - same as above, but creates unsorted view.
4348
4349       v - load menu content into quickfix list of the editor (Vim  compatible
4350       by  assumption)  or  if  list  doesn't have separators after file names
4351       (colons) open each line as a file name.
4352
4353
4354       Below is description of additional commands and reaction  on  selection
4355       in some menus and dialogs.
4356
4357       Apropos menu
4358
4359       Selecting  menu  item  run  man on a given topic.  Menu won't be closed
4360       automatically to allow view several pages one by one.
4361
4362       Command-line mode abbreviations menu
4363
4364       Type dd on an abbreviation to remove it.
4365
4366       c leaves menu preserving file selection and inserts right-hand side  of
4367       selected command into command-line.
4368
4369       Color scheme menu
4370
4371       Selecting  name  of a color scheme applies it the same way as if ":col‐
4372       orscheme <name>" was executed on the command-line.
4373
4374       Commands menu
4375
4376       Selecting command executes it with empty arguments (%a).
4377
4378       dd on a command to remove.
4379
4380       Marks menu
4381
4382       Selecting mark navigates to it.
4383
4384       dd on a mark to remove it.
4385
4386       Bookmarks menu
4387
4388       Selecting a bookmark navigates to it.
4389
4390       Type dd on a bookmark to remove it.
4391
4392       gf and e also work to make it more convenient to bookmark files.
4393
4394       Trash (:lstrash) menu
4395
4396       r on a file name to restore it from trash.
4397
4398       dd deletes file under the cursor.
4399
4400       Trashes menu
4401
4402       dd empties selected trash in background.
4403
4404       Directory history and Trashes menus
4405
4406       Selecting directory name will change directory of the current  view  as
4407       if :cd command was used.
4408
4409       Directory stack menu
4410
4411       Selecting  directory  name  will rotate stack to put selected directory
4412       pair at the top of the stack.
4413
4414       Filetype menu
4415
4416       Commands from vifmrc or typed in command-line are displayed above empty
4417       line.  All commands below empty line are from .desktop files.
4418
4419       c leaves menu preserving file selection and inserts command after :! in
4420       command-line mode.
4421
4422       Grep, find, locate, bookmarks and user menu with navigation (%M macro)
4423
4424       gf - navigate  previously  active  view  to  currently  selected  item.
4425       Leaves menu mode except for grep menu.  Pressing Enter key has the same
4426       effect.
4427
4428       e - open selected path in the editor, stays in menu mode.
4429
4430       c - leave menu preserving file selection and insert file name after  :!
4431       in command-line mode.
4432
4433       User menu without navigation (%m macro)
4434
4435       c leaves menu preserving file selection and inserts whole line after :!
4436       in command-line mode.
4437
4438       Grep menu
4439
4440       Selecting file (via Enter or l key) opens it in editor set  by  'vicmd'
4441       at  given  line  number.   Menu  won't be closed automatically to allow
4442       viewing more than one result.
4443
4444       See above for "gf" and "e" keys description.
4445
4446       Command-line history menu
4447
4448       Selecting an item executes it as command-line command, search query  or
4449       local filter.
4450
4451       c  leaves menu preserving file selection and inserts line into command-
4452       line of appropriate kind.
4453
4454       Volumes menu
4455
4456       Selecting a drive navigates previously active pane to the root of  that
4457       drive.
4458
4459       Fileinfo dialog
4460
4461       Enter, q - close dialog
4462
4463       Sort dialog
4464
4465       h, Space - switch ascending/descending.
4466       q - close dialog
4467
4468       One shortcut per sorting key (see the dialog).
4469
4470       Attributes (permissions or properties) dialog
4471
4472       h, Space - check/uncheck.
4473       q - close dialog
4474
4475       Item states:
4476
4477       - * - checked flag.
4478
4479       - X - means that it has different value for files in selection.
4480
4481       - d  (*nix only) - (only for execute flags) means u-x+X, g-x+X or o-x+X
4482         argument for the chmod program.  If you're not on OS X  and  want  to
4483         remove  execute  permission  bit  from all files, but preserve it for
4484         directories, set all execute flags to 'd' and check 'Set Recursively'
4485         flag.
4486

Custom views

4488       Definition
4489
4490       Normally  file views contain list of files from a single directory, but
4491       sometimes it's useful to populate them with list of files that  do  not
4492       belong to the same directory, which is what custom views are for.
4493
4494       Presentation
4495
4496       Custom  views are still related to directory they were in before custom
4497       list was loaded.  Path to that directory (original  directory)  can  be
4498       seen in the title of a custom view.
4499
4500       Files in same directory have to be named differently, this doesn't hold
4501       for custom views thus seeing just file names might be rather confusing.
4502       In order to give an idea where files come from and when possible, rela‐
4503       tive paths to original directory of the view  is  displayed,  otherwise
4504       full path is used instead.
4505
4506       Custom views normally don't contain any inexistent files.
4507
4508       Navigation
4509
4510       Custom  views  have  some  differences related to navigation in regular
4511       views.
4512
4513       gf - acts similar to gf on symbolic links and navigates to the file  at
4514       its real
4515            location.
4516
4517       h, gh - return to the original directory.
4518
4519       Opening ".." entry also causes return to the original directory.
4520
4521       History
4522
4523       Custom  list exists only while it's visible, once left one can't return
4524       to it, so there is no appearances of it in any history.
4525
4526       Filters
4527
4528       Only local filter affects content of the view.   This  is  intentional,
4529       presumably  if  one loads list, precisely that list should be displayed
4530       (except for inexistent paths, which are ignored).
4531
4532       Search
4533
4534       Although directory names are visible in listing, they are  not  search‐
4535       able.   Only  file  names  are  taken into account (might be changed in
4536       future, searching whole lines seems quite reasonable).
4537
4538       Sorting
4539
4540       Contrary to search sorting by name works on whole visible part of  file
4541       path.
4542
4543       Highlight
4544
4545       Whole  file name is highlighted as one entity, even if there are direc‐
4546       tory elements.
4547
4548       Updates
4549
4550       Reloads can occur, though they are not automatic  due  to  files  being
4551       scattered  among  different  places.  On a reload, inexistent files are
4552       removed and meta-data of all other files is updated.
4553
4554       Once custom view forgets about the file, it won't add it back  even  if
4555       it's created again.  So not seeing file previously affected by an oper‐
4556       ation, which was undone is normal.
4557
4558       Operations
4559
4560       All operations that add files are  forbidden  for  custom  views.   For
4561       example,  moving/copying/putting files into a custom view doesn't work,
4562       because it doesn't make much sense.
4563
4564       On the other hand, operations that use files of  a  custom  view  as  a
4565       source  (e.g. yanking, copying, moving file from custom view, deletion)
4566       and operations that modify names are all allowed.
4567

Startup

4569       On startup vifm determines several variables that are used  during  the
4570       session.  They are determined in the order they appear below.
4571
4572       On  *nix  systems $HOME is normally present and used as is.  On Windows
4573       systems vifm tries to find correct  home  directory  in  the  following
4574       order:
4575        - $HOME variable;
4576        - $USERPROFILE variable (on Windows only);
4577        -  a  combination  of  $HOMEDRIVE  and $HOMEPATH variables (on Windows
4578       only).
4579
4580       vifm tries to find correct configuration directory by checking the fol‐
4581       lowing places:
4582        - $VIFM variable;
4583        - parent directory of the executable file (on Windows only);
4584        - $HOME/.vifm directory;
4585        - $APPDATA/Vifm directory (on Windows only);
4586        - $XDG_CONFIG_HOME/vifm directory;
4587        - $HOME/.config/vifm directory.
4588
4589       vifm tries to find correct configuration file by checking the following
4590       places:
4591        - $MYVIFMRC variable;
4592        - vifmrc in parent directory of the executable file (on Windows only);
4593        - $VIFM/vifmrc file.
4594

Configure

4596       See "Startup" section above for the explanations  on  $VIFM  and  $MYV‐
4597       IFMRC.
4598
4599       The  vifmrc  file  contains  commands  that  will  be  executed on vifm
4600       startup.  There are two such files: global and local.  Global one is at
4601       {prefix}/etc/vifm/vifmrc,  see  $MYVIFMRC  variable description for the
4602       search algorithm used to find local vifmrc.  Global  vifmrc  is  loaded
4603       before  the local one, so that the later one can redefine anything con‐
4604       figured globally.
4605
4606       Use vifmrc to set settings, mappings, filetypes etc.  To use multi line
4607       commands  precede  each next line with a slash (whitespace before slash
4608       is ignored, but all spaces at the end of the  lines  are  saved).   For
4609       example:
4610
4611         set
4612             \smartcase
4613
4614       equals "setsmartcase".  When
4615
4616         set<space here>
4617             \ smartcase
4618
4619       equals "set  smartcase".
4620
4621       The  $VIFM/vifminfo file contains session settings.  You may edit it by
4622       hand to change the settings, but it's not recommended to do that,  edit
4623       vifmrc  instead.   You  can  control  what  settings  will  be saved in
4624       vifminfo by setting 'vifminfo' option.  Vifm always writes this file on
4625       exit  unless  'vifminfo'  option is empty.  Marks, bookmarks, commands,
4626       histories, filetypes, fileviewers and registers in the file are  merged
4627       with vifm configuration (which has bigger priority).
4628
4629       Generally,  runtime  configuration  has bigger priority during merging,
4630       but there are some exceptions:
4631
4632         - directory stack stored in the file is not overwritten unless  some‐
4633           thing is changed in vifm session that performs merge;
4634
4635         - each  mark  or  bookmark  is marked with a timestamp, so that newer
4636           value is not overwritten by older one, thus no matter from where it
4637           comes, the newer one wins.
4638
4639       The  $VIFM/scripts  directory can contain shell scripts.  vifm modifies
4640       its PATH environment variable to let user  run  those  scripts  without
4641       specifying  full path.  All subdirectories of the $VIFM/scripts will be
4642       added to PATH too.  Script in a subdirectory overlaps script  with  the
4643       same name in all its parent directories.
4644
4645       The  $VIFM/colors/  and  {prefix}/etc/vifm/colors/  directories contain
4646       color schemes.  Available color schemes are searched in that order,  so
4647       on name conflict the one in $VIFM/colors/ wins.
4648
4649       Each  color scheme should have ".vifm" extension.  This wasn't the case
4650       before and for this reason the following rules apply during lookup:
4651
4652         - if there is no file with .vifm extension,  all  regular  files  are
4653           listed;
4654
4655         - otherwise  only  files  with  .vifm  extension are listed (with the
4656           extension being truncated).
4657

Automatic FUSE mounts

4659       vifm has a builtin support of automated FUSE file system mounts.  It is
4660       implemented  using  file  associations  mechanism.  To enable automated
4661       mounts, one needs to use a specially formatted program line in filetype
4662       or filextype commands.  Currently two formats are supported:
4663
4664       1)  FUSE_MOUNT  This format should be used in case when all information
4665       needed for mounting all files of a particular type is the  same.   E.g.
4666       mounting of tar files don't require any file specific options.
4667
4668       Format line:
4669         FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND]
4670
4671       Example filetype command:
4672
4673         :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
4674
4675       2)  FUSE_MOUNT2 This format allows one to use specially formatted files
4676       to perform mounting and is useful for  mounting  remotes,  for  example
4677       remote file systems over ftp or ssh.
4678
4679       Format line:
4680         FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]
4681
4682       Example filetype command:
4683
4684         :filetype FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
4685
4686       Example file content:
4687
4688         root@127.0.0.1:/
4689
4690       All  %  macros  are  expanded by vifm at runtime and have the following
4691       meaning:
4692         - %SOURCE_FILE is replaced by full path to selected file;
4693         - %DESTINATION_DIR is replaced by full path to mount directory, which
4694       is created by vifm basing on the value of 'fusehome' option;
4695         -  %PARAM  value  is filled from the first line of file (whole line),
4696       though in the future it can be changed to whole file content;
4697         - %FOREGROUND means that you want to run mount command as  a  regular
4698       command  (required  to  be able to provide input for communication with
4699       mounter in interactive way).
4700
4701       %FOREGROUND is an optional macro.  Other macros are not mandatory,  but
4702       mount commands likely won't work without them.
4703
4704       %CLEAR  is  obsolete name of %FOREGROUND, which is still supported, but
4705       might be removed in future.  Its use is discouraged.
4706
4707       The mounted FUSE file systems will be automatically  unmounted  in  two
4708       cases:
4709
4710         - when vifm quits (with ZZ, :q, etc. or when killed by signal);
4711
4712         - when you explicitly leave mount point going up to its parent direc‐
4713           tory (with h, Enter on "../" or ":cd ..") and other pane is not  in
4714           the same directory or its child directories.
4715

View look

4717       vifm supports displaying of file list view in two different ways:
4718
4719         - in  a  table  mode,  when  multiple columns can be set using 'view‐
4720           columns' option (see "Column view" section below for details);
4721
4722         - in a multicolumn list manner which looks almost like `ls  -x`  com‐
4723           mand output (see "ls-like view" section below for details).
4724
4725       The  look is local for each view and can be chosen by changing value of
4726       the 'lsview' boolean option.
4727
4728       Depending on view look some of keys change their meaning to allow  more
4729       natural cursor moving.  This concerns mainly h, j, k, l and other simi‐
4730       lar navigation keys.
4731
4732       Also some of options can be ignored if they don't affect view  display‐
4733       ing in selected look.  For example value of 'viewcolumns' when 'lsview'
4734       is set.
4735

ls-like view

4737       When this view look is enabled by setting 'lsview' option on, vifm will
4738       display  files  in  multiple columns.  Number of columns depends on the
4739       length of the longest file name present in  current  directory  of  the
4740       view.   Whole  file list is automatically reflowed on directory change,
4741       terminal or view resize.
4742
4743       View looks close to output of `ls -x` command, so files are listed left
4744       to right in rows.
4745
4746       In  this  mode file manipulation commands (e.g. d) don't work line-wise
4747       like they do in Vim, since such operations would be uncommon  for  file
4748       manipulating  tasks.   Thus,  for  example, dd will remove only current
4749       file.
4750

Column view

4752       View columns are described by a comma-separated list of column descrip‐
4753       tions, each of which has the following format
4754           [ '-' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type '}' '.'{0,3}
4755       where fw stands for full width and tw stands for text width.
4756
4757       So it basically consists of four parts:
4758        1. Optional alignment specifier
4759        2. Optional width specifier
4760        3. Mandatory column name
4761        4. Optional cropping specifier
4762
4763       Alignment specifier
4764
4765       It's  an  optional  minus  or  asterisk sign as the first symbol of the
4766       string.
4767
4768       Specifies type of text alignment within a column.  Three types are sup‐
4769       ported:
4770
4771       - left align
4772
4773           set viewcolumns=-{name}
4774
4775       - right align (default)
4776
4777           set viewcolumns={name}
4778
4779       - dynamic align
4780
4781         It's  like  left alignment, but when the text is bigger than the col‐
4782         umn, the alignment is made at the right (so the part of the field  is
4783         always visible).
4784
4785           set viewcolumns=*{name}
4786
4787       Width specifier
4788
4789       It's  a  number  followed  by  a  percent sign, two numbers (second one
4790       should be less than or equal to the first one) separated with a dot  or
4791       a single number.
4792
4793       Specifies column width and its units. There are three size types:
4794
4795       - absolute size - column width is specified in characters
4796
4797           set viewcolumns=-100{name},20.15{ext}
4798
4799         results  in  two  columns  with  lengths of 100 and 20 and a reserved
4800         space of five characters on the left of second column.
4801
4802       - relative (percent) size - column width is specified  in  percents  of
4803         view width
4804
4805           set viewcolumns=-80%{name},15%{ext},5%{mtime}
4806
4807         results  in three columns with lengths of 80/100, 15/100 and 5/100 of
4808         view width.
4809
4810       - auto size (default) - column width is automatically determined
4811
4812           set viewcolumns=-{name},{ext},{mtime}
4813
4814         results in three columns with length of  one  third  of  view  width.
4815         There  is no size adjustment to content, since it will slow down ren‐
4816         dering.
4817
4818       Columns of different sizing types can be  freely  mixed  in  one  view.
4819       Though  sometimes  some  of columns can be seen partly or be completely
4820       invisible if there is not enough space to display them.
4821
4822       Column name
4823
4824       This is just a sort key surrounded with curly braces, e.g.
4825
4826         {name},{ext},{mtime}
4827
4828       {name} and {iname} keys are the same and present both  for  consistency
4829       with 'sort' option.
4830
4831       Empty  curly braces ({}) are replaced with the default secondary column
4832       for primary sort key. So after the next command view will be  displayed
4833       almost  as if 'viewcolumns' is empty, but adding ellipsis for long file
4834       names:
4835
4836         set viewcolumns=-{name}..,6{}.
4837
4838       Cropping specifier
4839
4840       It's from one to three dots after closing curly brace in column format.
4841
4842       Specifies type of text truncation if it  doesn't  fit  in  the  column.
4843       Currently three types are supported:
4844
4845         - truncation - text is truncated
4846
4847             set viewcolumns=-{name}.
4848
4849           results  in  truncation  of  names that are too long too fit in the
4850           view.
4851
4852         - adding of ellipsis - ellipsis on the left or right are  added  when
4853           needed
4854
4855             set viewcolumns=-{name}..
4856
4857           results  in  that  ellipsis  are  added at the end of too long file
4858           names.
4859
4860         - none (default) - text can pass column boundaries
4861
4862             set viewcolumns=-{name}...,{ext}
4863
4864           results in that long file names can partially be written on the ext
4865           column.
4866

Color schemes

4868       The color schemes in vifm can be applied in two different ways:
4869
4870         - as the primary color scheme;
4871
4872         - as local to a pane color scheme.
4873
4874       Both types are set using :colorscheme command, but of different forms:
4875
4876         - :colorscheme color_scheme_name - for the primary color scheme;
4877
4878         - :colorscheme color_scheme_name directory - for local color schemes.
4879
4880       Look  of different parts of the TUI (Text User Interface) is determined
4881       in this way:
4882
4883         - Border,  TopLineSel,  TopLine,   CmdLine,   ErrorMsg,   StatusLine,
4884           JobLine,  SuggestBox and WildMenu are always determined by the pri‐
4885           mary color scheme;
4886
4887         - CurrLine, Selected, Directory, Link,  BrokenLink,  Socket,  Device,
4888           Executable, Fifo and Win are determined by primary color scheme and
4889           a set of local color schemes, which can be empty.
4890
4891       There might be a set of local color schemes because they are structured
4892       hierarchically  according to file system structure. For example, having
4893       the following piece of file system:
4894
4895         ~
4896         `-- bin
4897            |
4898            `-- my
4899
4900       Two color schemes:
4901
4902         # ~/.vifm/colors/for_bin
4903         highlight Win cterm=none ctermfg=white ctermbg=red
4904         highlight CurrLine cterm=none ctermfg=red ctermbg=black
4905
4906         # ~/.vifm/colors/for_bin_my
4907         highlight CurrLine cterm=none ctermfg=green ctermbg=black
4908
4909       And these three commands in the vifmrc file:
4910
4911         colorscheme Default
4912         colorscheme for_bin ~/bin
4913         colorscheme for_bin_my ~/bin/my
4914
4915       File list will look in the following way for each level:
4916
4917       - ~/ - Default color scheme
4918         black background
4919         cursor with blue background
4920
4921       - ~/bin/ - mix of Default and for_bin color schemes
4922         red background
4923         cursor with black background and red foreground
4924
4925       - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes
4926         red background
4927         cursor with black background and green foreground
4928

Trash directory

4930       vifm has support of trash directory, which is used as temporary storage
4931       for deleted files or files that were cut.  Using trash is controlled by
4932       the 'trash' option, and exact  path  to  the  trash  can  be  set  with
4933       'trashdir'  option.   Trash  directory in vifm differs from the system-
4934       wide one by default, because of possible incompatibilities  of  storing
4935       deleted   files  among  different  file  managers.   But  one  can  set
4936       'trashdir' to "~/.local/share/Trash" to use a "standard"  trash  direc‐
4937       tory.
4938
4939       There are two scenarios of using trash in vifm:
4940
4941         1. As  a  place  for  storing  files  that were cut by "d" and may be
4942            inserted to some other place in file system.
4943
4944         2. As a storage of files, that are deleted but not purged yet.
4945
4946       The first scenario uses deletion ("d") operations to put files to trash
4947       and  put  ("p") operations to restore files from trash directory.  Note
4948       that such operations move files to and from trash directory, which  can
4949       be  long  term  operations  in  case  of different partitions or remote
4950       drives mounted locally.
4951
4952       The second scenario uses deletion ("d") operations for moving files  to
4953       trash directory and :empty command-line command to purge all previously
4954       deleted files.
4955
4956       Deletion and put operations depend on registers,  which  can  point  to
4957       files  in trash directory.  Normally, there are no nonexistent files in
4958       registers, but vifm doesn't keep track  of  modifications  under  trash
4959       directory,  so one shouldn't expect value of registers to be absolutely
4960       correct if trash directory was modified not by operation that are meant
4961       for  it.  But this won't lead to any issues with operations, since they
4962       ignore nonexistent files.
4963

Client-Server

4965       vifm supports remote execution of command-line mode commands as well as
4966       remote  changing  of directories.  This is possible using --remote com‐
4967       mand-line argument.
4968
4969       To execute a command remotely combine --remote argument with  -c  <com‐
4970       mand> or +<command>.  For example:
4971
4972         vifm --remote -c 'cd /'
4973         vifm --remote '+cd /'
4974
4975       To  change directory not using command-line mode commands one can spec‐
4976       ify paths right after --remote argument, like this:
4977
4978         vifm --remote /
4979         vifm --remote ~
4980         vifm --remote /usr/bin /tmp
4981

Plugin

4983       Plugin for using vifm in vim as a file selector.
4984
4985       Commands:
4986
4987         :EditVifm   select a file or files to open in the current buffer.
4988         :SplitVifm  split buffer and select a file or files to open.
4989         :VsplitVifm vertically split buffer and select a  file  or  files  to
4990       open.
4991         :DiffVifm    select  a  file  or files to compare to the current file
4992       with
4993                     :vert diffsplit.
4994         :TabVifm    select a file or files to open in tabs.
4995
4996       Each command accepts up to two arguments: left pane directory and right
4997       pane  directory.   After arguments are checked, vifm process is spawned
4998       in a special "file-picker" mode.  To pick files just open  them  either
4999       by  pressing  l,  i  or Enter keys, or by running :edit command.  If no
5000       files are selected, file under the cursor is  opened,  otherwise  whole
5001       selection is passed to the plugin and opened in vim.
5002
5003       The  plugin  have  only  two  settings.   It's  a string variable named
5004       g:vifm_term to let user  specify  command  to  run  GUI  terminal.   By
5005       default  it's  equal  to 'xterm -e'.  And another string variable named
5006       g:vifm_exec, which equals "vifm"  by  default  and  specifies  path  to
5007       vifm's  executable.   To  pass  arguments to vifm use g:vifm_exec_args,
5008       which is empty by default.
5009
5010       To use the plugin copy the vifm.vim file  to  either  the  system  wide
5011       vim/plugin directory or into ~/.vim/plugin.
5012
5013       If  you would prefer not to use the plugin and it is in the system wide
5014       plugin directory add
5015
5016       let loaded_vifm=1
5017
5018       to your ~/.vimrc file.
5019

Reserved

5021       The following command names are reserved and shouldn't be used for user
5022       commands.
5023
5024         g[lobal]
5025         v[global]
5026

ENVIRONMENT

5028       VIFM   Points to main configuration directory (usually ~/.vifm/).
5029
5030       MYVIFMRC
5031              Points to main configuration file (usually ~/.vifm/vifmrc).
5032
5033       These  environment variables are valid inside vifm and also can be used
5034       to configure it by setting some of them before running vifm.
5035
5036       When $MYVIFMRC isn't set, it's made as $VIFM/vifmrc (exception for Win‐
5037       dows: vifmrc in the same directory as vifm.exe has higher priority than
5038       $VIFM/vifmrc).
5039
5040       See "Startup" section above for more details.
5041
5042       VIFM_FUSE_FILE
5043              On execution of external commands this variable is  set  to  the
5044              full  path  of  file  used  to initiate FUSE mount of the closes
5045              mount point from current pane directory up.  It's not  set  when
5046              outside  FUSE  mount  point.   When vifm is used inside terminal
5047              multiplexer, it tries to set this variable as well  (it  doesn't
5048              work this way on its own).
5049

SEE ALSO

5051       vifm-convert-dircolors(1), vifm-pause(1)
5052
5053       Website: https://vifm.info/
5054       Wiki: https://wiki.vifm.info/
5055
5056       Esperanto translation of the documentation by Sebastian Cyprych:
5057       http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html
5058

AUTHOR

5060       Vifm was written by ksteen <ksteen@users.sourceforge.net>
5061       And currently is developed by xaizek <xaizek@openmailbox.org>
5062
5063
5064
5065vifm 0.8.2                       July 16, 2016                         VIFM(1)
Impressum