vifm(1)                              Vifm                              vifm(1)



NAME
       vifm - vi file manager

SYNOPSIS
       vifm [OPTION]...
       vifm [OPTION]... LWIN_DIR
       vifm [OPTION]... LWIN_DIR RWIN_DIR

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

OPTIONS
       The  vifm executable will start vifm in the current directory unless it
       is given a different directory on the command line.

       <lwinpath>
              Starts Vifm in the specified path.

       <lwinpath> <rwinpath>
              Starts Vifm in the specified paths.

       Specifying two directories triggers split view even when  vifm  was  in
       single-view  mode  on finishing previous session.  To suppress this be‐
       haviour :only command can be put in the vifmrc file.

       When only one path argument is found on command-line, the left/top pane
       is automatically set as the current view.

       Paths  to  files  are  also allowed in case you want vifm to start with
       some archive opened.  If you want to select file, prepend its path with
       --select.

       -f     only  used  from  the  vifm.vim  script.  The selected files are
              written to $VIFM/vimfiles and vifm exits.

       --logging
              Log some errors to  $VIFM/log.   Also  /var/log/vifm-startup-log
              (on  *nix)  and  startup-log  in the directory of executable (on
              Windows) is used to  log  startup  process  (when  configuration
              directory isn't determined).

       --remote
              Sends the rest of command line to the active vifm server (one of
              already running instances if any).  When  there  is  no  server,
              quits  silently.  There is no limit on how many arguments can be
              processed.  One can combine --remote with -c <command> or +<com‐
              mand>  to  execute  command in already running instance of vifm.
              See also "Client-Server" section below.

       -c <command> or +<command>
              Run command-line mode <command> on startup.   Commands  in  such
              arguments are executed in the order they appear in command line.
              Commands with spaces or special symbols must be enclosed in dou‐
              ble  or  single  quotes or all special symbols should be escaped
              (the exact syntax strongly depends on shell).

       --help, -h
              Show an overview of the commandline options.

       --version, -v
              Show version information and quit.

       --no-configs
              Don't read vifmrc and vifminfo.


       See Startup section below for the explanations on $VIFM.

General keys
       Ctrl-C or Escape
              cancel most operations.

       Ctrl-C or Escape
              clear all selected files.

       Ctrl-L clear and redraw the screen.

Basic Movement
       The basic vi key bindings are used to move through the files and  popup
       windows.

       k, gk, or Ctrl-P
              moves cursor up one line.

       j, gj or Ctrl-N
              moves cursor down one line.

       h      when  'lsview'  is  off  moves up one directory, otherwise moves
              left one file.

       l      when 'lsview' is off moves into a directory or launches a  file,
              otherwise moves left one file.

       gg     move to the top of the file list.

       gh     moves up one directory.

       gl or Enter
              moves into a directory or launches a file.

       G      move to the bottom of the file list.

       H      move to the first file in the window.

       M      move to the file in the middle of the window.

       L      move to the last file in the window.

       Ctrl-F or Page Down
              move forward one page.

       Ctrl-B or Page Up
              move back one page.

       Ctrl-D jump back one half page.

       Ctrl-U jump forward one half page.

       n%     move to the file that is n percent from the top of the list (for
              example 25%).

       0 or ^ move cursor to the first column.  See 'lsview'  option  descrip‐
              tion.

       $      move  cursor  to  the last column.  See 'lsview' option descrip‐
              tion.

       Space Bar
              toggles between the two file lists.

Movement with Count
       Most movement commands also accept a count,  12j  would  move  down  12
       files.

       [count]%
              move to percent of the file list.

       [count]j
              move down count files.

       [count]k
              move up count files.

       [count]G or [count]gg
              move to list position count.

Scrolling panes
       zt     redraw pane with file in top of list.

       zz     redraw pane with file in center of list.

       zb     redraw pane with file in bottom of list.

       Ctrl-E scroll pane one line down.

       Ctrl-Y scroll pane one line up.

Pane manipulation
       Second character can be entered with or without Control key.

       Ctrl-W H
              move the pane to the far left.

       Ctrl-W J
              move the pane to the very bottom.

       Ctrl-W K
              move the pane to the very top.

       Ctrl-W L
              move the pane to the far right.

       Ctrl-W b
              switch to bottom-right window.

       Ctrl-W h
              switch to the left pane.

       Ctrl-W j
              switch to the pane below.

       Ctrl-W k
              switch to the pane above.

       Ctrl-W l
              switch to the right pane.

       Ctrl-W o
              shortcut for :only

       Ctrl-W p
              switch to previous window.

       Ctrl-W s
              shortcut for :split

       Ctrl-W t
              switch to top-left window.

       Ctrl-W v
              shortcut for :vsplit

       Ctrl-W w
              switch to other pane.

       Ctrl-W x
              exchange panes.

       [count1]Ctrl-W[count2]+
              increase size of the view by count1*count2.

       [count1]Ctrl-W[count2]-
              decrease size of the view by count1*count2..

       [count1]Ctrl-W[count2]<
              increase size of the view by count1*count2..

       [count1]Ctrl-W[count2]>
              decrease size of the view by count1*count2..

       Ctrl-W |
              maximize current view.

       Ctrl-W _
              maximize current view.

       Ctrl-W =
              make size of two views equal.

Marks
       Marks are set the same way as they are in vi.

       You can use this characters for marks [a-z][A-Z][0-9].

       m[a-z][A-Z][0-9]
              to set a mark for the current file.

       '[a-z][A-Z][0-9]
              moves to the file set for the mark.

Searching
       /regular expression pattern[Return]
              will highlight all files matching the pattern and go to the next
              match.

       ?regular expression pattern[Return]
              will highlight all files matching the pattern and go to the pre‐
              vious match.

       [count]n
              find the next match of / or ?.

       [count]N
              find the previous match of / or ?.

       If  'hlsearch'  option  is set, hitting n/N to perform search and go to
       the first matching item resets current selection in normal mode.  It is
       not the case if search was already performed on files in the directory,
       thus selection is not reset after clearing selection  with  escape  key
       and hitting n/N key again.

       [count]f[character]
              search  forward  for file with [character] as first character in
              name.  Search wraps around the end of the list.

       [count]F[character]
              search backward for file with [character] as first character  in
              name.  Search wraps around the end of the list.

       [count];
              find the next match of f or F.

       [count],
              find the previous match of f or F.

       Note:  f,  F,  ; and , wrap around list beginning and end when they are
       used alone and they don't wrap when they are used as selectors.

File Filters
       There are three basic file filters:

       - dot files filter (excluding "." and ".." special  directories,  which
         appearance is controlled by the 'dotdirs' option)

       - manual filter for file names

       - automatic filter for file names

       - local  filter  for file names (see description of the "=" normal mode
         command)

       Performing operations on manual filter  for  file  names  automatically
       does  the  same  on  automatic  one.  The file name filter is separated
       mainly for convenience purpose and to get more deterministic behaviour.

       The basic vim folding key bindings are used for filtering files.

       Each file list has its own copy of each filter.

       Filtered files are not checked in / search or :commands.

       Files and directories are filtered separately.  For  this  a  slash  is
       appended to a directory name before testing whether it matches the fil‐
       ter.  Examples:

         " filter directories which names end with '.files'
         :filter /^.*\.files\/$/

         " filter files which names end with '.d'
         :filter /^.*\.d$/

         " filter files and directories which names end with '.o'
         :filter /^.*\.o\/?$/

       zo     Show all of the dot files.

       zf     Filter all of the selected files.

       za     Toggle the showing and hiding of dot files.

       zm     Filter all of the dot files.

       zO     Show the files filtered out by filename filter.

       zM     Filter the files matching the filename filter.

       zR     Remove all filters.

       =regular expression pattern[Return]
              filter out files that don't match regular expression.  This kind
              of filter is automatically reset when directory is changed.

Other Normal Mode Keys
       [count]:
              enter command line mode.  Count will add range.

       q:     open  external  editor  to prompt for command-line command.  See
              "Command line editing" section for details.

       q/     open external editor to prompt for search pattern to be searched
              in  forward  direction.   See "Command line editing" section for
              details.

       q?     open external editor to prompt for search pattern to be searched
              in  backward  direction.  See "Command line editing" section for
              details.

       q=     open external editor to prompt for filter pattern.  See "Command
              line  editing"  section for details.  Unlike other q{x} commands
              this one doesn't work in Visual mode.

       [count]!! and [count]!<selector>
              enter command line mode with entered ! command.  Count will mod‐
              ify range.

       Ctrl-O go backward through history.

       Ctrl-I if  'cpoptions' contains "t" flag, <tab> and <c-i> switch active
              pane just like <space> does, otherwise it goes  forward  through
              directory history of the current view.

       Ctrl-G creates  a window showing detailed information about the current
              file.

       Shift-Tab
              enters view mode (works only after  activating  view  pane  with
              :view command).

       ga     calculate directory size.

       gA     like ga, but force update.

       gf     find  link  destination (like l with 'followlinks' off, but also
              finds directories).

       gr     only for MS-Windows
              same as l key, but tries  to  run  program  with  administrative
              privileges.

       gv     go to visual mode restoring last selection.

       gs     restore last t selection, like gv for visual mode selection.

       gu<selector>
              make names of selected files lowercase.

       [count]guu and [count]gugu
              make names of [count] files starting from the current one lower‐
              case.  Without [count] only current file is affected.

       gU<selector>
              make names of selected files uppercase.

       [count]gUU and [count]gUgU
              make names of [count] files starting from the current one upper‐
              case.  Without [count] only current file is affected.

       e      explore file in the current pane.

       i      opens file with associated program even if it's an executable.

       cw     rename a file or files.

       cW     change only name of file (without extension).

       cl     change link target.

       co     only for *nix
              change file owner.

       cg     only for *nix
              change file group.

       cp     change  file  attributes  (permission  on *nix and properties on
              Windows).

       [count]C
              clone file [count] times.

       [count]dd or d[count]selector
              moves the selected files to trash directory (if  'trash'  option
              is set, otherwise delete).  See "Trash directory" section below.

       [count]DD or D[count]selector
              removes the selected files.

       Y, [count]yy or y[count]selector
              yanks the selected files.

       Y      same as yy.

       p      will  copy the yanked files to the current directory or move the
              files to the current directory if they were deleted with  dd  or
              :d[elete] or if the files were yanked from trash directory.  See
              "Trash directory" section below.

       P      moves the last yanked files.  The advantage of using  P  instead
              of  d followed by p is that P moves files only once.  This isn't
              important in case you're moving files in the  same  file  system
              where  your home directory is, but using P to move files on some
              other file system (or file systems, in case  you  want  to  move
              files  from  fs1  to  fs2 and your home is on fs3) can save your
              time.

       al     puts symbolic links with absolute paths.

       rl     puts symbolic links with relative paths.

       t      select or unselect (tag) the current file.

       u      undo last change.

       Ctrl-R redo last change.

       v      enter visual mode.

       V      enter visual mode.

       [count]Ctrl-A
              increment first number in file name by count (1 by default).

       [count]Ctrl-X
              decrement first number in file name by count (1 by default).

       ZQ     same as :quit!

       ZZ     same as :quit

       .      repeat last command line command (not normal  mode  command)  of
              this  session (does nothing right after startup or :restart com‐
              mand).  The command doesn't depend on command-line  history  and
              can be used with completely disabled history.

       (      goto previous group.  Groups are defined by primary sorting key.
              For name and iname members of each group have same first letter,
              for all other sorting keys vifm uses size, uid, ...

       )      goto next group.  See ( key description above.

Using Count
       You can use count with commands like yy.

       [count]yy
              yank count files starting from current cursor position downward.

       Or you can use count with motions passed to y, d or D.

       d[count]j
              delete  (count  + 1) files starting from current cursor position
              upward.

Registers
       vifm supports multiple registers for temporary storing list  of  yanked
       or deleted files.

       Registers should be specified with hitting double quite key followed by
       a register name.  Count is specified after register name.   By  default
       commands use unnamed register, which has double quote as its name.

       Though  all  commands  accept  registers, most of commands ignores them
       (for example H or Ctrl-U).  Other commands can fill register or  append
       new files to it.

       Presently vifm supports ", _, a-z and A-Z characters as register names.

       As mentioned above " is unnamed register and has special meaning of the
       default register.  Every time when you use named registers (a-z and  A-
       Z)  unnamed  register  is  updated to contain same list of files as the
       last used register.

       _ is black hole register.  It can be used for writing, but its list  is
       always empty.

       Registers with names from a to z  and from A to Z are named ones.  Low‐
       ercase registers are cleared before adding new files,  while  uppercase
       aren't and should be used to append new files to the existing file list
       of appropriate lowercase register (A for a, B for b, ...).

       Registers can be changed on :empty command if they contain files  under
       trash directory (see "Trash directory" section below).

       Registers do not contain one file more than once.

       Example:

         "a2yy

       will  put  names  of two files to register a (and to the unnamed regis‐
       ter),

         "Ad

       will remove one file and append its name to  register  a  (and  to  the
       unnamed register),

         p or "ap or "Ap

       will insert previously yanked and deleted files into current directory.

Selectors
       y,  d, D, !, gu and gU commands accept selectors.  You can combine them
       with any of selectors below to quickly remove or yank several files.

       Most of selectors are like vi motions: j, k, gg, G, H, L, M, %,  f,  F,
       ;, comma, ', ^, 0 and $.  But there are some additional ones.

       a      all files in current view.

       s      selected files.

       S      all files except selected.

       Examples:
        dj - delete file under cursor and one below.
        d2j - delete file under cursor and two below.
        y6gg - yank all files from cursor position to 6th file in the list.

       When you pass a count to whole command and its selector they are multi‐
       plied. So:
        2d2j - delete file under cursor and four below.
        2dj - delete file under cursor and two below.
        2y6gg - yank all files from cursor position to 12th file in the list.

Visual Mode
       In visual mode work almost all normal mode keys, but they do not accept
       selectors.

       Enter  save selection and go back to normal mode.

       gv     restore previous visual selection.

       v      leave visual mode.

       V      leave visual mode.

       :      enter  command  line  mode.  When you leave it selection will be
              cleared.

       o      switch active selection bound.

       O      switch active selection bound.

       gu, u  make names of selected files lowercase.

       gU, U  make names of selected files uppercase.

View Mode
       This mode tries to imitate the less program.  List of builtin shortcuts
       can be found below.  Shortcuts can be customized using :qmap, :qnoremap
       and :qunmap command-line commands.

       Shift-Tab, Tab, q, Q, ZZ
              go back to normal mode.

       [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter
              forward one line (or [count] lines).

       [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P
              backward one line (or [count] lines).

       [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space Bar
              forward one window (or [count] lines).

       [count]b, [count]Ctrl-B, [count]Alt-V
              backward one window (or [count] lines).

       [count]z
              forward one window (and set window to [count]).

       [count]w
              backward one window (and set window to [count]).

       [count]Alt-Space
              forward one window, but don't stop at end-of-file.

       [count]d, [count]Ctrl-D
              forward one half-window (and set half-window to [count]).

       [count]u, [count]Ctrl-U
              backward one half-window (and set half-window to [count]).

       r, Ctrl-R, Ctrl-L
              repaint screen.

       R      reload view preserving scroll position.

       [count]/pattern
              search forward for ([count]‐th) matching line.

       [count]?pattern
              search backward for ([count]‐th) matching line.

       [count]n
              repeat previous search (for [count]‐th occurrence).

       [count]N
              repeat previous search in reverse direction.

       [count]g, [count]<, [count]Alt-<
              go to first line in file (or line [count]).

       [count]G, [count]>, [count]Alt->
              go to last line in file (or line [count]).

       [count]p, [count]%
              go to beginning of file (or N percent into file).

       v      edit the current file with vim.


       Ctrl-W H
              move the pane to the far left.

       Ctrl-W J
              move the pane to the very bottom.

       Ctrl-W K
              move the pane to the very top.

       Ctrl-W L
              move the pane to the far right.


       Ctrl-W h
              switch to left pane.

       Ctrl-W j
              switch to pane below.

       Ctrl-W k
              switch to pane above.

       Ctrl-W l
              switch to right pane.


       Ctrl-W b
              switch to bottom-right window.

       Ctrl-W t
              switch to top-left window.


       Ctrl-W p
              switch to previous window.

       Ctrl-W w
              switch to other pane.


       Ctrl-W o
              leave only one pane.

       Ctrl-W s
              split window horizontally.

       Ctrl-W v
              split window vertically.


       Ctrl-W x
              exchange panes.


       Ctrl-W +
              increase size of the view.

       Ctrl-W -
              decrease size of the view.

       Ctrl-W <
              increase size of the view.

       Ctrl-W >
              decrease size of the view.

       Ctrl-W |
              maximize current view.

       Ctrl-W _
              maximize current view.

       Ctrl-W =
              make size of two views equal.


       In general, all "Ctrl-W x" keys above work the same was  as  in  Normal
       mode.   Active  mode  is automatically changed on navigating among win‐
       dows.  When less-like mode activated on file preview is left using  one
       by  "Ctrl-W  x"  keys, its state is stored until another file is showed
       using preview (it's possible to leave the mode, hide preview  pane,  do
       something  else,  then get back to the file and show preview pane again
       with previously stored state in it).

Command line Mode
       This keys apply to all submodes of  the  command  line  mode:  command,
       prompt and search.

       Down,  Up, Left, Right, Home, End and Delete are extended keys and they
       are not available if  vifm  is  compiled  with  --disable-extended-keys
       option.

       Esc, Ctrl-C
              leave  command  line  mode,  cancels  input.  Cancelled input is
              saved into appropriate history and can be recalled later.

       Ctrl-M, Enter
              execute command and leave command line mode.

       Ctrl-I, Tab
              complete command or its argument.

       Shift-Tab
              complete in reverse order.

       Ctrl-_ stop completion and return original input.

       Ctrl-K remove characters from cursor position till the end of line.

       Ctrl-U remove characters from cursor position  till  the  beginning  of
              line.

       Ctrl-H, Backspace
              remove character before the cursor.

       Ctrl-D, Delete
              remove character under the cursor.

       Ctrl-B, Left
              move cursor to the left.

       Ctrl-F, Right
              move cursor to the right.

       Ctrl-A, Home
              go to line beginning.

       Ctrl-E, End
              go to line end

       Alt-B  go to the beginning of previous word.

       Alt-F  go to the end of next word.

       Ctrl-W remove  characters  from  cursor  position till the beginning of
              previous word.

       Alt-D  remove characters from cursor position  till  the  beginning  of
              next word.

       Ctrl-T swap the order of current and previous character and move cursor
              forward or, if cursor past the end of line, swap  the  order  of
              two last characters in the line.

       Alt-.  insert last part of previous command to current cursor position.
              Each next call will insert last part of older command.

       Ctrl-G edit command-line content in external editor.  See "Command line
              editing" section for details.

       Ctrl-N recall more recent command-line from history.

       Ctrl-P recall older command-line from history.

       Up     recall more recent command-line from history, that begins as the
              current command-line.

       Down   recall older command-line from history, that begins as the  cur‐
              rent command-line.

Command line editing
       vifm provides a facility to edit several kinds of data, that is usually
       edited in command-line mode, in external editor (using  command  speci‐
       fied  by ´vicmd' or 'vixcmd' option).  This has at least two advantages
       over built-in command-line mode:
        - one can use full power of Vim to edit text;
        - finding and reusing history entries becomes possible.

       The facility is supported by four input submodes of the command-line:
        - command;
        - forward search;
        - backward search;
        - file rename (see description of cw and cW normal mode keys).

       Editing command-line using external editor is activated by the c_CTRL-G
       shortcut.   It's  also  possible  to do almost the same from Normal and
       Visual modes using q:, q/ and q? commands.

       Temporary file created for the purpose of editing the line has the fol‐
       lowing structure:

       1.  First  line, which is either empty or contains text already entered
           in command-line.

       2.  2nd and all other lines with history items starting with  the  most
           recent  one.   Altering  this lines in any way won't change history
           items stored by vifm.

       After editing application is finished the first line  of  the  file  is
       taken  as  the  result  of operation, when the application returns zero
       exit code.  If the application returns an error (see :cquit command  in
       Vim), all the edits made to the file are ignored, but the initial value
       of the first line is saved in appropriate history.

Commands
       Commands are executed with :command_name<Return>

       Commented out lines should start with the double  quote  symbol,  which
       may be preceded by whitespace characters.

       ´|' can be used to separate commands, so you can give multiple commands
       in one line.  If you want to use '|' in an argument,  precede  it  with
       '\'.

       These  commands  see  '|'  as  part  of  their arguments even when it's
       escaped:

           :[range]!
           :cmap
           :cnoremap
           :command
           :filetype
           :fileviewer
           :filextype
           :map
           :mmap
           :mnoremap
           :nmap
           :nnoremap
           :noremap
           :normal
           :qmap
           :qnoremap
           :vmap
           :vnoremap
           :windo
           :winrun

       To be able to use another command after one of these, wrap it with  the
       :execute command.  An example:
           if filetype('.') == 'reg' | execute '!!echo regular file' | endif

       :[count]

       :number
              move to the file number.
              :12 would move to the 12th file in the list.
              :0 move to the top of the list.
              :$ move to the bottom of the list.

       :[count]command
              The   only  builtin  :[count]command  are  :[count]d[elete]  and
              :[count]y[ank].

       :d3    would delete three files starting at the current  file  position
              moving down.

       :3d    would delete one file at the third line in the list.

       :command [args]

       :[range]!program
              will execute the program in a shell

       :[range]!command &

       will run the process in the background using vifm's means.

       Programs  that  write  to  stdout  like ls will create an error message
       showing partial output of the command.

       Take note of the space before ampersand symbol, if you omit it, command
       will be run in the background using job control of your shell.

       Accepts macros.

       :[range]!! <program>
              is  the same as :! but will pause the screen before returning to
              Vifm.

       :!!    will execute the last command.

       :[range]alink[!?]
              creates absolute symbolic links of files in directory  of  other
              view.   With  "?"   vifm  will  open  vi to edit filenames.  "!"
              forces overwrite.

       :[range]alink[!] path
              creates absolute symbolic links of files in directory  specified
              with the path (absolute or relative to directory of other view).
              "!" forces overwrite.

       :[range]alink[!] name1 name2...
              creates absolute symbolic links of files in directory  of  other
              view  giving  each next link a corresponding name from the argu‐
              ment list.  "!" forces overwrite.

       :apropos manpage
              will create a menu of items returned  by  the  apropos  command.
              Selecting  an  item in the menu will open the corresponding man‐
              page.  By default the command relies on the  external  "apropos"
              utility, which can be customized by altering value of the 'apro‐
              posprg' option.

       :apropos
              repeats last :apropos command.

       :cd or :cd ~ or :cd $HOME
              change to your home directory.

       :cd -  go to previous directory.

       :cd ~/dir
              change directory to ~/dir.

       :cd /curr/dir /other/dir
              change directory of the current pane to /curr/dir and  directory
              of the other pane to /other/dir.  When using relative paths vifm
              assumes that both of them are relative to current  directory  of
              current  view.   Command  will not fail if one of directories is
              invalid.  Accepts macros.

       :cd! /dir
              same as :cd /dir /dir.

       :c[hange]
              create a menu window to alter a files properties.

       :[range]chmod
              shows file attributes (permission on *nix and properties on Win‐
              dows) change dialog.

       :[range]chmod[!] arg...
              only for *nix
              changes  permissions for files.  See 'man chmod' for arg format.
              "!" means set permissions recursively.

       :[range]chown
              only for *nix
              same as co key in normal mode.

       :[range]chown [user][:][group]
              only for *nix
              changes owner and/or group of files.   Operates  on  directories
              recursively.

       :[range]clone[!?]
              clones  files  in current directory.  With "?" vifm will open vi
              to edit filenames.  "!" forces overwrite.  Macros are expanded.

       :[range]clone[!] path
              clones files to directory specified with the path  (absolute  or
              relative  to  current directory).  "!" forces overwrite.  Macros
              are expanded.

       :[range]clone[!] name1 name2...
              clones files in current directory giving each next clone a  cor‐
              responding  name  from the argument list.  "!" forces overwrite.
              Macros are expanded.

       :colo[rscheme]?
              prints current color scheme name in the status bar.

       :colo[rscheme]
              gives a menu with a list of available color  schemes.   You  can
              choose  default  color scheme here.  It will be used for view if
              no DIRECTORY in colorscheme file fits current path.   It's  also
              used  to set border color (except view titles) and colors in the
              menus and dialogs.

       :colo[rscheme] color_scheme_name
              changes default color scheme to color_scheme_name.

       :colo[rscheme] color_scheme_name directory
              associates directory with the color scheme.  The directory argu‐
              ment  can  be  both  absolute or relative path when :colorscheme
              command is executed from command line, but mandatory  should  be
              an  absolute path when the command is executed in scripts loaded
              at startup (until vifm is completely loaded).

       :comc[lear]
              removes all user defined commands.

       :com[mand]
              gives a menu of user commands.

       :com[mand] beginning
              shows user defined commands that start with the beginning.

       :com[mand] name action
              sets a new user command.
              Trying to use a reserved command name will result  in  an  error
              message.
              Use :com[mand]! to overwrite a previously set command.
              Unlike  vim  user  commands  do not have to start with a capital
              letter.  User commands are run in a shell by default.  To run  a
              command  in  the background you must set it as a background com‐
              mand with & at the end of the commands action (:com rm rm %f &).
              Command  name  cannot contain numbers or special symbols (except
              '?' and '!').

       :com[mand] name /pattern
              will set search pattern.

       :com[mand] name filter pattern
              will set file name filter.

       :com[mand] cmd :commands
              will set kind of alias for internal command (like in  a  shell).
              Will pass range given to alias to an aliased command, so running
              :%cp after
                :command cp :copy %a
              equals
                :%copy

       :[range]co[py][!?][ &]
              copies files to directory of other view.   With  "?"  vifm  will
              open vi to edit filenames.  "!" forces overwrite.

       :[range]co[py][!] path[ &]
              copies  files  to directory specified with the path (absolute or
              relative to directory of other view).  "!" forces overwrite.

       :[range]co[py][!] name1 name2...[ &]
              copies files to directory of other view giving each next file  a
              corresponding  name  from  the  argument list.  "!" forces over‐
              write.

       :[range]d[elete][!][ &]
              delete selected file or  files.   "!"  means  completely  remove
              file.

       :[range]d[elete][!] [reg] [count][ &]
              will  delete  files  to  the reg register.  "!" means completely
              remove file.

       :delc[ommand] command_name
              will remove the command_name user command.

       :delm[arks]!
              will delete all marks.

       :delm[arks] marks ...
              will delete specified marks, each argument is treated as  a  set
              of marks.

       :di[splay]
              popup menu with registers content.

       :di[splay] list ...
              display  the  contents  of the numbered and named registers that
              are mentioned in list (for example "az to display "", "a and  "z
              content).

       :dirs  display directory stack.

       :ec[ho] [<expr>...]
              evaluates  each argument as an expression and outputs them sepa‐
              rated by a space.  See help on :let command for a definition  of
              <expr>.

       :[range]e[dit] [file...]
              will load the selected or passed file or files into vi.  Accepts
              macros.

       :el[se]
              executes commands until next matching :endif if they  previously
              were  not  being executed.  See also help on :if and :endif com‐
              mands.

       :empty will permanently remove 'rm -fr' files from trash directory.  It
              will also remove all operations from undolist that have no sense
              after :empty and remove all records about files in trash  direc‐
              tory from all registers.  See "Trash directory" section below.

       :en[dif]
              ends  conditional  block.   See  also help on :if and :else com‐
              mands.

       :exe[cute] [<expr>...]
              evaluates each argument as an expression and joins results sepa‐
              rated  by a space to get a single string, which is then executed
              as a command-line command.  See help on :let command for a defi‐
              nition of <expr>.

       :exi[t][!]
              same as :quit.

       :f[ile]
              popup  menu  of  programs  set  for the file type of the current
              file. Add ' &' at the end of command to  run  program  in  back‐
              ground.

       :f[ile] arg
              run  associated command that begins with the arg without opening
              menu.

       :filet[ype] pat1,pat2,... [{descr}]def_prog[ &],[{descr}]prog2[ &],...
              will associate given program  list  to  each  of  the  patterns.
              Associated  program (command) is used by handlers of l and Enter
              keys (and also in the :file menu).  If you need to insert  comma
              into command just double it (",,").  Space followed by an amper‐
              sand as two last characters of a command means  running  of  the
              command in the background.  Optional description can be given to
              each command to ease understanding of what command  will  do  in
              the  :file  menu.  Vifm will try the rest of the programs for an
              association when the default isn't found.   When  program  entry
              doesn't  contain  any  of  vifm  macros, name of current file is
              appended as if program entry ended with %c  macro.   On  Windows
              path  to  executables  containing  spaces can (and should be for
              correct work with such paths) be  double  quoted.   See  "Globs"
              section  below for pattern definition.  See also "Automatic FUSE
              mounts" section below.  Example for  zip  archives  and  several
              actions:

               filetype *.zip,*.jar,*.war,*.ear
                      \ {Mount with fuse-zip}
                      \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
                      \ {View contents}
                      \ zip -sf %c | less,
                      \ {Extract here}
                      \ tar -xf %c,

       :filex[type] pat1,pat2,... [{ description }] def_program,program2,...
              same as :filetype, but vifm will ignore this command if it's not running in X.
              In X :filextype is equal to :filetype.  See "Globs" section below for pattern
              definition.  See also "Automatic FUSE mounts" section below.

       :filev[iewer] pat1,pat2,... command
              will associate given command as a viewer to each of the patterns.  Viewer is a
              command which output is captured and showed in the second pane of vifm after
              running :view command.  When the command doesn't contain any of vifm macros,
              name of current file is appended as if command ended with %c macro.  See
              "Globs" section below for pattern definition.  Example for zip archives:

               fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c

       :filter[!] regular_expression_pattern
              :filter[!] /regular_expression_pattern/
              will filter all the files out of the directory listing that match the regular
              expression.  Using second variant you can use the bar ('|') symbol without
              escaping.  Empty regular expression (specified by //, "" or '') means using of
              the last search pattern.  Use '!' to control state of filter inversion after
              updating filter value (also see 'cpoptions' description).  Filter is matched
              case sensitively on *nix and case insensitively on Windows.
              :filter /.o$ would filter all files ending in .o from the filelist.
              Note: vifm uses extended regular expressions.

       :filter
              reset filter (set it to empty string) and show all files.

       :filter!
              same as :invert.

       :filter?
              show current value of name and auto filters.

       :[range]fin[d] pattern
              will show results of find command in the menu.  Searches among selected files if
              any.  Accepts macros.  By default the command relies on the external "find"
              utility, which can be customized by altering value of the 'findprg' option.

       :[range]fin[d] -opt...
              same as :find above, but user defines all find arguments.  Searches among
              selected files if any.

       :[range]fin[d] path -opt...
              same as :find above, but user defines all find arguments.  Ignores selection and
              range.

       :[range]fin[d]
              repeats last :find command.

       :fini[sh]
              Stop sourcing a script. Can only be used in a vifm script file. This is a quick
              way to skip the rest of the file.

       :[range]gr[ep][!] pattern
              will show results of grep command in the menu.  Add "!" to request inversion of
              search (look for lines that do not match pattern).  Searches among selected
              files if any and no range given.  Ignores binary files by default.  By default
              the command relies on the external "grep" utility, which can be customized by
              altering value of the 'grepprg' option.

       :[range]gr[ep][!] -opt...
              same as :grep above, but user defines all find arguments, which are not escaped.
              Searches among selected files if any.

       :[range]gr[ep][!]
              repeats last :grep command.  "!" of this command inverts "!" in repeated
              command.

       :h[elp]
              show the help file.

       :h[elp] argument
              is the same as using ':h argument' in vim.  Use vifm-<something> to get help
              on vifm (tab completion works).  This form of the command doesn't work when
              ´vimhelp' option is off.

       :hi[ghlight]
              will show information about all highlight groups in the current directory.

       :hi[ghlight] group-name
              will show information on given highlight group of the default color scheme.

       :hi[ghlight] group-name cterm=style | ctermfg=color | ctermbg=color
              sets style (cterm), foreground (ctermfg) or/and background (ctermbg) parameters
              of highlight groups of the current default color scheme.

       Available style values (some of them can be combined):
        - bold
        - underline
        - reverse or inverse
        - standout
        - none

       Available group-name values:
        - Win - color of all windows (views, dialogs, menus)
        - Border - color of vertical parts of the border
        - TopLineSel - top line color of the current pane
        - TopLine - top line color of the other pane
        - CmdLine - the command line/status bar color
        - ErrorMsg - color of error messages in the status bar
        - StatusLine - color of the line above the status bar
        - WildMenu - color of the wild menu items
        - CurrLine - line at cursor position in the view
        - Selected - color of selected files
        - Directory - color of directories
        - Link - color of symbolic links in the views
        - BrokenLink - color of broken symbolic links
        - Socket - color of sockets
        - Device - color of block and character devices
        - Executable - color of executable files
        - Fifo - color of fifo pipes

       Available colors:
        - -1 or default or none - default or transparent
        - black
        - red
        - green
        - yellow
        - blue
        - magenta
        - cyan
        - white

       Light versions of colors are regular colors with bold attribute set.  So order
       of arguments of :highlight command is important and it's better to put "cterm"
       in front of others to prevent it from overwriting attributes set by "ctermfg" or
       "ctermbg" arguments.

       Since there are two colors and only one bold attribute it affects both colors
       when "reverse" attribute is used when running vifm in terminal emulator.  While
       linux native console can handle boldness of foreground and background colors
       independently, which is for consistency with terminal emulators accessible from
       vifm only implicitly by using light versions of colors.

       Here is the hierarchy of highlight groups, which you need to know for using
       transparency:
         StatusLine
           WildMenu
         Border
         CmdLine
           ErrorMsg
         Win
           Directory
           Link
           BrokenLink
           Socket
           Device
           Fifo
           Executable
             Selected
               CurrLine
         TopLine
           TopLineSel

       "none" means default terminal color for highlight groups at the first level of
       the hierarchy and transparency for all others.

       :his[tory]
              creates a popup menu of directories visited.

       :his[tory] x
              x can be:
              d[ir]     or . show directory history.
              c[md]     or : show command line history.
              s[earch]  or / show search history and search forward on l key.
              f[search] or / show search history and search forward on l key.
              b[search] or ? show search history and search backward on l key.
              i[nput]   or @ show prompt history (e.g. on one file renaming).
              fi[lter]  or = show filter history (see description of the "=" normal mode command).

       :if {expr1}
              starts conditional block.  Commands are executed until next matching :else of
              :endif command if {expr1} evaluates to non-zero, otherwise they are ignored.
              See also help on :else and :endif commands.

       :invert [f]
              invert file name filter.

       :invert? [f]
              show current filter state.

       :invert s
              invert selection.

       :invert o
              invert sorting order of the primary sorting key.

       :invert? o
              show sorting order of the primary sorting key.

       :jobs  shows menu of current backgrounded processes.

       :let $ENV_VAR = <expr>
              sets environment variable.  Warning: setting environment variable to an empty
              string on Windows removes it.

       :let $ENV_VAR .= <expr>
              append value to environment variable.

       Where <expr> could be a single-quoted string, double-quoted string, an environment variable, function call or a concatanation of any of them in any order using the '.' operator.  Any whitespace is ignored.

       :locate filename
              uses the locate command to create a menu of filenames
              Selecting a file from the menu will reload the current file list in vifm
              to show the selected file.  By default the command relies on the external
              "locate" utility (it's assumed that its database is already built), which can be
              customized by altering value of the 'locateprg' option.

       :locate
              repeats last :locate command.

       :[range]ma[rk][?] x [/full/path] [filename]
              Set mark x (a-zA-Z0-9) at /full/path and filename.  By default current directory
              is being used.  If no filename was given and /full/path is current directory
              then last file in [range] is used.  Using of macros is allowed.  Question mark
              will stop command from overwriting existing marks.

       :marks create a popup menu of bookmarks.

       :marks list ...
              display the contents of the marks that are mentioned in list.

       :mes[sages]
              shows previously given messages (up to 50).

       :mkdir[!] dir ...
              creates directories with given names.  "!" means make parent directories as
              needed.  Macros are expanded.

       :[range]m[ove][!?][ &]
              moves files to directory of other view.  With "?" vifm will open vi to edit
              filenames.  "!" forces overwrite.

       :[range]m[ove][!] path[ &]
              moves files to directory specified with the path (absolute or relative to
              directory of other view).  "!" forces overwrite.

       :[range]m[ove][!] name1 name2...[ &]
              moves files to directory of other view giving each next file a corresponding
              name from the argument list.  "!" forces overwrite.

       :noh[lsearch]
              clear selection in current pane.

       :norm[al][!] commands
              executes normal mode commands.  If "!" is used, mappings will not be used.  If
              the last command is unfinished it will be aborted as if <esc> or <c-c> was
              typed.  A ":" should be completed as well.  Commands can't start with a space,
              so put a count of 1 (one) before it.

       :on[ly]
              changes the window to show only the current file directory.

       :popd  remove pane directories from stack.

       :pushd[!] /curr/dir [/other/dir]
              add pane directories to stack and process arguments like :cd command.

       :pushd exchanges the top two items of the directory stack.

       :pw[d] show the present working directory.

       :q[uit][!]
              will exit vifm (add ! if you don't want to save changes or check if there are
              any of backgrounded commands still running).

       :[range]y[ank] [reg] [count]
              will yank files to the reg register.

       :ls    lists windows of active terminal multiplexer (only when terminal multiplexer is
              used).  This is achieved by issuing proper command for active terminal
              multiplexer, thus the list is not handled by vifm.

       :reg[isters]
              popup menu with registers content.

       :reg[isters] list ...
              display the contents of the numbered and named registers that are mentioned in
              list (for example "az to display "", "a and "z content).

       :[range]rename[!]
              rename files using vi to edit names. ! means go recursively through directories.

       :[range]rename name1 name2...
              rename each of selected files to a corresponding name.

       :restart
              will free a lot of things (histories, commands, etc.), reread vifminfo and
              vifmrc files and run startup commands passed in the argument list, thus losing
              all unsaved changes (e.g. recent history or keys mapped in current session).

       :[range]restore
              will restore file from trash directory, doesn't work in any other directory.
              See "Trash directory" section below.

       :[range]rlink[!?]
              creates relative symbolic links of files in directory of other view.  With "?"
              vifm will open vi to edit filenames.  "!" forces overwrite.

       :[range]rlink[!] path
              creates relative symbolic links of files in directory specified with the path
              (absolute or relative to directory of other view).  "!" forces overwrite.

       :[range]rlink[!] name1 name2...
              creates relative symbolic links of files in directory of other view giving each
              next link a corresponding name from the argument list.  "!" forces overwrite.

       :screen
              toggles whether to use the terminal multiplexer or not.
              A terminal multiplexer uses pseudo terminals to allow multiple windows to be
              used in the console or in a single xterm.  Starting vifm from terminal
              multiplexer with appropriate support turned on will cause vifm to open a new
              terminal multiplexer window for each new file edited or program launched from
              vifm.
              This requires screen version 3.9.9 or newer for the screen -X argument or tmux
              (version or newer 1.8 is recommented).

       :screen?
              shows whether integration with terminal multiplexers is enabled.

       Note: the command is called screen for historical reasons (when tmux wasn't yet
       supported) and might be changed in future releases, or get an alias.

       :se[t] shows all options that differ from their default value.

       :se[t] all
              shows all options.

       :se[t] opt1=val1 opt2='val2' opt3="val3" ...
              will set options to given values.
              You can use following syntax:
               - for all options - option, option? and option&
               - for boolean options - nooption, invoption and option!
               - for integer options - option=x, option+=x and option-=x
               - for string options - option=x
               - for string list options - option=x, option+=x and option-=x
               - for enumeration options - option=x, option+=x and option-=x
               - for enumeration options - option=x
               - for set options - option=x, option+=x and option-=x
               - for charset options - option=x, option+=x and option-=x

              the meaning:
               - option - turn option on (for boolean) or print its value (for all others)
               - nooption - turn option off
               - invoption - invert option state
               - option! - invert option state
               - option? - print option value
               - option& - reset option to its default value
               - option=x or option:x - set option to x
               - option+=x - add x to option
               - option-=x - remove (or subtract) x from option

              Option name can be prepended and appended by any number of whitespace
              characters.

       :sh[ell]
              will start a shell.

       :sor[t]
              creates a popup menu of different sorting methods, when one can select primary
              sorting key.  When 'viewcolumns' options is empty and 'lsview' is off, changing
              primary sorting key will also affect view look (in particular the second column
              of the view will be changed).

       :so[urce] file
              reads command-line commands from the file.

       :sp[lit]
              switch to a two window horizontal view.

       :sp[lit]!
              toggles window horizontal splitting.

       :sp[lit] path
              splits the window horizontally to show both file directories.  And changes other
              pane to path (absolute or relative to current directory of active pane).

       :[range]s[ubstitite]/pattern/string/[flags]
              for each file in range replace a match of pattern with string.

       String can contain \0...\9 to link to capture groups (\0 - all match, \1 -
       first group, etc.).

       Available flags:

       - i - ignore case (the 'ignorecase' and 'smartcase' options are not used)

       - I - don't ignore case (the 'ignorecase' and 'smartcase' options are not used)

       - g - substitute all matches in each file name (each g toggles this)

       :[range]s[ubstitute]//string/[flags]
         will use previous pattern.

       :[range]s[ubstitute]
         will repeat previous substitution command.

       :sync [relative path]
         change the other panel to the current panel directory or to some path relative
         to the current directory.  Using macros is allowed.

       :sync!
         change the other panel to the current panel directory and synchronize cursor
         position.

       :touch file...
         will create files.  Aborts on errors and won't update time of existing files.
         Macros are expanded.

       :[range]tr/pattern/string/
         for each file in range transliterate the characters which appear in pattern to
         the corresponding character in string.  When string is shorter than pattern,
         it's padded with its last character.

       String can contain  ...9 to link to capture groups (0 - all match, 1 - first
       group, etc.).

       :undol[ist]
              show list of latest changes.  Add ! to see commands.

       :unl[et][!] $ENV_VAR1 $ENV_VAR2 ...
              remove environment variables. Add ! to omit displaying of warnings about
              nonexistent variables.

       :ve[rsion]
              show menu with version information.

       :vifm  same as :version.

       :vie[w]
              toggle on and off the quick file view.

       :vie[w]!
              turns on quick file view if it's off.

       :volumes
              only for MS-Windows
              will popup menu with volume list.  Hitting l (or Enter) key will open
              appropriate volume in the current pane.

       :vs[plit]
              switch to a two window vertical view.

       :vs[plit]!
              toggles window vertical splitting.

       :vs[plit] path
              splits the window vertically to show both file directories.  And changes other
              pane to path (absolute or relative to current directory of active pane).

       :windo [command...]
              Execute command for each pane (same as :winrun % command).

       :winrun type [command...]
              Execute command for pane(s), which is determined by type argument:
               - ^ - top-left pane
               - $ - bottom-right pane
               - % - all panes
               - . - current pane
               - , - other pane

       :w[rite]
              write vifminfo file (add ! to force write even if settings weren't changed).

       :wq[!] same as :quit, but ! only disables check of backgrounded commands.

       :x[it][!]
              will exit Vifm (add ! if you don't want to save changes).


       :map lhs rhs
              map lhs key sequence to rhs in normal and visual modes.

       :map! lhs rhs
              map lhs key sequence to rhs in command line mode.


       :cm[ap] lhs rhs
              map lhs to rhs in command line mode.

       :mm[ap] lhs rhs
              map lhs to rhs in menu mode.

       :nm[ap] lhs rhs
              map lhs to rhs in normal mode.

       :qm[ap] lhs rhs
              map lhs to rhs in view mode.

       :vm[ap] lhs rhs
              map lhs to rhs in visual mode.


       :cm[ap]
              lists all maps in command line mode.

       :mm[ap]
              lists all maps in menu mode.

       :nm[ap]
              lists all maps in normal mode.

       :qm[ap]
              lists all maps in view mode.

       :vm[ap]
              lists all maps in visual mode.


       :cm[ap] beginning
              lists all maps in command line mode that start with the beginning.

       :mm[ap] beginning
              lists all maps in menu mode that start with the beginning.

       :nm[ap] beginning
              lists all maps in normal mode that start with the beginning.

       :qm[ap] beginning
              lists all maps in view mode that start with the beginning.

       :vm[ap] beginning
              lists all maps in visual mode that start with the beginning.


       :no[remap] lhs rhs
              map the key sequence lhs to {rhs} for normal and visual modes, but disallow
              mapping of rhs.

       :no[remap]! lhs rhs
              map the key sequence lhs to {rhs} for command line mode, but disallow mapping of
              rhs.


       :cno[remap] lhs rhs
              map the key sequence lhs to {rhs} for command line mode, but disallow mapping of
              rhs.

       :mn[oremap] lhs rhs
              map the key sequence lhs to {rhs} for menu mode, but disallow mapping of rhs.

       :nn[oremap] lhs rhs
              map the key sequence lhs to {rhs} for normal mode, but disallow mapping of rhs.

       :qn[oremap] lhs rhs
              map the key sequence lhs to {rhs} for view mode, but disallow mapping of rhs.

       :vn[oremap] lhs rhs
              map the key sequence lhs to {rhs} for visual mode, but disallow mapping of rhs.


       :unm[ap] lhs
              remove the mapping of lhs from normal and visual modes.

       :unm[ap]! lhs
              remove the mapping of lhs from command line mode.


       :cu[nmap] lhs
              remove the mapping of lhs from command line mode.

       :mu[nmap] lhs
              remove the mapping of lhs from menu mode.

       :nun[map] lhs
              remove the mapping of lhs from normal mode.

       :qun[map] lhs
              remove the mapping of lhs from view mode.

       :vu[nmap] lhs
              remove the mapping of lhs from visual mode.

Ranges
       The ranges implemented include:
         2,3 - from second to third file in the list (including it)
         % - the entire directory.
         . - the current position in the filelist.
         $ - the end of the filelist.
         't - the mark position t.

       Examples:

         :%delete

       would delete all files in the directory.

         :2,4delete

       would delete the files in the list positions 2 through 4.

         :.,$delete

       would  delete  the  files  from  the current position to the end of the
       filelist.

         :3delete4

       would delete the files in the list positions 3, 4, 5, 6.

       If a backward range is given :4,2delete - an query message is given and
       user can chose what to do next.

       The builtin commands that accept a range are :d[elete] and :y[ank].

Command macros
       The command macros may be used in user commands.

       %a     User  arguments.   When  user arguments contain macros, they are
              expanded before preforming substitution of %a.

       %c %"c The current file under the cursor.

       %C %"C The current file under the cursor in the other directory.

       %f %"f All of the selected files.

       %F %"F All of the selected files in the other directory list.

       %b %"b Same as %f %F.

       %d %"d Full path to current directory.

       %D %"D Full path to other file list directory.

       %rx %"rx
              Full paths to files in the register {x}.   In  case  of  invalid
              symbol in place of {x}, it's processed with the rest of the line
              and default register is used.

       %m     Show command output in a menu.

       %M     Same as %m, but l (or Enter) key is handled like for :locate and
              :find commands.

       %S     Show command output in the status bar.

       %s     Execute  command  in split window of active terminal multiplexer
              (ignored if not running inside one).

       %i     Completely ignore command output.

       Use %% if you need to put a percent sign in your command.

       Note that %m, %M, %s, %S and %i macros are mutually exclusive. Only the
       last one of them in the command will take effect.

       You  can  use  filename  modifiers  after %c, %C, %f, %F, %b, %d and %D
       macros.  Supported modifiers are:

       - :p           - full path

       - :u             -   UNC   name   of   path   (e.g.    "\\server"    in
         "\\server\share"),  Windows  only.   Expands to current computer name
         for not UNC paths.

       - :~           - relative to the home directory

       - :.           - relative to current directory

       - :h           - head of the filename

       - :t           - tail of the filename

       - :r           - root of the filename (without last extension)

       - :e           - extension of the filename (last one)

       - :s?pat?sub?  - substitute the first occurrence of pat with sub.   You
         can use any character for '?', but it must not occur in pat or sub.

       - :gs?pat?sub?  -  like :s, but substitutes all occurrences of pat with
         sub.

         See ':h filename-modifiers' in Vim's documentation for  the  detailed
         description.

         Using  %x  means  expand  corresponding macro escaping all characters
         that have special meaning.  And %"x means using of double quotes  and
         escape only backslash and double quote characters, which is more use‐
         ful on Windows systems.

         Position and quantity (if there is any) of %m, %M, %S or %s macros in
         the  command  is  unimportant.  All their occurrences will be removed
         from the resulting command.

         %c and %f macros are expanded to file names only, when %C and %F  are
         expanded to full paths.  %f and %F follow this in %b too.

       :com move mv %f %D
         would  set the :move command to move all of the files selected in the
         current directory to the other directory.

       The %a macro will substitute any arguments given in a command into  the
       command.  All arguments are considered optional.  ":com lsl !!ls -l %a"
       will set the lsl command to execute ls -l with or without an argument.

       :lsl<Return>
         will list the directory contents of the current directory.

       :lsl filename<Return>
         will list only the given filename.

       The macros can also be used in directly executing  commands.  ":!mv  %f
       %D" would move the current directory selected files to the other direc‐
       tory.

       Appending & to the end of a command will cause it to be executed in the
       background.Typically  you want to run two kinds of external commands in
       thebackground:
          - GUI applications that doesn't fork thus block vifm (:!sxiv %f &);
          - console tools that do not work with terminal (:!mv %f %D &).

       You don't want to run terminal commands, which require  terminal  input
       oroutput something because they will mess up vifm's TUI. Anyway, if you
       did runsuch a command, you can use Ctrl-L key to update vifm's TUI.

       Rewriting the example command with macros given above with  background‐
       ing:

          :!mv %f %D &

       Note that %m, %M, %s, %S and %i macros have bigger priority than &.  So
       command containing at least one of them can't be backgrounded and "  &"
       at the end will be just silently ignored.

Command backgrounding
       Copy  and move operation can take a lot of time to proceed.  That's why
       vifm supports backgrounding of this  two  operations.   To  run  :copy,
       :move  or :delete command in the background just add " &" at the end of
       a command.

       For each background operation a new thread will be created.   Currently
       job cannot be stopped or paused.

       You  can  see  if  command  is  still running in the :jobs menu.  Back‐
       grounded commands have progress instead  of  process  id  at  the  line
       beginning.

       Background operations cannot be undone.

Globs
       :filetype,  :filextype  and :fileviewer commands support globs to match
       file names.  Here is a short  overview  of  globs  and  some  important
       points that one needs to know about them.

       Only names of files are matched by the globs, not full paths.  E.g.
        :filetype Makefile make %c
       will  match  files with name "Makefile" regardless whether it's in root
       or home directory.

       *, ?, [ and ] are treated as special symbols in the pattern.  E.g.
        :filetype * less %c
       matches all files.  One can use character classes for escaping, so
        :filetype [*] less %c
       matches only one file name, the one which contains only  asterisk  sym‐
       bol.

       *  means  any  number  of any characters (possibly an empty substring),
       with one exception: asterisk at the pattern beginning doesn't match dot
       in the first position.  E.g.
        :fileviewer *.zip,*.jar zip -sf %c
       associates  using  of  zip program to preview all files with zip or jar
       extensions as listing of their content.

       ? means any character at this position.  E.g.
        :fileviewer ?.out file %c
       calls file tool for all files which has exactly  one  character  before
       their extension (e.g. a.out, b.out).

       Square brackets designate character class, which means that whole char‐
       acter class matches against any of characters listed in it.  For  exam‐
       ple
        :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c
       makes  vifm  call highlight program to colorize source and header files
       in C language for a 256-color terminal.  Equal command would be
        :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c

       Inside square brackets ^ or ! can be used for symbol class  negotiation
       and  the - symbol to set a range. ^ and ! should appear right after the
       opening square bracket.  For example
        :filetype *.[!d]/ inspect_dir
       associates inspect_dir as additional handler for all  directories  that
       have one character extension unless it's "d" letter.  And
        :filetype [0-9].jpg sxiv
       associates  sxiv picture viewer only for JPEG-files that contain single
       digit in their name.

:set options
       Local options
              These are kind of options that are local to a specific view.  So
              you can set ascending sorting order for left pane and descending
              order for right pane.

       aproposprg
              type: string
              default: "apropos %a"
              Specifies format for an external command to be  invoked  by  the
              :apropos command.  The format supports expanding of macros, spe‐
              cific for a particular *prg option, and %% sequence for  insert‐
              ing  percent  sign literally.  This option should include the %a
              macro to specify placement of arguments passed to  the  :apropos
              command.   If the macro is not used, it will be implicitly added
              after a space to the value of this option.

       autochpos
              type: boolean
              default: true
              When disabled vifm will set cursor to the first line in the view
              after  :cd and :pushd commands instead of saved cursor position.
              Disabling this will also make vifm clear information about  cur‐
              sor position in the view history on :cd and :pushd commands (and
              on startup if autochpos is disabled in the vifmrc).   l  key  in
              the  :history  .  menu is treated like :cd command.  This option
              affects bookmarks, file position will not preserved.

       columns co
              type: int
              default: terminal width on startup
              Terminal width in characters.

       classify
              type: string list
              default: ":dir:/"
              Specifies file name prefixes  and  suffixes  depending  on  file
              types.  The format is: [{prefix}]:{filetype}:[{suffix}].  Either
              {prefix} or {suffix} or both of them can be  omitted  (which  is
              the  default  for  all unspecified file types), this means empty
              {prefix} and/or {suffix}.  {prefix} and {suffix} should  consist
              exactly  of  one  character.  Elements  are separated by commas.
              Neither prefixes nor suffixes are part of file  names,  so  they
              don't  affect  commands  which operate on file names in any way.
              Comma (',') character should not be used.   List  of  file  type
              names can be found in the description of filetype() function.

       confirm cf
              type: boolean
              default: true
              Ask  about permanent deletion of files (on D or :delete! command
              or on undo/redo operation).

       cpoptions cpo
              type: charset
              default: "fst"
              Contains  a  sequence  of  single-character  flags.   Each  flag
              enables behaviour of older versions of vifm.  Flags:
              f  -  when  included,  running  :filter  command  results in not
              inverted (matching files  are  filtered  out)  and  :filter!  in
              inverted (matching files are left) filter, when omitted, meaning
              of the exclamation mark changes to the opposite;
              s - when included, yy, dd and DD normal  mode  commands  act  on
              selection, otherwise they operate on current file only;
              t  -  when  included,  <tab>  (thus <c-i>) behave as <space> and
              switch active pane, otherwise <tab> and <c-i> go forward in  the
              view history.

       dotdirs
              type: set
              default: nonrootparent
              Controls  displaying  of  dot directories.  The following values
              are possible:
               - rootparent    - show "../" in root directory of file system
               - nonrootparent - show "../" in non-root  directories  of  file
              system
              Note  that  empty  directories  will  always contain "../" entry
              regardless of value of this option.  "../" will disappear at the
              moment at least one file is created inside the directory.

       fastrun
              type: boolean
              default: false
              With  this  option  turned on you can run partially entered com‐
              mands with unambiguous beginning using :! (e.g. :!Te instead  of
              :!Terminal or :!Te<tab>).

       findprg
              type: string
              default:  "find %s %a -print , -type d \( ! -readable -o ! -exe‐
              cutable \) -prune"
              Specifies format for an external command to be  invoked  by  the
              :find  command.   The  format supports expanding of macros, spe‐
              cific for a particular *prg option, and %% sequence for  insert‐
              ing  percent  sign literally.  This option should include the %s
              macro to specify placement of list of paths to search in and the
              %a  macro  to specify placement of arguments passed to the :find
              command.  If some of the macros  are  not  used,  they  will  be
              implicitly added after a space to the value of the option in the
              following order: %s, %a.

              %s and %a macro can slightly change their meaning  depending  on
              :find  command  arguments.  When the first argument points to an
              existing directory, %s is assigned all arguments and %a is  left
              empty.   Otherwise,  %s  is assigned a dot (".") meaning current
              directory or list of selected filenames if any.  %a is  assigned
              arguments  when  first argument starts with a dash ("-"), other‐
              wise an escaped version of arguments, prepended by  "-name"  (on
              *nix) or "-iname" (on Windows) predicate.

       followlinks
              type: boolean
              default: true
              Follow links on l or Enter.

       fusehome
              type: string
              default: "($TMPDIR | $TEMP | $TEMPDIR | $TMP)/vifm_FUSE/"
              Directory  to  be  used as a root dir for FUSE mounts.  Value of
              the  option  can  contain   environment   variables   (in   form
              "$envname"),  which will be expanded (prepend it with a slash to
              prevent expansion).  The value  should  expand  to  an  absolute
              path.

              If  you  change  this  option,  vifm won't remount anything.  It
              affects future mounts only.  See "Automatic FUSE mounts" section
              below for more information.

       gdefault gd
              type: boolean
              default: false
              When on, 'g' flag is on for :substitute by default.

       grepprg
              type: string
              default: "grep -n -H -I -r %i %a %s"
              Specifies  format  for  an external command to be invoked by the
              :grep command.  The format supports expanding  of  macros,  spe‐
              cific  for a particular *prg option, and %% sequence for insert‐
              ing percent sign literally.  This option should include  the  %i
              macro  to  specify  placement  of  "-v" string when inversion of
              results is requested, the %a macro to specify placement of argu‐
              ments  passed  to  the :grep command and the %s macro to specify
              placement of list of files to search in.  If some of the  macros
              are not used, they will be implicitly added after a space to the
              value of the 'grepprg' option in the following  order:  %i,  %a,
              %s.

              Example  of setup to use ack (http://beyondgrep.com/) instead of
              grep:
                  set grepprg=ack\ -H\ -r\ %i\ %a\ %s
              or  The  Silver   Searcher   (https://github.com/ggreer/the_sil‐
              ver_searcher):
                  set grepprg=ag\ --line-numbers\ %i\ %a\ %s


       history hi
              type: integer
              default: 15
              Maximum  number  of directories in the view history and lines in
              the prompt, command line and search histories.

       hlsearch hls
              type: bool
              default: true
              Highlight all matches of search pattern.

       iec    type: boolean
              default: false
              Use KiB, MiB, ... instead of KB, MB, ...

       ignorecase ic
              type: boolean
              default: false
              Ignore case in search patterns (:substitute, / and  ?  commands)
              and  characters  after f and F commands.  It doesn't affect file
              filtering.

       incsearch is
              type: boolean
              default: false
              When this option is set, search will be performed starting  from
              initial cursor position each time search pattern is changed.

       laststatus ls
              type: boolean
              default: true
              Controls if status bar is visible.

       lines  type: int
              default: terminal height on startup
              Terminal height in lines.

       locateprg
              type: string
              default: "locate %a"
              Specifies  format  for  an external command to be invoked by the
              :locate command.  The format supports expanding of macros,  spe‐
              cific  for a particular *prg option, and %% sequence for insert‐
              ing percent sign literally.  This option should include  the  %a
              macro  to  specify  placement of arguments passed to the :locate
              command.  If the macro is not used, it will be implicitly  added
              after a space to the value of this option.

       lsview type: boolean
              default: false
              type: local
              When  this  option  is  set, directory view will be displayed in
              multiple columns with filenames similar to  output  of  `ls  -x`
              command.  See ls-like view section below for format description.

       rulerformat ruf
              type: string
              default: "%=%l-%S "
              Determines the content of the ruler.  Its width is 13 characters
              and it's right aligned.  Following macros are supported:
               %l - file number
               %L - total number of files in view (including filtered)
               %- - number of filtered files
               %S - number of showed files
               %= - separation point between left and right align items
               %% - percent sign

              Percent sign can be followed by optional  minimum  field  width.
              Add '-' before minimum field width if you want field to be right
              aligned.  Example:

               set rulerformat="%=%2l-%S [%L] "

       runexec
              type: boolean
              default: false
              Run executable file on Enter or l.

       scrollbind scb
              type: boolean
              default: false
              When this option is set, vifm will try  to  keep  difference  of
              scrolling positions of two windows constant.

       scrolloff so
              type: int
              default: 0
              Minimal  number of screen lines to keep above and below the cur‐
              sor.  If you want cursor line to always be in the middle of  the
              view (except at the beginning or end of the file list), set this
              option to some large value (e.g. 999).

       shell sh
              type: string
              default: $SHELL or "sh" or "cmd" (on MS-Windows)
              Full path to the shell to use to run external commands.

       shortmess shm
              type: charset
              default: ""
              Contains  a  sequence  of  single-character  flags.   Each  flag
              enables shortening of some message displayed by vifm in the TUI.
              Flags:
              T - truncate status-bar messages in the middle if they  are  too
              long  to fit on the command line.  "..." will appear in the mid‐
              dle.

       slowfs type: string list
              default: ""
              only for *nix
              A list of mounter fs name beginnings (first column in  /etc/mtab
              or /proc/mounts) that work too slow for you.  This option can be
              used to stop vifm from making some requests to particular  kinds
              of  file  systems  that  can slow down file browsing.  Currently
              this means don't check if directory has changed and do not check
              if target of symbolic links exists.

       smartcase scs
              type: boolean
              default: false
              Overrides  the  ignorecase option if the search pattern contains
              at least one upper case character.  Only  used  when  ignorecase
              option is enabled.  It doesn't affect file filtering.

       sort   type: string list
              default: +name on *nix and +iname on Windows
              type: local
              Sets  list of sorting keys (first item is primary key, second is
              secondary key, etc.):
                 [+-]ext   - sort by extension
                 [+-]name  - sort by name (including extension)
                 [+-]iname - sort by name (including extension, ignores case)
                 [+-]gid   - sort by group id (*nix only)
                 [+-]gname - sort by group name (*nix only)
                 [+-]mode  - sort by mode (*nix only)
                 [+-]perms - sort by permissions string (*nix only)
                 [+-]uid   - sort by owner id (*nix only)
                 [+-]uname - sort by owner name (*nix only)
                 [+-]size  - sort by size
                 [+-]atime - sort by time accessed
                 [+-]ctime - sort by time changed
                 [+-]mtime - sort by time modified

       ´+' means ascending sort for this key, and '-' means descending sort.

       In case name (iname on Windoes) is skipped, it will be added at the end
       automatically.

       This  option also changes view columns according to primary sorting key
       set, unless 'viewcolumns' option is not empty.

       sortnumbers
              type: boolean
              default: false
              type: local
              Natural sort of (version) numbers within text.

       statusline stl
              type: string
              default: ""
              Determines the content of the status line (the line right  above
              command-line).   Empty string means use same format like in pre‐
              vious versions.  Following macros are supported:

              - %t - file name (considering value of the 'classify' option)

              - %A - file attributes (permissions on  *nix  or  properties  on
                     Windows)

              - %u - user name or uid (if it cannot be resolved)

              - %g - group name or gid (if it cannot be resolved)

              - %s - file size in human readable format

              -  %E - size of selected files in human readable format, same as
                     %s when no files are selected, except that it will  never
                     show  size  of  ../  in  visual  mode, since it cannot be
                     selected

              - %d - file modification date (uses 'timefmt' option)

              - all 'rulerformat' macros

              Percent sign can be followed by optional  minimum  field  width.
              Add '-' before minimum field width if you want field to be right
              aligned.  Example:

               set statusline="  %t%= %A %10u:%-7g %15s %20d "

              On Windows file properties include next flags (upper case  means
              flag is on):
               A - archive
               H - hidden
               I - content isn't indexed
               R - readonly
               S - system
               C - compressed
               D - directory
               E - encrypted
               P - reparse point (e.g. symbolic link)
               Z - sparse file

              sortorder
                     type: enumeration
                     default: ascending
                     Sets sort order for primary key: ascending, descending.

              tabstop ts
                     type: integer
                     default: value from curses library
                     Number of spaces that a Tab in the file counts for.

              timefmt
                     type: string
                     default: " %m/%d %H:%M"
                     Format  of  time in file list.  See man date or man strf‐
                     time for details.

              timeoutlen tm
                     type: integer
                     default: 1000
                     The time in milliseconds that is waited for a mapped  key
                     in case of already typed key sequence is ambiguous.

              trash  type: boolean
                     default: true
                     Use  trash  directory.   See  "Trash  directory"  section
                     below.

              trashdir
                     type: string
                     default: "$HOME/.vifm/Trash"
                     Sets path to trash directory.  Value of  the  option  can
                     contain environment variables (in form "$envname"), which
                     will be expanded (prepend it  with  a  slash  to  prevent
                     expansion).  The value should expand to an absolute path.

                     Will  attempt  to  create  the  directory  if it does not
                     exist.  See "Trash directory" section below.

              undolevels ul
                     type: integer
                     default: 100
                     Maximum number of changes that can be undone.

              vicmd  type: string
                     default: "vim"
                     The actual command used to start vi.  Ampersand  sign  at
                     the  end  (regardless  whether  it's preceded by space or
                     not) means backgrounding of command.

              viewcolumns
                     type: string
                     default: ""
                     type: local
                     Format string containing list of  columns  in  the  view.
                     When this option is empty view columns to show are chosen
                     automatically using sorting keys (see 'sort') as a  base.
                     Value  of this option is ignored if 'lsview' is set.  See
                     Column view section below for format description.

                     An example of setting the options for  both  panes  (note
                     vifm-windo command):
                      windo set viewcolumns=-{name}..,6{size},11{perms}

              vixcmd type: string
                     default: value of vicmd
                     The  command  used to start vi when in X.  Ampersand sign
                     at the end (regardless whether it's preceded by space  or
                     not) means backgrounding of command.

              vifminfo
                     type: set
                     default: bookmarks

              Controls what will be saved in the $VIFM/vifminfo file.
                 options   - all options that can be set with the :set command
                 filetypes - associated programs and viewers
                 commands  - user defined commands (see :command description)
                 bookmarks - bookmarks, except special ones like '< and '>
                 tui        -  state of the user interface (sorting, number of
              windows, quick
                              view state, active view)
                 dhistory  - directory history
                 state     - file name and dot filters and terminal multiplex‐
              ers integration
                              state
                 cs        - default color scheme
                 savedirs  - save last visited directory (needs dhistory)
                 chistory  - command line history
                 shistory  - search history (/ and ? commands)
                 phistory  - prompt history
                 fhistory  - filter history (see description of the "=" normal
              mode command)
                 dirstack  - directory stack overwrites previous stack, unless
              stack of
                              current session is empty
                 registers - registers content

              vimhelp
                     type: boolean
                     default: false
                     Use vim help format.

              wildmenu wmnu
                     type: boolean
                     default: false
                     Controls  whether  possible matches of completion will be
                     shown above the command line.

              wrap   type: boolean
                     default: true
                     Controls whether to wrap text in quick view.

              wrapscan ws
                     type: boolean
                     default: true
                     Searches wrap around end of the list.

Mappings
       Since it's not easy to enter special characters there are several  spe‐
       cial sequences that can be used in place of them.  They are:

       <cr>   Enter key

       <bs>   Backspace key

       <tab> <s-tab>
              Tabulation and Shift+Tabulation keys

       <esc>  <space>  <home> <end> <left> <right> <up> <down> <pageup> <page‐
       down>
              Keys with obvious names.

       <del> <delete>
              Delete key.   <del>  and  <delete>  mean  different  codes,  but
              <delete> is more common.

       <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_>
              Control + some key.

       <a-a>,<a-b>,...,<a-z>
              <m-a>,<m-b>,...,<m-z> Alt + some key.

       <a-c-a>,<a-c-b>,...,<a-c-z>
              <m-c-a>,<m-c-b>,...,<m-c-z> only for *nix
              Alt + Ctrl + some key.

       <f0> - <f63>
              Functional keys

       <c-f1> - <c-f12>
              only for MS-Windows
              Functional keys with Control key pressed.

       <a-f1> - <a-f12>
              only for MS-Windows
              Functional keys with Alt key pressed.

       <s-f1> - <s-f12>
              only for MS-Windows
              Functional keys with Shift key pressed.

       vifm  removes  whitespace  characters  at the beginning and end of com‐
       mands.  That's why you may want to use <space> at the  end  of  rhs  in
       mappings.  For example:

        cmap <f1> man<space>

       will  put  "man " in line when you hit the <f1> key in the command line
       mode.

Expression syntax
       Supported expressions is a subset of what VimL provides.

       Expression syntax summary, from least to most significant:

       vifm-expr1 expr2 == expr2          equal
                  expr2 != expr2          not equal

       vifm-expr2 expr3 . expr3 ..        string concatenation

       vifm-expr3 "string"                string constant, \ is special
                  'string'                string constant, ' is doubled
                  $VAR                    environment variable
                  function(expr1, ...)    function call

       ".." indicates that the operations in this level can be concatenated.

       expr1
       -----
       expr2 {cmp} expr2

       Compare two expr2 expressions, resulting in a  0  if  it  evaluates  to
       false or 1 if it evaluates to true.

       equal     ==
       notequal  !=

       Examples:
        'a' == 'a'    evaluates to 1
        'a' == 'b'    evaluates to 0

       expr2
       -----
       expr3 . expr3 ..     string concatenation

       Examples:
        'a' . 'b' = 'ab'
        'aaa' . '' . 'c' = 'aaac'

       expr3
       -----

       string
       ------
       "string"             string constant

       Note that double quotes are used.

       A string constant accepts these special characters:
       \b      backspace <bs>
       \e      escape <esc>
       \n      newline
       \r      return <cr>
       \t      tab <tab>
       \\      backslash
       \"      double quote

       Examples:
        "\"Hello,\tWorld!\""
        "Hi,\nthere!"

       literal-string
       --------------
       ´string'             string constant

       Note that single quotes are used.

       This  string  is  taken as it is.  No backslashes are removed or have a
       special meaning.  The only exception is that two quotes stand  for  one
       quote.

       Examples:
        'All\slashes\are\saved.'
        'This string contains doubled single quotes ''here'''

       environment variable
       --------------------
       $VAR                  environment variable

       The  String value of any environment variable.  When it is not defined,
       the result is an empty string.

       Examples:
        'This is my $PATH env: ' . $PATH
        'vifmrc at ' . $MYVIFMRC . ' is used.'

       function call
       -------------
       function(expr1, ...)  function call

       See Functions section below.

       Examples:
        "'" . filetype('.') . "'"
        filetype('.') == 'reg'

Functions
       USAGE             RESULT        DESCRIPTION

       expand({expr})    String        Expand macros in {expr}.
       filetype({fnum})  String        Returns file type from position.

       expand({expr})
       Expands macros in {expr} just like it's done for command-line commands.
       Returns a string.  See "Command macros" section above.  Examples:
         " percent sign
         :echo expand('%%')
         " the last part of directory name of the other pane
         :echo expand('%D:t')

       filetype({fnum})
       The  result  is  a string, which represents file type and is one of the
       list:
           exe    executables
           reg    regular files
           link   symbolic links
           dir    directories
           char   character devices
           block  block devices
           fifo   pipes
           sock   *nix domain sockets
           ?      unknown file type (should never appear)
       Parameter {fnum} can have following values:
           - '.' to get type of file under the cursor in the active pane

Menus and dialogs
       General

       j, k - move.
       <Escape>, Ctrl-C, ZZ, ZQ - quit.
       <Return>, l - select and exit the menu.
       Ctrl-L - redraw the menu.

       Escape, Ctrl-C, ZZ, ZQ, q - quit.

       In all menus

       Ctrl-B/Ctrl-F
       Ctrl-D/Ctrl-U
       Ctrl-E/Ctrl-Y
       / and ?, n/N
       [num]G/[num]gg
       H/M/L
       zb/zt/zz
       zh - scroll menu items [count] characters to the right.
       zl - scroll menu items [count] characters to the left.
       zH - scroll menu items half of screen width characters to the right.
       zL - scroll menu items half of screen width characters to the left.

       All these keys have the same meaning as in normal mode (but  not  L  in
       filetype menu).

       : - enter command line mode for menus (currently only :exi[t], :q[uit],
       :x[it] and :{range} are supported).

       Apropos menu

       l key won't close the menu allowing user to pick another man page,  use
       :q to close the menu.

       Commands menu

       dd on a command to remove.

       Bookmarks menu

       Escape or Ctrl-C to abort j and k to move through.
       dd on a bookmark to remove.

       Directory stack menu

       Pressing  l  or  Enter  on  directory  name  will rotate stack to place
       selected directory pair at the top of the stack.

       Filetype menu

       Commands from vifmrc or typed in command-line are displayed above empty
       line.  All commands below empty line are from .desktop files.

       Fileinfo dialog

       Enter - close dialog
       q - close dialog

       Sort dialog

       h - switch ascending/descending.
       Space - switch ascending/descending.
       q - close dialog

       Attributes (permissions or properties) dialog

       h - check/uncheck.
       Space - check/uncheck.
       q - close dialog

       Item states:

       - * - checked flag.

       - X - means that it has different value for files in selection.

       - d  (*nix only) - (only for execute flags) means u-x+X, g-x+X or o-x+X
         argument for the chmod program.  If you want to remove execute  right
         from  all  files,  but  preserve  it for directories, set all execute
         flags to 'd' and check ´Set Recursively' flag.

Startup
       On startup vifm determines several variables that are used  during  the
       session.  They are determined in the order they appear below.

       On  *nix  systems $HOME is normally present and used as is.  On Windows
       systems vifm tries to find correct  home  directory  in  the  following
       order:
        - $HOME variable;
        - $USERPROFILE variable;
        - a combination of $HOMEDRIVE and $HOMEPATH variables.

       vifm tries to find correct configuration directory by checking the fol‐
       lowing places:
        - $VIFM variable;
        - parent directory of the executable file (on Windows only);
        - $HOME/.vifm directory;
        - $APPDATA/Vifm directory (on Windows only).

       vifm tries to find correct configuration file by checking the following
       places:
        - $MYVIFMRC variable;
        - vifmrc in parent directory of the executable file (on Windows only);
        - $VIFM/vifmrc file.

Configure
       See Startup section above for the explanations on $VIFM and $MYVIFMRC.

       The  vifmrc  file  contains  commands  that  will  be  executed on vifm
       startup.  See $MYVIFMRC variable description for search algorithm  used
       to  find  vifmrc.  Use it to set settings, mappings, filetypes etc.  To
       use multi line commands precede each next line with a slash (whitespace
       before  slash  is  ignored,  but all spaces at the end of the lines are
       saved).  For example:
         set
             \smartcase
       equals "setsmartcase".  When
         set<space here>
             \ smartcase
       equals "set  smartcase".

       The $VIFM/vifminfo file contains session settings.  You may edit it  by
       hand  to change the settings, but it's not recommended to do that, edit
       vifmrc instead.  You  can  control  what  settings  will  be  saved  in
       vifminfo by setting ´vifminfo' option.  Vifm always writes this file on
       exit unless 'vifminfo' option is empty.  Bookmarks, commands, directory
       history,  filetypes,  fileviewers  and registers in the file are merged
       with vifm configuration (which has bigger priority).

       The $VIFM/scripts directory can contain shell scripts.   vifm  modifies
       it's  PATH  environment  variable to let user run those scripts without
       specifying full path.  All subdirectories of the $VIFM/scripts will  be
       added  to  PATH too.  Script in a subdirectory overlaps script with the
       same name in all its parent directories.

       The $VIFM/colors directory contains color schemes.

Automatic FUSE mounts
       vifm has a builtin support of automated FUSE file system mounts.  It is
       implemented  using  file  associations  mechanism.  To enable automated
       mounts, one needs to use a specially formated program line in  filetype
       or filextype commands.  Currently two formats are supported:

       1)  FUSE_MOUNT  This format should be used in case when all information
       needed for mounting all files of a particular type is the  same.   E.g.
       mounting of tar files don't require any file specific options.

       Format line:
         FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%CLEAR]

       Example filetype command:
         :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR

       2)  FUSE_MOUNT2 This format allows one to use specially formatted files
       to perform mounting and is useful for  mounting  remotes,  for  example
       remote file systems over ftp or ssh.

       Format line:
         FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%CLEAR]

       Example filetype command:
         :filetype FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR

       Example file content:
           root@127.0.0.1:/

       All  %  macros  are  expanded by vifm at runtime and have the following
       meaning:
         - %SOURCE_FILE is replaced by full path to selected file
         - %DESTINATION_DIR is replaced by full path to mount directory, which
       is created by vifm basing on the value of 'fusehome' option.
         -  %PARAM  value  is filled from the first line of file (whole line),
       though in the future it can be changed to whole file content
         - %CLEAR means that you want to clear  screen  before  running  mount
       command.

       %CLEAR is an optional macro.  Other macros are not mandatory, but mount
       commands likely won't work without them.

       The mounted FUSE file systems will be automatically  unmounted  in  two
       cases:

       - when vifm quits (with ZZ, :q, etc. or when killed by signal)

       - when  you  explicitly leave mount point going up to its parent direc‐
         tory (with h, Enter on "../" or ":cd ..") and other pane  is  not  in
         the same directory or its child directories.

View look
       vifm supports displaying of file list view in two different ways:

       - in a table mode, when multiple columns can be set using 'viewcolumns'
         option (see Column view section below for details);

       - in a multicolumn list manner which looks almost like `ls -x`  command
         output (see ls-like view section below for details).

       The  look is local for each view and can be chosen by changing value of
       the ´lsview' boolean option.

       Depending on view look some of keys change their meaning to allow  more
       natural cursor moving.  This concerns mainly h, j, k, l and other simi‐
       lar navigation keys.

       Also some of options can be ignored if they don't affect view  display‐
       ing in selected look.  For example value of 'viewcolumns' when 'lsview'
       is set.

ls-like view
       When this view look is enabled by setting 'lsview' option on, vifm will
       display  files  in  multiple columns.  Number of columns depends on the
       length of the longest file name present in  current  directory  of  the
       view.   Whole  file list is automatically reflowed on directory change,
       terminal or view resize.

       View looks close to output of `ls -x` command, so files are listed left
       to right in rows.

       In  this  mode file manipulation commands (e.g. d) don't work line-wise
       like they do in Vim, since such operations would be uncommon  for  file
       manipulating  tasks.   Thus,  for  example, dd will remove only current
       file.

Column view
       View columns are described by a comma-separated list of column descrip‐
       tions, each of which has the following format
           [ '-' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type '}' '.'{0,3}
       where fw stands for full width and tw stands for text width.

       So it basically consists of four parts:
        1. Optional alignment specifier
        2. Optional width specifier
        3. Mandatory column name
        4. Optional cropping specifier

       Alignment specifier

       It's an optional minus sign as the first symbol of the string.

       Specifies  type  of text alignment within a column.  Two types are sup‐
       ported:

       - left align
              set viewcolumns=-{name}

       - right align (default)
              set viewcolumns={name}

       Width specifier

       It's a number followed by a  percent  sign,  two  numbers  (second  one
       should  be less than or equal to the first one) separated with a dot or
       a single number.

       Specifies column width and its units. There are tree size types:

       - absolute size - column width is specified in characters
              set viewcolumns=-100{name},20.15{ext}
         results in two columns with lengths of 100  and  20  and  a  reserved
         space of five characters on the left of second column.

       - relative  (percent)  size  - column width is specified in percents of
         view width
              set viewcolumns=-80%{name},15%{ext},5%{mtime}
         results in three columns with lengths of 80/100, 15/100 and 5/100  of
         view width.

       - auto size (default) - column width is automatically determined
              set viewcolumns=-{name},{ext},{mtime}
         results  in  three  columns  with  length of one third of view width.
         There is no size adjustment to content, since it will slow down  ren‐
         dering.

       Columns  of  different  sizing  types  can be freely mixed in one view.
       Though sometimes some of columns can be seen partly  or  be  completely
       invisible if there is not enough space to display them.

       Column name

       This is just a sort key surrounded with curly braces, e.g.
           {name},{ext},{mtime}
       {name}  and  {iname} keys are the same and present both for consistency
       with ´sort' option.

       Empty curly braces ({}) are replaced with the default secondary  column
       for  primary sort key. So after the next command view will be displayed
       almost as if 'viewcolumns' is empty, but adding ellipsis for long  file
       names:
           set viewcolumns=-{name}..,6{}.

       Cropping specifier

       It's from one to three dots after closing curly brace in column format.

       Specifies type of text truncation if it doesn't fix in the column. Cur‐
       rently tree types are supported:

       - truncation - text is truncated
              set viewcolumns=-{name}.
         results in truncation of names that are too long too fit in the view.

       - adding of ellipsis - ellipsis on the left or  right  are  added  when
         needed
              set viewcolumns=-{name}..
         results in that ellipsis are added at the end of too long file names.

       - none (default) - text can pass column boundaries
              set viewcolumns=-{name}...,{ext}
         results  in  that long file names can partially be written on the ext
         column.

Color schemes
       The color schemes in vifm can be applied in two different ways:

       - as the default (or main) color scheme

       - as local to a panel color scheme

       Both types are set using |vifm-:colorscheme| command, but of  different
       forms:

       - :colorscheme color_scheme_name - for the default color scheme

       - :colorscheme color_scheme_name directory - for local color schemes

       Look  of different parts of the TUI (Text User Interface) is determined
       in this way:

       - Border, TopLineSel, TopLine, CmdLine, ErrorMsg, StatusLine and  Wild‐
         Menu are always determined by the default color scheme

       - CurrLine, Selected, Directory, Link, BrokenLink, Socket, Device, Exe‐
         cutable, Fifo and Win are determined by default color  scheme  and  a
         set of local colorschemes, which can be empty

       There might be a set of local color schemes because they are structured
       hierarchically according to file system structure. For example,  having
       the following piece of file system:

        ~
        `-- bin
           |
           `-- my

       Two color schemes:

        # ~/.vifm/colors/for_bin
        highlight Win cterm=none ctermfg=white ctermbg=red
        highlight CurrLine cterm=none ctermfg=red ctermbg=black

        # ~/.vifm/colors/for_bin_my
        highlight CurrLine cterm=none ctermfg=green ctermbg=black

       And these three commands in the vifmrc file:

        colorscheme Default
        colorscheme for_bin ~/bin
        colorscheme for_bin_my ~/bin/my

       File list will look in the following way for each level:

       - ~/ - Default color scheme
         black background
         cursor with blue background

       - ~/bin/ - mix of Default and for_bin color schemes
         red background
         cursor with black background and red foreground

       - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes
         red background
         cursor with black background and green foreground

Trash directory
       vifm has support of trash directory, which is used as temporary storage
       for deleted files or files that were cut.  Using trash is controlled by
       the  ´trash'  option,  and  exact  path  to  the  trash can be set with
       'trashdir' option.  Trash directory in vifm differs  from  the  system-
       wide  one  by default, because of possible incompatibilities of storing
       deleted  files  among  different  file  managers.   But  one  can   set
       'trashdir'  to  "~/.local/share/Trash" to use a "standard" trash direc‐
       tory.

       There are two scenarios of using trash in vifm:

       1.  As a place for storing files that  were  cut  by  "d"  and  may  be
           inserted to some other place in file system.

       2.  As a storage of files, that are deleted but not purged yet.

       The first scenario uses deletion ("d") operations to put files to trash
       and put ("p") operations to restore files from trash  directory.   Note
       that  such operations move files to and from trash directory, which can
       be long term operations in  case  of  different  partitions  or  remote
       drives mounted locally.

       The  second scenario uses deletion ("d") operations for moving files to
       trash directory and :empty command-line command to purge all previously
       deleted files.

       Deletion  and  put  operations  depend on registers, which can point to
       files in trash directory.  Normally, there are no nonexistent files  in
       registers,  but  vifm  doesn't  keep track of modifications under trash
       directory, so one shouldn't expect value of registers to be  absolutely
       correct if trash directory was modified not by operation that are meant
       for it.  But this won't lead to any issues with operations, since  they
       ignore nonexistent files.

Client-Server
       vifm supports remote execution of command-line mode commands as well as
       remote changing of directories.  This is possible using  --remote  com‐
       mand-line argument.

       To  execute  a command remotely combine --remote argument with -c <com‐
       mand> or +<command>.  For example:
           vifm --remote -c 'cd /'
           vifm --remote '+cd /'

       To change directory not using command-line mode commands one can  spec‐
       ify paths right after --remote argument, like this:
           vifm --remote /
           vifm --remote ~
           vifm --remote /usr/bin /tmp

       At  the  moment  there  is no way of specifying, which instance of vifm
       should arguments be sent.  The main purpose of --remote argument is  to
       provide support of using vifm as a single-instance application.

Plugin
       Plugin for using vifm in vim as a file selector.

       Commands:

         :EditVifm   select a file or files to open in the current buffer.
         :SplitVifm  split buffer and select a file or files to open.
         :VsplitVifm  vertically  split  buffer  and select a file or files to
       open.
         :DiffVifm   select a file or files to compare  to  the  current  file
       with
                     :vert diffsplit.
         :TabVifm    select a file or files to open in tabs.

       Each command accepts up to two arguments: left pane directory and right
       pane directory.  After arguments are checked, vifm process  is  spawned
       in  a  special "file-picker" mode.  To pick files just open them either
       by pressing l, i or Enter keys, or by running  :edit  command.   If  no
       files  are  selected,  file under the cursor is opened, otherwise whole
       selection is passed to the plugin and opened in vim.

       The plugin have only  two  settings.   It's  a  string  variable  named
       g:vifm_term  to  let  user  specify  command  to  run gui terminal.  By
       default it's equal to ´xterm -e'.  And another  string  variable  named
       g:vifm_exec,  which  equals  "vifm"  by  default  and specifies path to
       vifm's executable.  To pass arguments  to  vifm  use  g:vifm_exec_args,
       which is empty by default.

       To  use  the  plugin  copy  the vifm.vim file to either the system wide
       vim/plugin directory or into ~/.vim/plugin.

       If you would prefer not to use the plugin and it is in the system  wide
       plugin directory add

       let loaded_vifm=1

       to your ~/.vimrc file.

Reserved
       The following command names are reserved and shouldn't be used for user
       commands.

         g[lobal]
         v[global]

SEE ALSO
       Website: http://vifm.sourceforge.net/

       Esperanto translation of the documentation by Sebastian Cyprych:
       http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html

AUTHOR
       Vifm was written by ksteen <ksteen@users.sourceforge.net>
       And currently is developed by xaizek <xaizek@openmailbox.org>



                                 Oct 19, 2013                          vifm(1)
