dotfiles

My collection of dotfiles
git clone git://git.noxz.tech/dotfiles
Log | Files | Refs

vifm-help.txt (196097B)


      1 VIFM(1)			    General Commands Manual		       VIFM(1)
      2 
      3 
      4 
      5 NAME
      6        vifm - vi file manager
      7 
      8 SYNOPSIS
      9        vifm [OPTION]...
     10        vifm [OPTION]... path
     11        vifm [OPTION]... path path
     12 
     13 DESCRIPTION
     14        Vifm is an ncurses based file manager with vi like keybindings.	If you
     15        use vi, vifm gives you complete keyboard control over your files
     16        without having to learn a new set of commands.
     17 
     18 OPTIONS
     19        vifm starts in the current directory unless it is given a different
     20        directory on the command line or 'vifminfo' option includes "savedirs"
     21        (in which case last visited directories are used as defaults).
     22 
     23        -      Read list of files from standard input stream and compose custom
     24 	      view out of them (see "Custom views" section).  Current working
     25 	      directory is used as a base for relative paths.
     26 
     27        <path> Starts Vifm in the specified path.
     28 
     29        <path> <path>
     30 	      Starts Vifm in the specified paths.
     31 
     32        Specifying two directories triggers split view even when vifm was in
     33        single-view mode on finishing previous session.	To suppress this
     34        behaviour :only command can be put in the vifmrc file.
     35 
     36        When only one path argument is found on command-line, the left/top pane
     37        is automatically set as the current view.
     38 
     39        Paths to files are also allowed in case you want vifm to start with
     40        some archive opened.
     41 
     42        --select <path>
     43 	      Open parent directory of the given path and select specified
     44 	      file in it.
     45 
     46        -f     Makes vifm instead of opening files write selection to
     47 	      $VIFM/vimfiles and quit.
     48 
     49        --choose-files <path>|-
     50 	      Sets output file to write selection into on exit instead of
     51 	      opening files.  "-" means standard output.  Use empty value to
     52 	      disable it.
     53 
     54        --choose-dir <path>|-
     55 	      Sets output file to write last visited directory into on exit.
     56 	      "-" means standard output.  Use empty value to disable it.
     57 
     58        --delimiter <delimiter>
     59 	      Sets separator for list of file paths written out by vifm.
     60 	      Empty value means null character.	 Default is new line
     61 	      character.
     62 
     63        --on-choose <command>
     64 	      Sets command to be executed on selected files instead of opening
     65 	      them.  The command may use any of macros described in "Command
     66 	      macros" section below.  The command is executed once for whole
     67 	      selection.
     68 
     69        --logging[=<startup log path>]
     70 	      Log some operational details $VIFM/log.  If the optional startup
     71 	      log path is specified and permissions allow to open it for
     72 	      writing, then logging of early initialization (before value of
     73 	      $VIFM is determined) is put there.
     74 
     75        --server-list
     76 	      List available server names and exit.
     77 
     78        --server-name <name>
     79 	      Name of target or this instance (sequential numbers are appended
     80 	      on name conflict).
     81 
     82        --remote
     83 	      Sends the rest of the command line to another instance of vifm,
     84 	      --server-name is treated just like any other argument and should
     85 	      precede --remote on the command line.  When there is no server,
     86 	      quits silently.  There is no limit on how many arguments can be
     87 	      processed.  One can combine --remote with -c <command> or
     88 	      +<command> to execute commands in already running instance of
     89 	      vifm.  See also "Client-Server" section below.
     90 
     91        --remote-expr
     92 	      passes expression to vifm server and prints result.  See also
     93 	      "Client-Server" section below.
     94 
     95        -c <command> or +<command>
     96 	      Run command-line mode <command> on startup.  Commands in such
     97 	      arguments are executed in the order they appear in command line.
     98 	      Commands with spaces or special symbols must be enclosed in
     99 	      double or single quotes or all special symbols should be escaped
    100 	      (the exact syntax strongly depends on shell).  "+" argument is
    101 	      equivalent to "$" and thus picks last item of of the view.
    102 
    103        --help, -h
    104 	      Show a brief command summary and exit vifm.
    105 
    106        --version, -v
    107 	      Show version information and quit.
    108 
    109        --no-configs
    110 	      Skip reading vifmrc and vifminfo.
    111 
    112 
    113        See "Startup" section below for the explanations on $VIFM.
    114 
    115 General keys
    116        Ctrl-C or Escape
    117 	      cancel most operations (see "Cancellation" section below), clear
    118 	      all selected files.
    119 
    120        Ctrl-L clear and redraw the screen.
    121 
    122 Basic Movement
    123        The basic vi key bindings are used to move through the files and pop-up
    124        windows.
    125 
    126        k, gk, or Ctrl-P
    127 	      move cursor up one line.
    128 
    129        j, gj or Ctrl-N
    130 	      move cursor down one line.
    131 
    132        h      when 'lsview' is off move up one directory (moves to parent
    133 	      directory node in tree view), otherwise move left one file.
    134 
    135        l      when 'lsview' is off move into a directory or launches a file,
    136 	      otherwise move right one file.
    137 
    138        gg     move to the first line of the file list.
    139 
    140        G      move to the last line in the file list.
    141 
    142        gh     go up one directory regardless of view representation (regular,
    143 	      ls-like).	 Also can be used to leave custom views including tree
    144 	      view.
    145 
    146        gl or Enter
    147 	      enter directory or launch a file.
    148 
    149        H      move to the first file in the window.
    150 
    151        M      move to the file in the middle of the window.
    152 
    153        L      move to the last file in the window.
    154 
    155        Ctrl-F or Page Down
    156 	      move forward one page.
    157 
    158        Ctrl-B or Page Up
    159 	      move back one page.
    160 
    161        Ctrl-D jump back one half page.
    162 
    163        Ctrl-U jump forward one half page.
    164 
    165        n%     move to the file that is n percent from the top of the list (for
    166 	      example 25%).
    167 
    168        0 or ^ move cursor to the first column.	See 'lsview' option
    169 	      description.
    170 
    171        $      move cursor to the last column.  See 'lsview' option
    172 	      description.
    173 
    174        Space  switch file lists.
    175 
    176        gt     switch to the next tab (wrapping around).
    177 
    178        {n}gt  switch to the tab number {n} (wrapping around).
    179 
    180        gT     switch to the previous tab (wrapping around).
    181 
    182        {n}gT  switch to {n}-th previous tab.
    183 
    184 Movement with Count
    185        Most movement commands also accept a count, 12j would move down 12
    186        files.
    187 
    188        [count]%
    189 	      move to percent of the file list.
    190 
    191        [count]j
    192 	      move down [count] files.
    193 
    194        [count]k
    195 	      move up [count] files.
    196 
    197        [count]G or [count]gg
    198 	      move to list position [count].
    199 
    200        [count]h
    201 	      go up [count] directories.
    202 
    203 Scrolling panes
    204        zt     redraw pane with file in top of list.
    205 
    206        zz     redraw pane with file in center of list.
    207 
    208        zb     redraw pane with file in bottom of list.
    209 
    210        Ctrl-E scroll pane one line down.
    211 
    212        Ctrl-Y scroll pane one line up.
    213 
    214 Pane manipulation
    215        Second character can be entered with or without Control key.
    216 
    217        Ctrl-W H
    218 	      move the pane to the far left.
    219 
    220        Ctrl-W J
    221 	      move the pane to the very bottom.
    222 
    223        Ctrl-W K
    224 	      move the pane to the very top.
    225 
    226        Ctrl-W L
    227 	      move the pane to the far right.
    228 
    229 
    230        Ctrl-W h
    231 	      switch to the left pane.
    232 
    233        Ctrl-W j
    234 	      switch to the pane below.
    235 
    236        Ctrl-W k
    237 	      switch to the pane above.
    238 
    239        Ctrl-W l
    240 	      switch to the right pane.
    241 
    242 
    243        Ctrl-W b
    244 	      switch to bottom-right window.
    245 
    246        Ctrl-W t
    247 	      switch to top-left window.
    248 
    249 
    250        Ctrl-W p
    251 	      switch to previous window.
    252 
    253        Ctrl-W w
    254 	      switch to other pane.
    255 
    256 
    257        Ctrl-W o
    258 	      leave only one pane.
    259 
    260        Ctrl-W s
    261 	      split window horizontally.
    262 
    263        Ctrl-W v
    264 	      split window vertically.
    265 
    266 
    267        Ctrl-W x
    268 	      exchange panes.
    269 
    270        Ctrl-W z
    271 	      quit preview pane or view modes.
    272 
    273 
    274        Ctrl-W -
    275 	      decrease size of the view by count.
    276 
    277        Ctrl-W +
    278 	      increase size of the view by count.
    279 
    280        Ctrl-W <
    281 	      decrease size of the view by count.
    282 
    283        Ctrl-W >
    284 	      increase size of the view by count.
    285 
    286 
    287        Ctrl-W |
    288 	      set current view size to count.
    289 
    290        Ctrl-W _
    291 	      set current view size to count.
    292 
    293        Ctrl-W =
    294 	      make size of two views equal.
    295 
    296        For Ctrl-W +, Ctrl-W -, Ctrl-W <, Ctrl-W >, Ctrl-W | and Ctrl-W _
    297        commands count can be given before and/or after Ctrl-W.	The resulting
    298        count is a multiplication of those two.	So "2 Ctrl-W 2 -" decreases
    299        window size by 4 lines or columns.
    300 
    301        Ctrl-W | and Ctrl-W _ maximise current view by default.
    302 
    303 Marks
    304        Marks are set the same way as they are in vi.
    305 
    306        You can use these characters for marks [a-z][A-Z][0-9].
    307 
    308        m[a-z][A-Z][0-9]
    309 	      set a mark for the file at the current cursor position.
    310 
    311        '[a-z][A-Z][0-9]
    312 	      navigate to the file set for the mark.
    313 
    314 
    315        There are also several special marks that can't be set manually:
    316 
    317 	 - ' (single quote) - previously visited directory of the view, thus
    318 	   hitting '' allows switching between two last locations
    319 
    320 	 - < - the first file of the last visually selected block
    321 
    322 	 - > - the last file of the last visually selected block
    323 
    324 Searching
    325        /regular expression pattern
    326 	      search for files matching regular expression in forward
    327 	      direction and advance cursor to next match.
    328 
    329        /      perform forward search with top item of search pattern history.
    330 
    331        ?regular expression pattern
    332 	      search for files matching regular expression in backward
    333 	      direction and advance cursor to previous match.
    334 
    335        ?      perform backward search with top item of search pattern history.
    336 
    337        Trailing slash for directories is taken into account, so /\/ searches
    338        for directories and symbolic links to directories.  At the moment //
    339        works too, but this can change in the future, so consider escaping the
    340        slash if not typing pattern by hand.
    341 
    342        Matches are automatically selected if 'hlsearch' is set.	 Enabling
    343        'incsearch' makes search interactive.  'ignorecase' and 'smartcase'
    344        options affect case sensitivity of search queries.
    345 
    346 
    347        [count]n
    348 	      go to the next file matching last search pattern.	 Takes last
    349 	      search direction into account.
    350 
    351        [count]N
    352 	      go to the previous file matching last search pattern.  Takes
    353 	      last search direction into account.
    354 
    355        If 'hlsearch' option is set, hitting n/N to perform search and go to
    356        the first matching item resets current selection in normal mode.	 It is
    357        not the case if search was already performed on files in the directory,
    358        thus selection is not reset after clearing selection with escape key
    359        and hitting n/N key again.
    360 
    361        Note: vifm uses extended regular expressions for / and ?.
    362 
    363 
    364        [count]f[character]
    365 	      search forward for file with [character] as first character in
    366 	      name.  Search wraps around the end of the list.
    367 
    368        [count]F[character]
    369 	      search backward for file with [character] as first character in
    370 	      name.  Search wraps around the end of the list.
    371 
    372        [count];
    373 	      find the next match of f or F.
    374 
    375        [count],
    376 	      find the previous match of f or F.
    377 
    378        Note: f, F, ; and , wrap around list beginning and end when they are
    379        used alone and they don't wrap when they are used as selectors.
    380 
    381 File Filters
    382        There are three basic file filters:
    383 
    384 	 - dot files filter (excluding "." and ".." special directories, whose
    385 	   appearance is controlled by the 'dotdirs' option);
    386 
    387 	 - manual filter for file names;
    388 
    389 	 - automatic filter for file names;
    390 
    391 	 - local filter for file names (see description of the "=" normal mode
    392 	   command).
    393 
    394        Performing operations on manual filter for file names automatically
    395        does the same on automatic one.	The file name filter is separated
    396        mainly for convenience purpose and to get more deterministic behaviour.
    397 
    398        The basic vim folding key bindings are used for filtering files.
    399 
    400        Each file list has its own copy of each filter.
    401 
    402        Filtered files are not checked in / search or :commands.
    403 
    404        Files and directories are filtered separately.  For this a slash is
    405        appended to a directory name before testing whether it matches the
    406        filter.	Examples:
    407 
    408 
    409 	 " filter directories which names end with '.files'
    410 	 :filter /^.*\.files\/$/
    411 
    412 	 " filter files which names end with '.d'
    413 	 :filter /^.*\.d$/
    414 
    415 	 " filter files and directories which names end with '.o'
    416 	 :filter /^.*\.o\/?$/
    417 
    418        Note: vifm uses extended regular expressions.
    419 
    420        za     toggle visibility of dot files.
    421 
    422        zo     show dot files.
    423 
    424        zm     hide dot files.
    425 
    426        zf     add selected files to file name filter.
    427 
    428        zO     show files hidden by file name filter.
    429 
    430        zM     restore all filters.
    431 
    432        zR     remove all filters.
    433 
    434        zr     remove local filter.
    435 
    436        zd     exclude selection or current file from a custom view.  Does
    437 	      nothing for regular view.	 For tree view excluding directory
    438 	      excludes that sub-tree.  For compare views zd hides group of
    439 	      adjacent identical files, count can be specified as 1 to exclude
    440 	      just single file or selected items instead.  Files excluded this
    441 	      way are not counted as filtered out and can't be returned unless
    442 	      view is reloaded.
    443 
    444        =regular expression pattern
    445 	      filter out files that don't match regular expression.  Whether
    446 	      view is updated as regular expression is changed depends on the
    447 	      value of the 'incsearch' option.	This kind of filter is
    448 	      automatically reset when directory is changed.
    449 
    450 Other Normal Mode Keys
    451        [count]:
    452 	      enter command line mode.	[count] generates range.
    453 
    454        q:     open external editor to prompt for command-line command.	See
    455 	      "Command line editing" section for details.
    456 
    457        q/     open external editor to prompt for search pattern to be searched
    458 	      in forward direction.  See "Command line editing" section for
    459 	      details.
    460 
    461        q?     open external editor to prompt for search pattern to be searched
    462 	      in backward direction.  See "Command line editing" section for
    463 	      details.
    464 
    465        q=     open external editor to prompt for filter pattern.  See "Command
    466 	      line editing" section for details.  Unlike other q{x} commands
    467 	      this one doesn't work in Visual mode.
    468 
    469        [count]!! and [count]!<selector>
    470 	      enter command line mode with entered ! command.  [count]
    471 	      modifies range.
    472 
    473        Ctrl-O go backwards through directory history of current view.
    474 	      Nonexistent directories are automatically skipped.
    475 
    476        Ctrl-I if 'cpoptions' contains "t" flag, <tab> and <c-i> switch active
    477 	      pane just like <space> does, otherwise it goes forward through
    478 	      directory history of current view.  Nonexistent directories are
    479 	      automatically skipped.
    480 
    481        Ctrl-G create a window showing detailed information about the current
    482 	      file.
    483 
    484        Shift-Tab
    485 	      enters view mode (works only after activating view pane with
    486 	      :view command).
    487 
    488        ga     calculate directory size.	 Uses cached directory sizes when
    489 	      possible for better performance.	As a special case calculating
    490 	      size of ".." entry results in calculation of size of current
    491 	      directory.
    492 
    493        gA     like ga, but force update.  Ignores old values of directory
    494 	      sizes.
    495 
    496        If file under cursor is selected, each selected item is processed,
    497        otherwise only current file is updated.
    498 
    499        gf     find link destination (like l with 'followlinks' off, but also
    500 	      finds directories).
    501 
    502        gr     only for MS-Windows
    503 	      same as l key, but tries to run program with administrative
    504 	      privileges.
    505 
    506        av     go to visual mode into selection amending state preserving
    507 	      current selection.
    508 
    509        gv     go to visual mode restoring last selection.
    510 
    511        [reg]gs
    512 	      when no register is specified, restore last t selection (similar
    513 	      to what gv does for visual mode selection).  If register is
    514 	      present, then all files listed in that register and which are
    515 	      visible in current view are selected.
    516 
    517        gu<selector>
    518 	      make names of selected files lowercase.
    519 
    520        [count]guu and [count]gugu
    521 	      make names of [count] files starting from the current one
    522 	      lowercase.  Without [count] only current file is affected.
    523 
    524        gU<selector>
    525 	      make names of selected files uppercase.
    526 
    527        [count]gUU and [count]gUgU
    528 	      make names of [count] files starting from the current one
    529 	      uppercase.  Without [count] only current file is affected.
    530 
    531        e      explore file in the current pane.
    532 
    533        i      handle file (even if it's an executable and 'runexec' option is
    534 	      set).
    535 
    536        cw     change word is used to rename a file or files.
    537 
    538        cW     change WORD is used to change only name of file (without
    539 	      extension).
    540 
    541        cl     change link target.
    542 
    543        co     only for *nix
    544 	      change file owner.
    545 
    546        cg     only for *nix
    547 	      change file group.
    548 
    549        [count]cp
    550 	      change file attributes (permission on *nix and properties on
    551 	      Windows).	 If [count] is specified, it's treated as numerical
    552 	      argument for non-recursive `chmod` command (of the form
    553 	      [0-7]{3,4}).
    554 
    555        [count]C
    556 	      clone file [count] times.
    557 
    558        [count]dd or d[count]selector
    559 	      move selected file or files to trash directory (if 'trash'
    560 	      option is set, otherwise delete).	 See "Trash directory" section
    561 	      below.
    562 
    563        [count]DD or D[count]selector
    564 	      like dd and d<selector>, but omitting trash directory (even when
    565 	      'trash' option is set).
    566 
    567        Y, [count]yy or y[count]selector
    568 	      yank selected files.
    569 
    570        p      copy yanked files to the current directory or move the files to
    571 	      the current directory if they were deleted with dd or :d[elete]
    572 	      or if the files were yanked from trash directory.	 See "Trash
    573 	      directory" section below.
    574 
    575        P      move the last yanked files.  The advantage of using P instead of
    576 	      d followed by p is that P moves files only once.	This isn't
    577 	      important in case you're moving files in the same file system
    578 	      where your home directory is, but using P to move files on some
    579 	      other file system (or file systems, in case you want to move
    580 	      files from fs1 to fs2 and your home is on fs3) can save your
    581 	      time.
    582 
    583        al     put symbolic links with absolute paths.
    584 
    585        rl     put symbolic links with relative paths.
    586 
    587        t      select or unselect (tag) the current file.
    588 
    589        u      undo last change.
    590 
    591        Ctrl-R redo last change.
    592 
    593        dp     in compare view of "ofboth grouppaths" kind, makes corresponding
    594 	      entry of the other pane equal to the current one.	 The semantics
    595 	      is as follows:
    596 	       - nothing done for identical entries
    597 	       - if file is missing in current view, its pair gets removed
    598 	       - if file is missing or differs in other view, it's replaced
    599 	       - file pairs are defined by matching relative paths
    600 	      File removal obeys 'trash' option.  When the option is enabled,
    601 	      the operation can be undone/redone (although results won't be
    602 	      visible automatically).
    603 	      Unlike in Vim, this operation is performed on a single line
    604 	      rather than a set of adjacent changes.
    605 
    606        do     same as dp, but applies changes in the opposite direction.
    607 
    608        v or V enter visual mode, clears current selection.
    609 
    610        [count]Ctrl-A
    611 	      increment first number in file name by [count] (1 by default).
    612 
    613        [count]Ctrl-X
    614 	      decrement first number in file name by [count] (1 by default).
    615 
    616        ZQ     same as :quit!.
    617 
    618        ZZ     same as :quit.
    619 
    620        .      repeat last command-line command (not normal mode command) of
    621 	      this session (does nothing right after startup or :restart
    622 	      command).	 The command doesn't depend on command-line history
    623 	      and can be used with completely disabled history.
    624 
    625        (      go to previous group.  Groups are defined by primary sorting
    626 	      key.  For name and iname members of each group have same first
    627 	      letter, for all other sorting keys vifm uses size, uid, ...
    628 
    629        )      go to next group.	 See ( key description above.
    630 
    631        {      speeds up navigation to closest previous entry of the opposite
    632 	      type by moving to the first file backwards when cursor is on a
    633 	      directory and to the first directory backwards when cursor is on
    634 	      a file.  This is essentially a special case of ( that is locked
    635 	      on "dirs".
    636 
    637        }      same as {, but in forward direction.
    638 
    639        [c     go to previous mismatched entry in directory comparison view or
    640 	      do nothing.
    641 
    642        ]c     go to next mismatched entry in directory comparison view or do
    643 	      nothing.
    644 
    645        [d     go to previous directory entry or do nothing.
    646 
    647        ]d     go to next directory entry or do nothing.
    648 
    649        [r     same as :siblprev.
    650 
    651        ]r     same as :siblnext.
    652 
    653        [R     same as :siblprev!.
    654 
    655        ]R     same as :siblnext!.
    656 
    657        [s     go to previous selected entry or do nothing.
    658 
    659        ]s     go to next selected entry or do nothing.
    660 
    661        [z     go to first sibling of current entry.
    662 
    663        ]z     go to last sibling of current entry.
    664 
    665        zj     go to next directory sibling of current entry or do nothing.
    666 
    667        zk     go to previous directory sibling of current entry or do nothing.
    668 
    669 Using Count
    670        You can use count with commands like yy.
    671 
    672        [count]yy
    673 	      yank count files starting from current cursor position downward.
    674 
    675        Or you can use count with motions passed to y, d or D.
    676 
    677        d[count]j
    678 	      delete (count + 1) files starting from current cursor position
    679 	      upward.
    680 
    681 Registers
    682        vifm supports multiple registers for temporary storing list of yanked
    683        or deleted files.
    684 
    685        Registers should be specified by hitting double quote key followed by a
    686        register name.  Count is specified after register name.	By default
    687        commands use unnamed register, which has double quote as its name.
    688 
    689        Though all commands accept registers, most of commands ignores them
    690        (for example H or Ctrl-U).  Other commands can fill register or append
    691        new files to it.
    692 
    693        Presently vifm supports ", _, a-z and A-Z characters as register names.
    694 
    695        As mentioned above " is unnamed register and has special meaning of the
    696        default register.  Every time when you use named registers (a-z and A-
    697        Z) unnamed register is updated to contain same list of files as the
    698        last used register.
    699 
    700        _ is black hole register.  It can be used for writing, but its list is
    701        always empty.
    702 
    703        Registers with names from a to z and from A to Z are named ones.
    704        Lowercase registers are cleared before adding new files, while
    705        uppercase aren't and should be used to append new files to the existing
    706        file list of appropriate lowercase register (A for a, B for b, ...).
    707 
    708        Registers can be changed on :empty command if they contain files under
    709        trash directory (see "Trash directory" section below).
    710 
    711        Registers do not contain one file more than once.
    712 
    713        Example:
    714 
    715 	 "a2yy
    716 
    717        puts names of two files to register a (and to the unnamed register),
    718 
    719 	 "Ad
    720 
    721        removes one file and append its name to register a (and to the unnamed
    722        register),
    723 
    724 	 p or "ap or "Ap
    725 
    726        inserts previously yanked and deleted files into current directory.
    727 
    728 Selectors
    729        y, d, D, !, gu and gU commands accept selectors.	 You can combine them
    730        with any of selectors below to quickly remove or yank several files.
    731 
    732        Most of selectors are like vi motions: j, k, gg, G, H, L, M, %, f, F,
    733        ;, comma, ', ^, 0 and $.	 But there are some additional ones.
    734 
    735        a      all files in current view.
    736 
    737        s      selected files.
    738 
    739        S      all files except selected.
    740 
    741        Examples:
    742 
    743 	 - dj - delete file under cursor and one below;
    744 
    745 	 - d2j - delete file under cursor and two below;
    746 
    747 	 - y6gg - yank all files from cursor position to 6th file in the list.
    748 
    749        When you pass a count to whole command and its selector they are
    750        multiplied. So:
    751 
    752 	 - 2d2j - delete file under cursor and four below;
    753 
    754 	 - 2dj - delete file under cursor and two below;
    755 
    756 	 - 2y6gg - yank all files from cursor position to 12th file in the
    757 	   list.
    758 
    759 Visual Mode
    760        Visual mode has to generic operating submodes:
    761 
    762 	 - plain selection as it is in Vim;
    763 
    764 	 - selection editing submode.
    765 
    766        Both modes select files in range from cursor position at which visual
    767        mode was entered to current cursor position (let's call it "selection
    768        region").  Each of two borders can be adjusted by swapping them via "o"
    769        or "O" keys and updating cursor position with regular cursor motion
    770        keys.  Obviously, once initial cursor position is altered this way,
    771        real start position becomes unavailable.
    772 
    773        Plain Vim-like visual mode starts with cleared selection, which is not
    774        restored on rejecting selection ("Escape", "Ctrl-C", "v", "V").
    775        Contrary to it, selection editing doesn't clear previously selected
    776        files and restores them after reject.  Accepting selection by
    777        performing an operation on selected items (e.g. yanking them via "y")
    778        moves cursor to the top of current selection region (not to the top
    779        most selected file of the view).
    780 
    781        In turn, selection editing supports three types of editing (look at
    782        statusbar to know which one is currently active):
    783 
    784 	 - append - amend selection by selecting elements in selection region;
    785 
    786 	 - remove - amend selection by deselecting elements in selection
    787 	   region;
    788 
    789 	 - invert - amend selection by inverting selection of elements in
    790 	   selection region.
    791 
    792        No matter how you activate selection editing it starts in "append".
    793        One can switch type of operation (in the order given above) via "Ctrl-
    794        G" key.
    795 
    796        Almost all normal mode keys work in visual mode, but instead of
    797        accepting selectors they operate on selected items.
    798 
    799        Enter  save selection and go back to normal mode not moving cursor.
    800 
    801        av     leave visual mode if in amending mode (restores previous
    802 	      selection), otherwise switch to amending selection mode.
    803 
    804        gv     restore previous visual selection.
    805 
    806        v, V, Ctrl-C or Escape
    807 	      leave visual mode if not in amending mode, otherwise switch to
    808 	      normal visual selection.
    809 
    810        Ctrl-G switch type of amending by round robin scheme: append -> remove
    811 	      -> invert.
    812 
    813        :      enter command line mode.	Selection is cleared on leaving the
    814 	      mode.
    815 
    816        o      switch active selection bound.
    817 
    818        O      switch active selection bound.
    819 
    820        gu, u  make names of selected files lowercase.
    821 
    822        gU, U  make names of selected files uppercase.
    823 
    824 View Mode
    825        This mode tries to imitate the less program.  List of builtin shortcuts
    826        can be found below.  Shortcuts can be customized using :qmap, :qnoremap
    827        and :qunmap command-line commands.
    828 
    829        Shift-Tab, Tab, q, Q, ZZ
    830 	      return to normal mode.
    831 
    832        [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter
    833 	      scroll forward one line (or [count] lines).
    834 
    835        [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P
    836 	      scroll backward one line (or [count] lines).
    837 
    838        [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space
    839 	      scroll forward one window (or [count] lines).
    840 
    841        [count]b, [count]Ctrl-B, [count]Alt-V
    842 	      scroll backward one window (or [count] lines).
    843 
    844        [count]z
    845 	      scroll forward one window (and set window to [count]).
    846 
    847        [count]w
    848 	      scroll backward one window (and set window to [count]).
    849 
    850        [count]Alt-Space
    851 	      scroll forward one window, but don't stop at end-of-file.
    852 
    853        [count]d, [count]Ctrl-D
    854 	      scroll forward one half-window (and set half-window to [count]).
    855 
    856        [count]u, [count]Ctrl-U
    857 	      scroll backward one half-window (and set half-window to
    858 	      [count]).
    859 
    860        r, Ctrl-R, Ctrl-L
    861 	      repaint screen.
    862 
    863        R      reload view preserving scroll position.
    864 
    865        F      toggle automatic forwarding.  Roughly equivalent to periodic
    866 	      file reload and scrolling to the bottom.	The behaviour is
    867 	      similar to `tail -F` or F key in less.
    868 
    869        [count]/pattern
    870 	      search forward for ([count]-th) matching line.
    871 
    872        [count]?pattern
    873 	      search backward for ([count]-th) matching line.
    874 
    875        [count]n
    876 	      repeat previous search (for [count]-th occurrence).
    877 
    878        [count]N
    879 	      repeat previous search in reverse direction (for [count]-th
    880 	      occurrence).
    881 
    882        [count]g, [count]<, [count]Alt-<
    883 	      scroll to the first line of the file (or line [count]).
    884 
    885        [count]G, [count]>, [count]Alt->
    886 	      scroll to the last line of the file (or line [count]).
    887 
    888        [count]p, [count]%
    889 	      scroll to the beginning of the file (or N percent into file).
    890 
    891        v      invoke an editor to edit the current file being viewed.  The
    892 	      command for editing is taken from the 'vicmd'/'vixcmd' option
    893 	      value and extended with middle line number prepended by a plus
    894 	      sign and name of the current file.
    895 
    896        All "Ctrl-W x" keys work the same was as in Normal mode.	 Active mode
    897        is automatically changed on navigating among windows.  When less-like
    898        mode activated on file preview is left using one by "Ctrl-W x" keys,
    899        its state is stored until another file is displayed using preview (it's
    900        possible to leave the mode, hide preview pane, do something else, then
    901        get back to the file and show preview pane again with previously stored
    902        state in it).
    903 
    904 Command line Mode
    905        These keys are available in all submodes of the command line mode:
    906        command, search, prompt and filtering.
    907 
    908        Down, Up, Left, Right, Home, End and Delete are extended keys and they
    909        are not available if vifm is compiled with --disable-extended-keys
    910        option.
    911 
    912        Esc, Ctrl-C
    913 	      leave command line mode, cancels input.  Cancelled input is
    914 	      saved into appropriate history and can be recalled later.
    915 
    916        Ctrl-M, Enter
    917 	      execute command and leave command line mode.
    918 
    919        Ctrl-I, Tab
    920 	      complete command or its argument.
    921 
    922        Shift-Tab
    923 	      complete in reverse order.
    924 
    925        Ctrl-_ stop completion and return original input.
    926 
    927        Ctrl-B, Left
    928 	      move cursor to the left.
    929 
    930        Ctrl-F, Right
    931 	      move cursor to the right.
    932 
    933        Ctrl-A, Home
    934 	      go to line beginning.
    935 
    936        Ctrl-E, End
    937 	      go to line end.
    938 
    939        Alt-B  go to the beginning of previous word.
    940 
    941        Alt-F  go to the end of next word.
    942 
    943        Ctrl-U remove characters from cursor position till the beginning of
    944 	      line.
    945 
    946        Ctrl-K remove characters from cursor position till the end of line.
    947 
    948        Ctrl-H, Backspace
    949 	      remove character before the cursor.
    950 
    951        Ctrl-D, Delete
    952 	      remove character under the cursor.
    953 
    954        Ctrl-W remove characters from cursor position till the beginning of
    955 	      previous word.
    956 
    957        Alt-D  remove characters from cursor position till the beginning of
    958 	      next word.
    959 
    960        Ctrl-T swap the order of current and previous character and move cursor
    961 	      forward or, if cursor past the end of line, swap the order of
    962 	      two last characters in the line.
    963 
    964        Alt-.  insert last part of previous command to current cursor position.
    965 	      Each next call will insert last part of older command.
    966 
    967        Ctrl-G edit command-line content in external editor.  See "Command line
    968 	      editing" section for details.
    969 
    970        Ctrl-N recall more recent command-line from history.
    971 
    972        Ctrl-P recall older command-line from history.
    973 
    974        Up     recall more recent command-line from history, that begins as the
    975 	      current command-line.
    976 
    977        Down   recall older command-line from history, that begins as the
    978 	      current command-line.
    979 
    980        Ctrl-] trigger abbreviation expansion.
    981 
    982 Pasting special values
    983        The shortcuts listed below insert specified values into current cursor
    984        position.  Last key of every shortcut references value that it inserts:
    985 	 - c - [c]urrent file
    986 	 - d - [d]irectory path
    987 	 - e - [e]xtension of a file name
    988 	 - r - [r]oot part of a file name
    989 	 - t - [t]ail part of directory path
    990 
    991 	 - a - [a]utomatic filter
    992 	 - m - [m]anual filter
    993 	 - = - local filter, which is bound to "=" in normal mode
    994 
    995        Values related to filelist in current pane are available through Ctrl-X
    996        prefix, while values from the other pane have doubled Ctrl-X key as
    997        their prefix (doubled Ctrl-X is presumably easier to type than
    998        uppercase letters; it's still easy to remap the keys to correspond to
    999        names of similar macros).
   1000 
   1001        Ctrl-X c
   1002 	      name of the current file of the active pane.
   1003 
   1004        Ctrl-X d
   1005 	      path to the current directory of the active pane.
   1006 
   1007        Ctrl-X e
   1008 	      extension of the current file of the active pane.
   1009 
   1010        Ctrl-X r
   1011 	      name root of current file of the active pane.
   1012 
   1013        Ctrl-X t
   1014 	      the last component of path to the current directory of the
   1015 	      active pane.
   1016 
   1017        Ctrl-X Ctrl-X c
   1018 	      name of the current file of the inactive pane.
   1019 
   1020        Ctrl-X Ctrl-X d
   1021 	      path to the current directory of the inactive pane.
   1022 
   1023        Ctrl-X Ctrl-X e
   1024 	      extension of the current file of the inactive pane.
   1025 
   1026        Ctrl-X Ctrl-X r
   1027 	      name root of current file of the inactive pane.
   1028 
   1029        Ctrl-X Ctrl-X t
   1030 	      the last component of path to the current directory of the
   1031 	      inactive pane.
   1032 
   1033 
   1034        Ctrl-X a
   1035 	      value of automatic filter of the active pane.
   1036 
   1037        Ctrl-X m
   1038 	      value of manual filter of the active pane.
   1039 
   1040        Ctrl-X =
   1041 	      value of local filter of the active pane.
   1042 
   1043 
   1044        Ctrl-X /
   1045 	      last pattern from search history.
   1046 
   1047 Command line editing
   1048        vifm provides a facility to edit several kinds of data, that is usually
   1049        edited in command-line mode, in external editor (using command
   1050        specified by 'vicmd' or 'vixcmd' option).  This has at least two
   1051        advantages over built-in command-line mode:
   1052 	 - one can use full power of Vim to edit text;
   1053 	 - finding and reusing history entries becomes possible.
   1054 
   1055        The facility is supported by four input submodes of the command-line:
   1056 	 - command;
   1057 	 - forward search;
   1058 	 - backward search;
   1059 	 - file rename (see description of cw and cW normal mode keys).
   1060 
   1061        Editing command-line using external editor is activated by the Ctrl-G
   1062        shortcut.  It's also possible to do almost the same from Normal and
   1063        Visual modes using q:, q/ and q? commands.
   1064 
   1065        Temporary file created for the purpose of editing the line has the
   1066        following structure:
   1067 
   1068 	 1. First line, which is either empty or contains text already entered
   1069 	    in command-line.
   1070 
   1071 	 2. 2nd and all other lines with history items starting with the most
   1072 	    recent one.	 Altering this lines in any way won't change history
   1073 	    items stored by vifm.
   1074 
   1075        After editing application is finished the first line of the file is
   1076        taken as the result of operation, when the application returns zero
   1077        exit code.  If the application returns an error (see :cquit command in
   1078        Vim), all the edits made to the file are ignored, but the initial value
   1079        of the first line is saved in appropriate history.
   1080 
   1081 More Mode
   1082        This is the mode that appears when status bar content is so big that it
   1083        doesn't fit on the screen.  One can identify the mode by "-- More --"
   1084        message at the bottom.
   1085 
   1086        The following keys are handled in this mode:
   1087 
   1088 
   1089        Enter, Ctrl-J, j or Down
   1090 	      scroll one line down.
   1091 
   1092        Backspace, k or Up
   1093 	      scroll one line up.
   1094 
   1095 
   1096        d      scroll one page (half of a screen) down.
   1097 
   1098        u      scroll one page (half of a screen) up.
   1099 
   1100 
   1101        Space, f or PageDown
   1102 	      scroll down a screen.
   1103 
   1104        b or PageUp
   1105 	      scroll up a screen.
   1106 
   1107 
   1108        G      scroll to the bottom.
   1109 
   1110        g      scroll to the top.
   1111 
   1112 
   1113        q, Escape or Ctrl-C
   1114 	      quit the mode.
   1115 
   1116        :      switch to command-line mode.
   1117 
   1118 Commands
   1119        Commands are executed with :command_name<Enter>
   1120 
   1121        Commented out lines should start with the double quote symbol ("),
   1122        which may be preceded by whitespace characters intermixed with colons.
   1123        Inline comments can be added at the end of the line after double quote
   1124        symbol, only last line of a multi-line command can contain such
   1125        comment.	 Not all commands support inline comments as their syntax
   1126        conflicts with names of registers and fields where double quotes are
   1127        allowed.
   1128 
   1129        Most of the commands have two forms: complete and the short one.
   1130        Example:
   1131 
   1132 	 :noh[lsearch]
   1133 
   1134        This means the complete command is nohlsearch, and the short one is
   1135        noh.
   1136 
   1137        Most of command-line commands completely reset selection in the current
   1138        view.  However, there are several exceptions:
   1139 
   1140 	 - `:invert s` most likely leaves some files selected;
   1141 
   1142 	 - :normal command (when it doesn't leave command-line mode);
   1143 
   1144 	 - :if and :else commands don't affect selection on successful
   1145 	   execution.
   1146 
   1147        '|' can be used to separate commands, so you can give multiple commands
   1148        in one line.  If you want to use '|' in an argument, precede it with
   1149        '\'.
   1150 
   1151        These commands see '|' as part of their arguments even when it's
   1152        escaped:
   1153 
   1154 	   :[range]!
   1155 	   :autocmd
   1156 	   :cabbrev
   1157 	   :cmap
   1158 	   :cnoreabbrev
   1159 	   :cnoremap
   1160 	   :command
   1161 	   :dmap
   1162 	   :dnoremap
   1163 	   :filetype
   1164 	   :fileviewer
   1165 	   :filextype
   1166 	   :map
   1167 	   :mmap
   1168 	   :mnoremap
   1169 	   :nmap
   1170 	   :nnoremap
   1171 	   :noremap
   1172 	   :normal
   1173 	   :qmap
   1174 	   :qnoremap
   1175 	   :vmap
   1176 	   :vnoremap
   1177 	   :wincmd
   1178 	   :windo
   1179 	   :winrun
   1180 
   1181        To be able to use another command after one of these, wrap it with the
   1182        :execute command.  An example:
   1183 
   1184 	 if filetype('.') == 'reg' | execute '!!echo regular file' | endif
   1185 
   1186        :[count]
   1187 
   1188        :number
   1189 	      move to the file number.
   1190 	      :12 would move to the 12th file in the list.
   1191 	      :0 move to the top of the list.
   1192 	      :$ move to the bottom of the list.
   1193 
   1194        :[count]command
   1195 	      The only builtin :[count]command are :[count]d[elete] and
   1196 	      :[count]y[ank].
   1197 
   1198        :d3    would delete three files starting at the current file position
   1199 	      moving down.
   1200 
   1201        :3d    would delete one file at the third line in the list.
   1202 
   1203        :command [args]
   1204 
   1205        :[range]!program
   1206 	      execute command via shell.  Accepts macros.
   1207 
   1208        :[range]!command &
   1209 
   1210        same as above, but the command is run in the background using vifm's
   1211        means.
   1212 
   1213        Programs that write to stdout like "ls" create an error message showing
   1214        partial output of the command.
   1215 
   1216        Note the space before ampersand symbol, if you omit it, command will be
   1217        run in the background using job control of your shell.
   1218 
   1219        Accepts macros.
   1220 
   1221 						:!!
   1222 
   1223        :[range]!!command
   1224 	      same as :!, but pauses before returning.
   1225 
   1226        :!!    repeat the last command.
   1227 
   1228 						:alink
   1229 
   1230        :[range]alink[!?]
   1231 	      create absolute symbolic links to files in directory of inactive
   1232 	      view.  With "?" prompts for destination file names in an editor.
   1233 	      "!" forces overwrite.
   1234 
   1235        :[range]alink[!] path
   1236 	      create absolute symbolic links to files in directory specified
   1237 	      by the path (absolute or relative to directory of inactive
   1238 	      view).
   1239 
   1240        :[range]alink[!] name1 name2...
   1241 	      create absolute symbolic links of files in directory of other
   1242 	      view giving each next link a corresponding name from the
   1243 	      argument list.
   1244 
   1245 						:apropos
   1246 
   1247        :apropos keyword...
   1248 	      create a menu of items returned by the apropos command.
   1249 	      Selecting an item in the menu opens corresponding man page.  By
   1250 	      default the command relies on the external "apropos" utility,
   1251 	      which can be customized by altering value of the 'aproposprg'
   1252 	      option.
   1253 
   1254 						:autocmd
   1255 
   1256        :au[tocmd] {event} {pat} {cmd}
   1257 	      register autocommand for the {event}, which can be:
   1258 		- DirEnter - performed on entering a directory
   1259 	      Event name is case insensitive.
   1260 
   1261 	      {pat} is a comma-separated list of modified globs patterns,
   1262 	      which can contain tilde or environment variables.	 All paths use
   1263 	      slash ('/') as directory separator.  The pattern can start with
   1264 	      a '!', which negates it.	Patterns that do not contain slashes
   1265 	      are matched against the last item of the path only (e.g. "dir"
   1266 	      in "/path/dir").	Literal comma can be entered by doubling it.
   1267 	      Two modifications to globs matching are as follows:
   1268 		- *  - never matches a slash (i.e., can signify single
   1269 	      directory level)
   1270 		- ** - matches any character (i.e., can match path of
   1271 	      arbitrary depth)
   1272 
   1273 	      {cmd} is a :command or several of them separated with '|'.
   1274 
   1275 	      Examples of patterns:
   1276 		- conf.d      - matches conf.d directory anywhere
   1277 		- *.d	      - matches directories ending with ".d" anywhere
   1278 		- **.git      - matches something.git, but not .git anywhere
   1279 		- **/.git/**  - matches /path/.git/objects, but not /path/.git
   1280 		- **/.git/**/ - matches /path/.git/ only (because of trailing
   1281 	      slash)
   1282 		- /etc/*      - matches /etc/conf.d/, /etc/X11, but not
   1283 	      /etc/X11/fs
   1284 		- /etc/**/*.d - matches /etc/conf.d, /etc/X11/conf.d, etc.
   1285 		- /etc/**/*   - matches /etc/ itself and any file below it
   1286 		- /etc/**/**  - matches /etc/ itself and any file below it
   1287 
   1288        :au[tocmd] [{event}] [{pat}]
   1289 	      list those autocommands that match given event-pattern
   1290 	      combination.
   1291 	      {event} and {pat} can be omitted to list all autocommands.  To
   1292 	      list any autocommands for specific pattern one can use *
   1293 	      placeholder in place of {event}.
   1294 
   1295        :au[tocmd]! [{event}] [{pat}]
   1296 	      remove autocommands that match given event-pattern combination.
   1297 	      Syntax is the same as for listing above.
   1298 
   1299        :apropos
   1300 	      repeat last :apropos command.
   1301 
   1302 						:bmark
   1303 
   1304        :bmark tag1 [tag2 [tag3...]]
   1305 	      bookmark current directory with specified tags.
   1306 
   1307        :bmark! path tag1 [tag2 [tag3...]]
   1308 	      same as :bmark, but allows bookmarking specific path instead of
   1309 	      current directory.  This is for use in vifmrc and for
   1310 	      bookmarking files.
   1311 
   1312 	      Path can contain macros that expand to single path (%c, %C, %d,
   1313 	      %D) or those that can expand to multiple paths, but contain only
   1314 	      one (%f, %F, %rx).  The latter is done for convenience on using
   1315 	      the command interactively.  Complex macros that include spaces
   1316 	      (e.g. "%c:gs/ /_") should be escaped.
   1317 
   1318 						:bmarks
   1319 
   1320        :bmarks
   1321 	      display all bookmarks in a menu.
   1322 
   1323        :bmarks [tag1 [tag2...]]
   1324 	      display menu of bookmarks that include all of the specified
   1325 	      tags.
   1326 
   1327 						:bmgo
   1328 
   1329        :bmgo [tag1 [tag2...]]
   1330 	      when there are more than one match acts exactly like :bmarks,
   1331 	      otherwise navigates to single match immediately (and fails if
   1332 	      there is no match).
   1333 
   1334 						:cabbrev
   1335 
   1336        :ca[bbrev]
   1337 	      display menu of command-line mode abbreviations.
   1338 
   1339        :ca[bbrev] lhs-prefix
   1340 	      display command-line mode abbreviations which left-hand side
   1341 	      starts with specified prefix.
   1342 
   1343        :ca[bbrev] lhs rhs
   1344 	      register new or overwrites existing abbreviation for command-
   1345 	      line mode.  rhs can contain spaces and any special sequences
   1346 	      accepted in rhs of mappings (see "Mappings" section below).
   1347 	      Abbreviations are expanded non-recursively.
   1348 
   1349 						:cnoreabbrev
   1350 
   1351        :cnorea[bbrev]
   1352 	      display menu of command-line mode abbreviations.
   1353 
   1354        :cnorea[bbrev] lhs-prefix
   1355 	      display command-line mode abbreviations which left-hand side
   1356 	      starts with specified prefix.
   1357 
   1358        :cnorea[bbrev] lhs rhs
   1359 	      same as :cabbrev, but mappings in rhs are ignored during
   1360 	      expansion.
   1361 
   1362 						:cd
   1363 
   1364        :cd or :cd ~ or :cd $HOME
   1365 	      change to home directory.
   1366 
   1367        :cd -  go to the last visited directory.
   1368 
   1369        :cd ~/dir
   1370 	      change directory to ~/dir.
   1371 
   1372        :cd /curr/dir /other/dir
   1373 	      change directory of the current pane to /curr/dir and directory
   1374 	      of the other pane to /other/dir.	Relative paths are assumed to
   1375 	      be relative to directory of current view.	 Command won't fail if
   1376 	      one of directories is invalid.  All forms of the command accept
   1377 	      macros.
   1378 
   1379        :cd! /dir
   1380 	      same as :cd /dir /dir.
   1381 
   1382 						:change
   1383 
   1384        :c[hange]
   1385 	      create a menu window to alter a files properties.
   1386 
   1387 						:chmod
   1388 
   1389        :[range]chmod
   1390 	      display file attributes (permission on *nix and properties on
   1391 	      Windows) change dialog.
   1392 
   1393        :[range]chmod[!] arg...
   1394 	      only for *nix
   1395 	      change permissions for files.  See `man 1 chmod` for arg format.
   1396 	      "!" means set permissions recursively.
   1397 
   1398 						:chown
   1399 
   1400        :[range]chown
   1401 	      only for *nix
   1402 	      same as co key in normal mode.
   1403 
   1404        :[range]chown [user][:][group]
   1405 	      only for *nix
   1406 	      change owner and/or group of files.  Operates on directories
   1407 	      recursively.
   1408 
   1409 						:clone
   1410 
   1411        :[range]clone[!?]
   1412 	      clones files in current directory.  With "?" vifm will open vi
   1413 	      to edit file names.  "!" forces overwrite.  Macros are expanded.
   1414 
   1415        :[range]clone[!] path
   1416 	      clones files to directory specified with the path (absolute or
   1417 	      relative to current directory).  "!" forces overwrite.  Macros
   1418 	      are expanded.
   1419 
   1420        :[range]clone[!] name1 name2...
   1421 	      clones files in current directory giving each next clone a
   1422 	      corresponding name from the argument list.  "!" forces
   1423 	      overwrite.  Macros are expanded.
   1424 
   1425 						:colorscheme
   1426 
   1427        :colo[rscheme]?
   1428 	      print current color scheme name on the status bar.
   1429 
   1430        :colo[rscheme]
   1431 	      display a menu with a list of available color schemes.  You can
   1432 	      choose primary color scheme here.	 It is used for view if no
   1433 	      directory specific colorscheme fits current path.	 It's also
   1434 	      used to set border color (except view titles) and colors in
   1435 	      menus and dialogs.
   1436 
   1437        :colo[rscheme] color_scheme_name
   1438 	      change primary color scheme to color_scheme_name.	 In case of
   1439 	      errors (e.g. some colors are not supported by terminal) either
   1440 	      nothing is changed or color scheme is reset to builtin colors to
   1441 	      ensure that TUI is left in a usable state.
   1442 
   1443        :colo[rscheme] color_scheme_name directory
   1444 	      associate directory with the color scheme.  The directory
   1445 	      argument can be either absolute or relative path when
   1446 	      :colorscheme command is executed from command line, but
   1447 	      mandatory should be an absolute path when the command is
   1448 	      executed in scripts loaded at startup (until vifm is completely
   1449 	      loaded).
   1450 
   1451 						:comclear
   1452 
   1453        :comc[lear]
   1454 	      remove all user defined commands.
   1455 
   1456 						:command
   1457 
   1458        :com[mand]
   1459 	      display a menu of user commands.
   1460 
   1461        :com[mand] beginning
   1462 	      display user defined commands that start with the beginning.
   1463 
   1464        :com[mand] name action
   1465 	      set a new user command.
   1466 	      Trying to use a reserved command name will result in an error
   1467 	      message.
   1468 	      Use :com[mand]! to overwrite a previously set command.
   1469 	      Unlike vim user commands do not have to start with a capital
   1470 	      letter.  User commands are run in a shell by default.  To run a
   1471 	      command in the background you must set it as a background
   1472 	      command with & at the end of the commands action (:com rm rm %f
   1473 	      &).  Command name cannot contain numbers or special symbols
   1474 	      (except '?' and '!').
   1475 
   1476        :com[mand] name /pattern
   1477 	      set search pattern.
   1478 
   1479        :com[mand] name =pattern
   1480 	      set local filter value.
   1481 
   1482        :com[mand] name filter{:filter args}
   1483 	      set file name filter (see :filter command description).  For
   1484 	      example:
   1485 
   1486 		" display only audio files
   1487 		:command onlyaudio filter/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
   1488 		" display everything except audio files
   1489 		:command noaudio filter!/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
   1490 
   1491        :com[mand] cmd :commands
   1492 	      set kind of an alias for internal command (like in a shell).
   1493 	      Passes range given to alias to an aliased command, so running
   1494 	      :%cp after
   1495 		:command cp :copy %a
   1496 	      equals
   1497 		:%copy
   1498 
   1499 						:compare
   1500 
   1501        :compare [byname | bysize | bycontents | listall | listunique |
   1502        listdups | ofboth | ofone | groupids | grouppaths | skipempty]...
   1503 	      compare files in one or two views according the arguments.  The
   1504 	      default is "bycontents listall ofboth grouppaths".  See "Compare
   1505 	      views" section below for details.	 Tree structure is
   1506 	      incompatible with alternative representations, so values of
   1507 	      'lsview' and 'millerview' options are ignored.
   1508 
   1509 						:copen
   1510 
   1511        :cope[n]
   1512 	      opens menu with contents of the last displayed menu with
   1513 	      navigation to files by default, if any.
   1514 
   1515 						:copy
   1516 
   1517        :[range]co[py][!?][ &]
   1518 	      copy files to directory of other view.  With "?" prompts for
   1519 	      destination file names in an editor.  "!" forces overwrite.
   1520 
   1521        :[range]co[py][!] path[ &]
   1522 	      copy files to directory specified with the path (absolute or
   1523 	      relative to directory of other view).  "!" forces overwrite.
   1524 
   1525        :[range]co[py][!] name1 name2...[ &]
   1526 	      copy files to directory of other view giving each next file a
   1527 	      corresponding name from the argument list.  "!" forces
   1528 	      overwrite.
   1529 
   1530 						:cquit
   1531 
   1532        :cq[uit][!]
   1533 	      same as :quit, but also aborts directory choosing via
   1534 	      --choose-dir (empties output file) and returns non-zero exit
   1535 	      code.
   1536 
   1537 						:cunabbrev
   1538 
   1539        :cuna[bbrev] lhs
   1540 	      unregister command-line mode abbreviation by its lhs.
   1541 
   1542        :cuna[bbrev] rhs
   1543 	      unregister command-line mode abbreviation by its rhs, so that
   1544 	      abbreviation could be removed even after expansion.
   1545 
   1546 						:delbmarks
   1547 
   1548        :delbmarks
   1549 	      remove bookmarks from current directory.
   1550 
   1551        :delbmarks tag1 [tag2 [tag3...]]
   1552 	      remove set of bookmarks that include all of the specified tags.
   1553 
   1554        :delbmarks!
   1555 	      remove all bookmarks.
   1556 
   1557        :delbmarks! path1 [path2 [path3...]]
   1558 	      remove bookmarks of listed paths.
   1559 
   1560 						:delcommand
   1561 
   1562        :delc[ommand] user_command
   1563 	      remove user defined command named user_command.
   1564 
   1565 						:delete
   1566 
   1567        :[range]d[elete][!][ &]
   1568 	      delete selected file or files.  "!" means complete removal
   1569 	      (omitting trash).
   1570 
   1571        :[range]d[elete][!] [reg] [count][ &]
   1572 	      delete selected or [count] files to the reg register.  "!" means
   1573 	      complete removal (omitting trash).
   1574 
   1575 						:delmarks
   1576 
   1577        :delm[arks]!
   1578 	      delete all marks.
   1579 
   1580        :delm[arks] marks ...
   1581 	      delete specified marks, each argument is treated as a set of
   1582 	      marks.
   1583 
   1584 						:display
   1585 
   1586        :di[splay]
   1587 	      display menu with registers content.
   1588 
   1589        :di[splay] list ...
   1590 	      display the contents of the numbered and named registers that
   1591 	      are mentioned in list (for example "az to display "", "a and "z
   1592 	      content).
   1593 
   1594 						:dirs
   1595 
   1596        :dirs  display directory stack.
   1597 
   1598 						:echo
   1599 
   1600        :ec[ho] [<expr>...]
   1601 	      evaluate each argument as an expression and output them
   1602 	      separated with a space.  See help on :let command for a
   1603 	      definition of <expr>.
   1604 
   1605 						:edit
   1606 
   1607        :[range]e[dit] [file...]
   1608 	      open selected or passed file(s) in editor.  Macros and
   1609 	      environment variables are expanded.
   1610 
   1611 						:else
   1612 
   1613        :el[se]
   1614 	      execute commands until next matching :endif if all other
   1615 	      conditions didn't match.	See also help on :if and :endif
   1616 	      commands.
   1617 
   1618 						:elseif
   1619 
   1620        :elsei[f] {expr1}
   1621 	      execute commands until next matching :elseif, :else or :endif if
   1622 	      conditions of previous :if and :elseif branches were evaluated
   1623 	      to zero.	See also help on :if and :endif commands.
   1624 
   1625 						:empty
   1626 
   1627        :empty permanently remove files from all existing non-empty trash
   1628 	      directories (see "Trash directory" section below).  Trash
   1629 	      directories which are specified via %r and/or %u also get
   1630 	      deleted completely.  Also remove all operations from undolist
   1631 	      that have no sense after :empty and remove all records about
   1632 	      files located inside directories from all registers.  Removal is
   1633 	      performed as background task with undetermined amount of work
   1634 	      and can be checked via :jobs menu.
   1635 
   1636 						:endif
   1637 
   1638        :en[dif]
   1639 	      end conditional block.  See also help on :if and :else commands.
   1640 
   1641 						:execute
   1642 
   1643        :exe[cute] [<expr>...]
   1644 	      evaluate each argument as an expression and join results
   1645 	      separated by a space to get a single string which is then
   1646 	      executed as a command-line command.  See help on :let command
   1647 	      for a definition of <expr>.
   1648 
   1649 						:exit
   1650 
   1651        :exi[t][!]
   1652 	      same as :quit.
   1653 
   1654 						:file
   1655 
   1656        :f[ile][ &]
   1657 	      display menu of programs set for the file type of the current
   1658 	      file.  " &" forces running associated program in background.
   1659 
   1660        :f[ile] arg[ &]
   1661 	      run associated command that begins with the arg skipping opening
   1662 	      menu.  " &" forces running associated program in background.
   1663 
   1664 						:filetype
   1665 
   1666        :filet[ype] pattern-list [{descr}]def_prog[ &],[{descr}]prog2[ &],...
   1667 	      associate given program list to each of the patterns.
   1668 	      Associated program (command) is used by handlers of l and Enter
   1669 	      keys (and also in the :file menu).  If you need to insert comma
   1670 	      into command just double it (",,").  Space followed by an
   1671 	      ampersand as two last characters of a command means running of
   1672 	      the command in the background.  Optional description can be
   1673 	      given to each command to ease understanding of what command will
   1674 	      do in the :file menu.  Vifm will try the rest of the programs
   1675 	      for an association when the default isn't found.	When program
   1676 	      entry doesn't contain any of vifm macros, name of current file
   1677 	      is appended as if program entry ended with %c macro on *nix and
   1678 	      %"c on Windows.  On Windows path to executables containing
   1679 	      spaces can (and should be for correct work with such paths) be
   1680 	      double quoted.  See "Patterns" section below for pattern
   1681 	      definition.  See also "Automatic FUSE mounts" section below.
   1682 	      Example for zip archives and several actions:
   1683 
   1684 		filetype *.zip,*.jar,*.war,*.ear
   1685 		       \ {Mount with fuse-zip}
   1686 		       \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
   1687 		       \ {View contents}
   1688 		       \ zip -sf %c | less,
   1689 		       \ {Extract here}
   1690 		       \ tar -xf %c,
   1691 
   1692 	      Note that on OS X when `open` is used to call an app, vifm is
   1693 	      unable to check whether that app is actually available.  So if
   1694 	      automatic skipping of programs that aren't there is desirable,
   1695 	      `open` should be replaced with an actual command.
   1696 
   1697        :filet[ype] filename
   1698 	      list (in menu mode) currently registered patterns that match
   1699 	      specified file name.  Same as ":filextype filename".
   1700 
   1701 						:filextype
   1702 
   1703        :filex[type] pattern-list [{ description }] def_program,program2,...
   1704 	      same as :filetype, but this command is ignored if not running in
   1705 	      X.  In X :filextype is equal to :filetype.  See "Patterns"
   1706 	      section below for pattern definition.  See also "Automatic FUSE
   1707 	      mounts" section below.
   1708 
   1709 	      For example, consider the following settings (the order might
   1710 	      seem strange, but it's for the demonstration purpose):
   1711 
   1712 		filetype *.html,*.htm
   1713 			\ {View in lynx}
   1714 			\ lynx
   1715 		filextype *.html,*.htm
   1716 			\ {Open with dwb}
   1717 			\ dwb %f %i &,
   1718 		filetype *.html,*.htm
   1719 			\ {View in links}
   1720 			\ links
   1721 		filextype *.html,*.htm
   1722 			\ {Open with firefox}
   1723 			\ firefox %f &,
   1724 			\ {Open with uzbl}
   1725 			\ uzbl-browser %f %i &,
   1726 
   1727 	      If you're using vifm inside a terminal emulator that is running
   1728 	      in graphical environment (when X is used on *nix; always on
   1729 	      Windows), vifm attempts to run application in this order:
   1730 
   1731 	      1. lynx
   1732 	      2. dwb
   1733 	      3. links
   1734 	      4. firefox
   1735 	      5. uzbl
   1736 
   1737 	      If there is no graphical environment (checked presence of
   1738 	      $DISPLAY environment variable on *nix; never happens on
   1739 	      Windows), the list will look like:
   1740 
   1741 	      1. lynx
   1742 	      2. links
   1743 
   1744 	      Just as if all :filextype commands were not there.
   1745 
   1746 	      The purpose of such differentiation is to allow comfortable use
   1747 	      of vifm with same settings in desktop environment/through remote
   1748 	      connection (SSH)/in native console.
   1749 
   1750 	      Note that on OS X $DISPLAY isn't defined unless you define it,
   1751 	      so :filextype should be used only if you set $DISPLAY in some
   1752 	      way.
   1753 
   1754        :filext[ype] filename
   1755 	      list (in menu mode) currently registered patterns that match
   1756 	      specified file name.  Same as ":filetype filename".
   1757 
   1758 						:fileviewer
   1759 
   1760        :filev[iewer] pattern-list command1,command2,...
   1761 	      register specified list of commands as viewers for each of the
   1762 	      patterns.	 Viewer is a command which output is captured and
   1763 	      displayed in one of the panes of vifm after pressing "e" or
   1764 	      running :view command.  When the command doesn't contain any of
   1765 	      vifm macros, name of current file is appended as if command
   1766 	      ended with %c macro.  Comma escaping and missing commands
   1767 	      processing rules as for :filetype apply to this command.	See
   1768 	      "Patterns" section below for pattern definition.
   1769 
   1770 	      Example for zip archives:
   1771 
   1772 		fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c, echo "No zip to preview:"
   1773 
   1774        :filev[iewer] filename
   1775 	      list (in menu mode) currently registered patterns that match
   1776 	      specified filename.
   1777 
   1778 						:filter
   1779 
   1780        :filter[!] {pattern}
   1781 	      filter files matching the pattern out of directory listings.
   1782 	      '!' controls state of filter inversion after updating filter
   1783 	      value (see also 'cpoptions' description).	 Filter is matched
   1784 	      case sensitively on *nix and case insensitively on Windows.  See
   1785 	      "File Filters" and "Patterns" sections.
   1786 
   1787 	      Example:
   1788 
   1789 		" filter all files ending in .o from the filelist.
   1790 		:filter /.o$/
   1791 
   1792 
   1793        :filter[!] {empty-pattern}
   1794 	      same as above, but use last search pattern as pattern value.
   1795 
   1796 	      Example:
   1797 
   1798 		:filter //I
   1799 
   1800 
   1801        :filter
   1802 	      reset filter (set it to an empty string) and show all files.
   1803 
   1804        :filter!
   1805 	      same as :invert.
   1806 
   1807        :filter?
   1808 	      show information on local, name and auto filters.
   1809 
   1810 						:find
   1811 
   1812        :[range]fin[d] pattern
   1813 	      display results of find command in the menu.  Searches among
   1814 	      selected files if any.  Accepts macros.  By default the command
   1815 	      relies on the external "find" utility, which can be customized
   1816 	      by altering value of the 'findprg' option.
   1817 
   1818        :[range]fin[d] -opt...
   1819 	      same as :find above, but user defines all find arguments.
   1820 	      Searches among selected files if any.
   1821 
   1822        :[range]fin[d] path -opt...
   1823 	      same as :find above, but user defines all find arguments.
   1824 	      Ignores selection and range.
   1825 
   1826        :[range]fin[d]
   1827 	      repeat last :find command.
   1828 
   1829 						:finish
   1830 
   1831        :fini[sh]
   1832 	      stop sourcing a script. Can only be used in a vifm script file.
   1833 	      This is a quick way to skip the rest of the file.
   1834 
   1835 						:goto
   1836 
   1837        :go[to]
   1838 	      change directory if necessary and put specified path under the
   1839 	      cursor.  The path should be existing non-root path.  Macros and
   1840 	      environment variables are expanded.
   1841 
   1842 						:grep
   1843 
   1844        :[range]gr[ep][!] pattern
   1845 	      will show results of grep command in the menu.  Add "!" to
   1846 	      request inversion of search (look for lines that do not match
   1847 	      pattern).	 Searches among selected files if any and no range
   1848 	      given.  Ignores binary files by default.	By default the command
   1849 	      relies on the external "grep" utility, which can be customized
   1850 	      by altering value of the 'grepprg' option.
   1851 
   1852        :[range]gr[ep][!] -opt...
   1853 	      same as :grep above, but user defines all grep arguments, which
   1854 	      are not escaped.	Searches among selected files if any.
   1855 
   1856        :[range]gr[ep][!]
   1857 	      repeats last :grep command.  "!" of this command inverts "!" in
   1858 	      repeated command.
   1859 
   1860 						:help
   1861 
   1862        :h[elp]
   1863 	      show the help file.
   1864 
   1865        :h[elp] argument
   1866 	      is the same as using ':h argument' in vim.  Use vifm-<something>
   1867 	      to get help on vifm (tab completion works).  This form of the
   1868 	      command doesn't work when 'vimhelp' option is off.
   1869 
   1870 						:highlight
   1871 
   1872        :hi[ghlight]
   1873 	      display information about all highlight groups active at the
   1874 	      moment.
   1875 
   1876        :hi[ghlight] clear
   1877 	      reset all highlighting to builtin defaults and removed all
   1878 	      filename-specific rules.
   1879 
   1880        :hi[ghlight] clear ( {pat1,pat2,...} | /regexp/ )
   1881 	      removes specified rule.
   1882 
   1883        :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/ )
   1884 	      display information on given highlight group or file name
   1885 	      pattern of color scheme used in the active view.
   1886 
   1887        :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/[iI] )
   1888        cterm=style | ctermfg=color | ctermbg=color
   1889 	      set style (cterm), foreground (ctermfg) or/and background
   1890 	      (ctermbg) parameters of highlight group or file name pattern for
   1891 	      color scheme used in the active view.
   1892 
   1893        All style values as well as color names are case insensitive.
   1894 
   1895        Available style values (some of them can be combined):
   1896 	- bold
   1897 	- underline
   1898 	- reverse or inverse
   1899 	- standout
   1900 	- italic (on unsupported systems becomes reverse)
   1901 	- none
   1902 
   1903        Available group-name values:
   1904 	- Win - color of all windows (views, dialogs, menus) and default color
   1905        for their content (e.g. regular files in views)
   1906 	- AuxWin - color of auxiliary areas of windows
   1907 	- Border - color of vertical parts of the border
   1908 	- TabLine - tab line color
   1909 	- TabLineSel - color of the tip of selected tab
   1910 	- TopLineSel - top line color of the current pane
   1911 	- TopLine - top line color of the other pane
   1912 	- CmdLine - the command line/status bar color
   1913 	- ErrorMsg - color of error messages in the status bar
   1914 	- StatusLine - color of the line above the status bar
   1915 	- JobLine - color of job line that appears above the status line
   1916 	- WildMenu - color of the wild menu items
   1917 	- SuggestBox - color of key suggestion box
   1918 	- CurrLine - line at cursor position in active view
   1919 	- OtherLine - line at cursor position in inactive view
   1920 	- Selected - color of selected files
   1921 	- Directory - color of directories
   1922 	- Link - color of symbolic links in the views
   1923 	- BrokenLink - color of broken symbolic links
   1924 	- Socket - color of sockets
   1925 	- Device - color of block and character devices
   1926 	- Executable - color of executable files
   1927 	- Fifo - color of fifo pipes
   1928 	- CmpMismatch - color of mismatched files in side-by-side comparison
   1929        by path
   1930 	- User1..User9 - 9 colors which can be used via %* 'statusline' macro
   1931 
   1932        Available colors:
   1933 	- -1 or default or none - default or transparent
   1934 	- black	  and lightblack
   1935 	- red	  and lightred
   1936 	- green	  and lightgreen
   1937 	- yellow  and lightyellow
   1938 	- blue	  and lightblue
   1939 	- magenta and lightmagenta
   1940 	- cyan	  and lightcyan
   1941 	- white	  and lightwhite
   1942 	- 0-255 - corresponding colors from 256-color palette
   1943 
   1944        Light versions of colors are regular colors with bold attribute set.
   1945        So order of arguments of :highlight command is important and it's
   1946        better to put "cterm" in front of others to prevent it from overwriting
   1947        attributes set by "ctermfg" or "ctermbg" arguments.
   1948 
   1949        For convenience of color scheme authors xterm-like names for 256 color
   1950        palette is also supported.  The mapping is taken from
   1951        http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim
   1952        Duplicated entries were altered by adding an underscore followed by
   1953        numerical suffix.
   1954 
   1955 	 0 Black		  86 Aquamarine1	   172 Orange3
   1956 	 1 Red			  87 DarkSlateGray2	   173 LightSalmon3_2
   1957 	 2 Green		  88 DarkRed_2		   174 LightPink3
   1958 	 3 Yellow		  89 DeepPink4_2	   175 Pink3
   1959 	 4 Blue			  90 DarkMagenta	   176 Plum3
   1960 	 5 Magenta		  91 DarkMagenta_2	   177 Violet
   1961 	 6 Cyan			  92 DarkViolet		   178 Gold3_2
   1962 	 7 White		  93 Purple		   179 LightGoldenrod3
   1963 	 8 LightBlack		  94 Orange4_2		   180 Tan
   1964 	 9 LightRed		  95 LightPink4		   181 MistyRose3
   1965 	10 LightGreen		  96 Plum4		   182 Thistle3
   1966 	11 LightYellow		  97 MediumPurple3	   183 Plum2
   1967 	12 LightBlue		  98 MediumPurple3_2	   184 Yellow3_2
   1968 	13 LightMagenta		  99 SlateBlue1		   185 Khaki3
   1969 	14 LightCyan		 100 Yellow4		   186 LightGoldenrod2
   1970 	15 LightWhite		 101 Wheat4		   187 LightYellow3
   1971 	16 Grey0		 102 Grey53		   188 Grey84
   1972 	17 NavyBlue		 103 LightSlateGrey	   189 LightSteelBlue1
   1973 	18 DarkBlue		 104 MediumPurple	   190 Yellow2
   1974 	19 Blue3		 105 LightSlateBlue	   191 DarkOliveGreen1
   1975 	20 Blue3_2		 106 Yellow4_2		   192
   1976        DarkOliveGreen1_2
   1977 	21 Blue1		 107 DarkOliveGreen3	   193 DarkSeaGreen1_2
   1978 	22 DarkGreen		 108 DarkSeaGreen	   194 Honeydew2
   1979 	23 DeepSkyBlue4		 109 LightSkyBlue3	   195 LightCyan1
   1980 	24 DeepSkyBlue4_2	 110 LightSkyBlue3_2	   196 Red1
   1981 	25 DeepSkyBlue4_3	 111 SkyBlue2		   197 DeepPink2
   1982 	26 DodgerBlue3		 112 Chartreuse2_2	   198 DeepPink1
   1983 	27 DodgerBlue2		 113 DarkOliveGreen3_2	   199 DeepPink1_2
   1984 	28 Green4		 114 PaleGreen3_2	   200 Magenta2_2
   1985 	29 SpringGreen4		 115 DarkSeaGreen3	   201 Magenta1
   1986 	30 Turquoise4		 116 DarkSlateGray3	   202 OrangeRed1
   1987 	31 DeepSkyBlue3		 117 SkyBlue1		   203 IndianRed1
   1988 	32 DeepSkyBlue3_2	 118 Chartreuse1	   204 IndianRed1_2
   1989 	33 DodgerBlue1		 119 LightGreen_2	   205 HotPink
   1990 	34 Green3		 120 LightGreen_3	   206 HotPink_2
   1991 	35 SpringGreen3		 121 PaleGreen1		   207 MediumOrchid1_2
   1992 	36 DarkCyan		 122 Aquamarine1_2	   208 DarkOrange
   1993 	37 LightSeaGreen	 123 DarkSlateGray1	   209 Salmon1
   1994 	38 DeepSkyBlue2		 124 Red3		   210 LightCoral
   1995 	39 DeepSkyBlue1		 125 DeepPink4_3	   211 PaleVioletRed1
   1996 	40 Green3_2		 126 MediumVioletRed	   212 Orchid2
   1997 	41 SpringGreen3_2	 127 Magenta3		   213 Orchid1
   1998 	42 SpringGreen2		 128 DarkViolet_2	   214 Orange1
   1999 	43 Cyan3		 129 Purple_2		   215 SandyBrown
   2000 	44 DarkTurquoise	 130 DarkOrange3	   216 LightSalmon1
   2001 	45 Turquoise2		 131 IndianRed		   217 LightPink1
   2002 	46 Green1		 132 HotPink3		   218 Pink1
   2003 	47 SpringGreen2_2	 133 MediumOrchid3	   219 Plum1
   2004 	48 SpringGreen1		 134 MediumOrchid	   220 Gold1
   2005 	49 MediumSpringGreen	 135 MediumPurple2	   221
   2006        LightGoldenrod2_2
   2007 	50 Cyan2		 136 DarkGoldenrod	   222
   2008        LightGoldenrod2_3
   2009 	51 Cyan1		 137 LightSalmon3	   223 NavajoWhite1
   2010 	52 DarkRed		 138 RosyBrown		   224 MistyRose1
   2011 	53 DeepPink4		 139 Grey63		   225 Thistle1
   2012 	54 Purple4		 140 MediumPurple2_2	   226 Yellow1
   2013 	55 Purple4_2		 141 MediumPurple1	   227 LightGoldenrod1
   2014 	56 Purple3		 142 Gold3		   228 Khaki1
   2015 	57 BlueViolet		 143 DarkKhaki		   229 Wheat1
   2016 	58 Orange4		 144 NavajoWhite3	   230 Cornsilk1
   2017 	59 Grey37		 145 Grey69		   231 Grey100
   2018 	60 MediumPurple4	 146 LightSteelBlue3	   232 Grey3
   2019 	61 SlateBlue3		 147 LightSteelBlue	   233 Grey7
   2020 	62 SlateBlue3_2		 148 Yellow3		   234 Grey11
   2021 	63 RoyalBlue1		 149 DarkOliveGreen3_3	   235 Grey15
   2022 	64 Chartreuse4		 150 DarkSeaGreen3_2	   236 Grey19
   2023 	65 DarkSeaGreen4	 151 DarkSeaGreen2	   237 Grey23
   2024 	66 PaleTurquoise4	 152 LightCyan3		   238 Grey27
   2025 	67 SteelBlue		 153 LightSkyBlue1	   239 Grey30
   2026 	68 SteelBlue3		 154 GreenYellow	   240 Grey35
   2027 	69 CornflowerBlue	 155 DarkOliveGreen2	   241 Grey39
   2028 	70 Chartreuse3		 156 PaleGreen1_2	   242 Grey42
   2029 	71 DarkSeaGreen4_2	 157 DarkSeaGreen2_2	   243 Grey46
   2030 	72 CadetBlue		 158 DarkSeaGreen1	   244 Grey50
   2031 	73 CadetBlue_2		 159 PaleTurquoise1	   245 Grey54
   2032 	74 SkyBlue3		 160 Red3_2		   246 Grey58
   2033 	75 SteelBlue1		 161 DeepPink3		   247 Grey62
   2034 	76 Chartreuse3_2	 162 DeepPink3_2	   248 Grey66
   2035 	77 PaleGreen3		 163 Magenta3_2		   249 Grey70
   2036 	78 SeaGreen3		 164 Magenta3_3		   250 Grey74
   2037 	79 Aquamarine3		 165 Magenta2		   251 Grey78
   2038 	80 MediumTurquoise	 166 DarkOrange3_2	   252 Grey82
   2039 	81 SteelBlue1_2		 167 IndianRed_2	   253 Grey85
   2040 	82 Chartreuse2		 168 HotPink3_2		   254 Grey89
   2041 	83 SeaGreen2		 169 HotPink2		   255 Grey93
   2042 	84 SeaGreen1		 170 Orchid
   2043 	85 SeaGreen1_2		 171 MediumOrchid1
   2044 
   2045        There are two colors (foreground and background) and only one bold
   2046        attribute.  Thus single bold attribute affects both colors when
   2047        "reverse" attribute is used in vifm run inside terminal emulator.  At
   2048        the same time linux native console can handle boldness of foreground
   2049        and background colors independently, but for consistency with terminal
   2050        emulators this is available only implicitly by using light versions of
   2051        colors.	This behaviour might be changed in the future.
   2052 
   2053        Although vifm supports 256 colors in a sense they are supported by UI
   2054        drawing library, whether you will be able to use all of them highly
   2055        depends on your terminal.  To set up terminal properly, make sure that
   2056        $TERM in the environment you run vifm is set to name of 256-color
   2057        terminal (on *nixes it can also be set via X resources), e.g.
   2058        xterm-256color.	One can find list of available terminal names by
   2059        listing /usr/lib/terminfo/.  Number of colors supported by terminal
   2060        with current settings can be checked via "tput colors" command.
   2061 
   2062        Here is the hierarchy of highlight groups, which you need to know for
   2063        using transparency:
   2064 	 JobLine
   2065 	 SuggestBox
   2066 	 StatusLine
   2067 	   WildMenu
   2068 	   User1..User9
   2069 	 Border
   2070 	 CmdLine
   2071 	   ErrorMsg
   2072 	 Win
   2073 	   AuxWin
   2074 	     File name specific highlights
   2075 	       Directory
   2076 	       Link
   2077 	       BrokenLink
   2078 	       Socket
   2079 	       Device
   2080 	       Fifo
   2081 	       Executable
   2082 		 Selected
   2083 		   CurrLine
   2084 		   OtherLine
   2085 	 TopLine
   2086 	   TopLineSel
   2087 	 TabLine
   2088 	   TabLineSel
   2089 
   2090        "none" means default terminal color for highlight groups at the first
   2091        level of the hierarchy and transparency for all others.
   2092 
   2093        Here file name specific highlights mean those configured via globs ({})
   2094        or regular expressions (//).  At most one of them is applied per file
   2095        entry, namely the first that matches file name, hence order of
   2096        :highlight commands might be important in certain cases.
   2097 
   2098 						:history
   2099 
   2100        :his[tory]
   2101 	      creates a pop-up menu of directories visited.
   2102 
   2103        :his[tory] x
   2104 	      x can be:
   2105 	      d[ir]	or . show directory history.
   2106 	      c[md]	or : show command line history.
   2107 	      s[earch]	or / show search history and search forward on l key.
   2108 	      f[search] or / show search history and search forward on l key.
   2109 	      b[search] or ? show search history and search backward on l key.
   2110 	      i[nput]	or @ show prompt history (e.g. on one file renaming).
   2111 	      fi[lter]	or = show filter history (see description of the "="
   2112 	      normal mode command).
   2113 
   2114 						:histnext
   2115 
   2116        :histnext
   2117 	      same as <c-i>.  The main use case for this command is to work
   2118 	      around the common pain point of <tab> and <c-i> being the same
   2119 	      ASCII character: one could alter the terminal emulator settings
   2120 	      to emit, for example, the `F1` keycode when Ctrl-I is pressed,
   2121 	      then `:noremap <f1> :histnext<cr>` in vifm, add "t" flag to the
   2122 	      'cpoptions', and thus have both <c-i> and <tab> working as
   2123 	      expected.
   2124 
   2125 						:histprev
   2126 
   2127        :histprev
   2128 	      same as <c-o>.
   2129 
   2130 						:if
   2131 
   2132        :if {expr1}
   2133 	      starts conditional block.	 Commands are executed until next
   2134 	      matching :elseif, :else or :endif command if {expr1} evaluates
   2135 	      to non-zero, otherwise they are ignored.	See also help on :else
   2136 	      and :endif commands.
   2137 
   2138 	      Example:
   2139 
   2140 		if $TERM == 'screen.linux'
   2141 		    highlight CurrLine ctermfg=lightwhite ctermbg=lightblack
   2142 		elseif $TERM == 'tmux'
   2143 		    highlight CurrLine cterm=reverse ctermfg=black ctermbg=white
   2144 		else
   2145 		    highlight CurrLine cterm=bold,reverse ctermfg=black ctermbg=white
   2146 		endif
   2147 
   2148 						:invert
   2149 
   2150        :invert [f]
   2151 	      invert file name filter.
   2152 
   2153        :invert? [f]
   2154 	      show current filter state.
   2155 
   2156        :invert s
   2157 	      invert selection.
   2158 
   2159        :invert o
   2160 	      invert sorting order of the primary sorting key.
   2161 
   2162        :invert? o
   2163 	      show sorting order of the primary sorting key.
   2164 
   2165 						:jobs
   2166 
   2167        :jobs  shows menu of current backgrounded processes.
   2168 
   2169 						:let
   2170 
   2171        :let $ENV_VAR = <expr>
   2172 	      sets environment variable.  Warning: setting environment
   2173 	      variable to an empty string on Windows removes it.
   2174 
   2175        :let $ENV_VAR .= <expr>
   2176 	      append value to environment variable.
   2177 
   2178        :let &[l:|g:]opt = <expr>
   2179 	      sets option value.
   2180 
   2181        :let &[l:|g:]opt .= <expr>
   2182 	      append value to string option.
   2183 
   2184        :let &[l:|g:]opt += <expr>
   2185 	      increasing option value, adding sub-values.
   2186 
   2187        :let &[l:|g:]opt -= <expr>
   2188 	      decreasing option value, removing sub-values.
   2189 
   2190        Where <expr> could be a single-quoted string, double-quoted string, an
   2191        environment variable, function call or a concatanation of any of them
   2192        in any order using the '.' operator.  Any whitespace is ignored.
   2193 
   2194 						:locate
   2195 
   2196        :locate filename
   2197 	      use "locate" command to create a menu of filenames.  Selecting a
   2198 	      file from the menu will reload the current file list in vifm to
   2199 	      show the selected file.  By default the command relies on the
   2200 	      external "locate" utility (it's assumed that its database is
   2201 	      already built), which can be customized by altering value of the
   2202 	      'locateprg' option.
   2203 
   2204        :locate
   2205 	      repeats last :locate command.
   2206 
   2207 						:ls
   2208 
   2209        :ls    lists windows of active terminal multiplexer (only when terminal
   2210 	      multiplexer is used).  This is achieved by issuing proper
   2211 	      command for active terminal multiplexer, thus the list is not
   2212 	      handled by vifm.
   2213 
   2214 						:lstrash
   2215 
   2216        :lstrash
   2217 	      displays a menu with list of files in trash.  Each element of
   2218 	      the list is original path of a deleted file, thus the list can
   2219 	      contain duplicates.
   2220 
   2221 						:mark
   2222 
   2223        :[range]ma[rk][?] x [/full/path] [filename]
   2224 	      Set mark x (a-zA-Z0-9) at /full/path and filename.  By default
   2225 	      current directory is being used.	If no filename was given and
   2226 	      /full/path is current directory then last file in [range] is
   2227 	      used.  Using of macros is allowed.  Question mark will stop
   2228 	      command from overwriting existing marks.
   2229 
   2230 						:marks
   2231 
   2232        :marks create a pop-up menu of marks.
   2233 
   2234        :marks list ...
   2235 	      display the contents of the marks that are mentioned in list.
   2236 
   2237 						:media
   2238 
   2239        :media only for *nix
   2240 	      display media management menu.  See also 'mediaprg' option.
   2241 
   2242 						:messages
   2243 
   2244        :mes[sages]
   2245 	      shows previously given messages (up to 50).
   2246 
   2247 						:mkdir
   2248 
   2249        :[line]mkdir[!] dir ...
   2250 	      create directories at specified paths.  The [line] can be used
   2251 	      to pick node in a tree-view.  "!" means make parent directories
   2252 	      as needed.  Macros are expanded.
   2253 
   2254 						:move
   2255 
   2256        :[range]m[ove][!?][ &]
   2257 	      move files to directory of other view.  With "?" prompts for
   2258 	      destination file names in an editor.  "!" forces overwrite.
   2259 
   2260        :[range]m[ove][!] path[ &]
   2261 	      move files to directory specified with the path (absolute or
   2262 	      relative to directory of other view).  "!" forces overwrite.
   2263 
   2264        :[range]m[ove][!] name1 name2...[ &]
   2265 	      move files to directory of other view giving each next file a
   2266 	      corresponding name from the argument list.  "!" forces
   2267 	      overwrite.
   2268 
   2269 						:nohlsearch
   2270 
   2271        :noh[lsearch]
   2272 	      clear selection in current pane.
   2273 
   2274 						:normal
   2275 
   2276        :norm[al][!] commands
   2277 	      execute normal mode commands.  If "!" is used, user defined
   2278 	      mappings are ignored.  Unfinished last command is aborted as if
   2279 	      <esc> or <c-c> was typed.	 A ":" should be completed as well.
   2280 	      Commands can't start with a space, so put a count of 1 (one)
   2281 	      before it.
   2282 
   2283 						:only
   2284 
   2285        :on[ly]
   2286 	      switch to a one window view.
   2287 
   2288 						:popd
   2289 
   2290        :popd  remove pane directories from stack.
   2291 
   2292 						:pushd
   2293 
   2294        :pushd[!] /curr/dir [/other/dir]
   2295 	      add pane directories to stack and process arguments like :cd
   2296 	      command.
   2297 
   2298        :pushd exchange the top two items of the directory stack.
   2299 
   2300 						:put
   2301 
   2302        :[line]pu[t][!] [reg] [ &]
   2303 	      puts files from specified register (" by default) into current
   2304 	      directory.  The [line] can be used to pick node in a tree-view.
   2305 	      "!" moves files "!" moves files from their original location
   2306 	      instead of copying them.	During this operation no confirmation
   2307 	      dialogs will be shown, all checks are performed beforehand.
   2308 
   2309 						:pwd
   2310 
   2311        :pw[d] show the present working directory.
   2312 
   2313 						:qall
   2314 
   2315        :qa[ll][!]
   2316 	      exit vifm (add ! to skip saving changes and checking for active
   2317 	      backgrounded commands).
   2318 
   2319 						:quit
   2320 
   2321        :q[uit][!]
   2322 	      if there is more than one tab, close the current one, otherwise
   2323 	      exit vifm (add ! to skip saving changes and checking for active
   2324 	      backgrounded commands).
   2325 
   2326 						:redraw
   2327 
   2328        :redr[aw]
   2329 	      redraw the screen immediately.
   2330 
   2331 						:registers
   2332 
   2333        :reg[isters]
   2334 	      display menu with registers content.
   2335 
   2336        :reg[isters] list ...
   2337 	      display the contents of the numbered and named registers that
   2338 	      are mentioned in list (for example "az to display "", "a and "z
   2339 	      content).
   2340 
   2341 						:regular
   2342 
   2343        :regular
   2344 
   2345        switch to regular view leaving custom view.
   2346 						       :rename
   2347 
   2348        :[range]rename[!]
   2349 	      rename files using vi to edit names. ! means go recursively
   2350 	      through directories.
   2351 
   2352        :[range]rename name1 name2...
   2353 	      rename each of selected files to a corresponding name.
   2354 
   2355 						:restart
   2356 
   2357        :restart
   2358 	      free a lot of things (histories, commands, etc.), reread
   2359 	      vifminfo and vifmrc files and run startup commands passed in the
   2360 	      argument list, thus losing all unsaved changes (e.g. recent
   2361 	      history or keys mapped in current session).
   2362 
   2363 						:restore
   2364 
   2365        :[range]restore
   2366 	      restore file from trash directory, doesn't work outside one of
   2367 	      trash directories.  See "Trash directory" section below.
   2368 
   2369 						:rlink
   2370 
   2371        :[range]rlink[!?]
   2372 	      create relative symbolic links to files in directory of other
   2373 	      view.  With "?" prompts for destination file names in an editor.
   2374 	      "!" forces overwrite.
   2375 
   2376        :[range]rlink[!] path
   2377 	      create relative symbolic links of files in directory specified
   2378 	      with the path (absolute or relative to directory of other view).
   2379 	      "!" forces overwrite.
   2380 
   2381        :[range]rlink[!] name1 name2...
   2382 	      create relative symbolic links of files in directory of other
   2383 	      view giving each next link a corresponding name from the
   2384 	      argument list.  "!" forces overwrite.
   2385 
   2386 						:screen
   2387 
   2388        :screen
   2389 	      toggle whether to use the terminal multiplexer or not.
   2390 	      A terminal multiplexer uses pseudo terminals to allow multiple
   2391 	      windows to be used in the console or in a single xterm.
   2392 	      Starting vifm from terminal multiplexer with appropriate support
   2393 	      turned on will cause vifm to open a new terminal multiplexer
   2394 	      window for each new file edited or program launched from vifm.
   2395 	      This requires screen version 3.9.9 or newer for the screen -X
   2396 	      argument or tmux (1.8 version or newer is recommended).
   2397 
   2398        :screen!
   2399 	      enable integration with terminal multiplexers.
   2400 
   2401        :screen?
   2402 	      display whether integration with terminal multiplexers is
   2403 	      enabled.
   2404 
   2405        Note: the command is called screen for historical reasons (when tmux
   2406        wasn't yet supported) and might be changed in future releases, or get
   2407        an alias.
   2408 
   2409 						:select
   2410 
   2411        :[range]select
   2412 	      select files in the given range (current file if no range is
   2413 	      given).
   2414 
   2415        :select {pattern}
   2416 	      select files that match specified pattern.  Possible {pattern}
   2417 	      forms are described in "Patterns" section below.	Trailing slash
   2418 	      for directories is taken into account, so `:select! */ | invert
   2419 	      s` selects only files.
   2420 
   2421        :select //[iI]
   2422 	      same as item above, but reuses last search pattern.
   2423 
   2424        :select !{external command}
   2425 	      select files from the list supplied by external command.	Files
   2426 	      are matched by full paths, relative paths are converted to
   2427 	      absolute ones beforehand.
   2428 
   2429        :[range]select! [{pattern}]
   2430 	      same as above, but resets previously selected items before
   2431 	      proceeding.
   2432 
   2433 						:set
   2434 
   2435        :se[t] display all options that differ from their default value.
   2436 
   2437        :se[t] all
   2438 	      display all options.
   2439 
   2440        :se[t] opt1=val1 opt2='val2' opt3="val3" ...
   2441 	      sets given options.  For local options both values are set.
   2442 	      You can use following syntax:
   2443 	       - for all options - option, option? and option&
   2444 	       - for boolean options - nooption, invoption and option!
   2445 	       - for integer options - option=x, option+=x and option-=x
   2446 	       - for string options - option=x and option+=x
   2447 	       - for string list options - option=x, option+=x and option-=x
   2448 	       - for enumeration options - option=x, option+=x and option-=x
   2449 	       - for set options - option=x, option+=x and option-=x
   2450 	       - for charset options - option=x, option+=x, option-=x and
   2451 	      option^=x
   2452 
   2453 	      the meaning:
   2454 	       - option - turn option on (for boolean) or print its value (for
   2455 	      all others)
   2456 	       - nooption - turn option off
   2457 	       - invoption - invert option state
   2458 	       - option! - invert option state
   2459 	       - option? - print option value
   2460 	       - option& - reset option to its default value
   2461 	       - option=x or option:x - set option to x
   2462 	       - option+=x - add/append x to option
   2463 	       - option-=x - remove (or subtract) x from option
   2464 	       - option^=x - toggle x presence among values of the option
   2465 
   2466 	      Option name can be prepended and appended by any number of
   2467 	      whitespace characters.
   2468 
   2469 						:setglobal
   2470 
   2471        :setg[lobal]
   2472 	      display all global options that differ from their default value.
   2473 
   2474        :setg[lobal] all
   2475 	      display all global options.
   2476 
   2477        :setg[lobal] opt1=val1 opt2='val2' opt3="val3" ...
   2478 	      same as :set, but changes/prints only global options or global
   2479 	      values of local options.	Changes to the latter might be not
   2480 	      visible until directory is changed.
   2481 
   2482 						:setlocal
   2483 
   2484        :setl[ocal]
   2485 	      display all local options that differ from their default value.
   2486 
   2487        :setl[ocal] all
   2488 	      display all local options.
   2489 
   2490        :setl[ocal] opt1=val1 opt2='val2' opt3="val3" ...
   2491 	      same as :set, but changes/prints only local values of local
   2492 	      options.
   2493 
   2494 						:shell
   2495 
   2496        :sh[ell][!]
   2497 	      start a shell in current directory.  "!" suppresses spawning
   2498 	      dedicated window of terminal multiplexer for a shell.  To make
   2499 	      vifm adaptive to environment it uses $SHELL if it's defined,
   2500 	      otherwise 'shell' value is used.
   2501 
   2502 
   2503 						:siblnext
   2504 
   2505        :[count]siblnext[!]
   2506 
   2507 	      change directory to [count]th next sibling directory after
   2508 	      current path using value of global sort option of current pane.
   2509 	      "!" enables wrapping.
   2510 
   2511 	      For example, say, you're at /boot and root listing starts like
   2512 	      this:
   2513 
   2514 		  bin/
   2515 		  boot/
   2516 		  dev/
   2517 		  ...
   2518 
   2519 	      Issuing :siblnext will navigate to /dev.
   2520 
   2521 
   2522 						:siblprev
   2523 
   2524        :[count]siblprev[!]
   2525 	      same as :siblnext, but in the opposite direction.
   2526 
   2527 						:sort
   2528 
   2529        :sor[t]
   2530 	      display dialog with different sorting methods, when one can
   2531 	      select primary sorting key.  When 'viewcolumns' options is empty
   2532 	      and 'lsview' is off, changing primary sorting key will also
   2533 	      affect view look (in particular the second column of the view
   2534 	      will be changed).
   2535 
   2536 						:source
   2537 
   2538        :so[urce] file
   2539 	      read command-line commands from the file.
   2540 
   2541 						:split
   2542 
   2543        :sp[lit]
   2544 	      switch to a two window horizontal view.
   2545 
   2546        :sp[lit]!
   2547 	      toggle horizontal window splitting.
   2548 
   2549        :sp[lit] path
   2550 	      splits the window horizontally to show both file directories.
   2551 	      Also changes other pane to path (absolute or relative to current
   2552 	      directory of active pane).
   2553 
   2554 						:substitute
   2555 
   2556        :[range]s[ubstitute]/pattern/string/[flags]
   2557 	      for each file in range replace a match of pattern with string.
   2558 
   2559        String can contain \0...\9 to link to capture groups (\0 - all match,
   2560        \1 - first group, etc.).
   2561 
   2562        Pattern is stored in search history.
   2563 
   2564        Available flags:
   2565 
   2566 	 - i - ignore case (the 'ignorecase' and 'smartcase' options are not
   2567 	   used)
   2568 
   2569 	 - I - don't ignore case (the 'ignorecase' and 'smartcase' options are
   2570 	   not used)
   2571 
   2572 	 - g - substitute all matches in each file name (each g toggles this)
   2573 
   2574        :[range]s[ubstitute]/pattern
   2575 	      substitute pattern with an empty string.
   2576 
   2577        :[range]s[ubstitute]//string/[flags]
   2578 	      use last pattern from search history.
   2579 
   2580        :[range]s[ubstitute]
   2581 	      repeat previous substitution command.
   2582 
   2583 						:sync
   2584 
   2585        :sync [relative path]
   2586 	      change the other pane to the current pane directory or to some
   2587 	      path relative to the current directory.  Using macros is
   2588 	      allowed.
   2589 
   2590        :sync! change the other pane to the current pane directory and
   2591 	      synchronize cursor position.  If current pane displays custom
   2592 	      list of files, position before entering it is used (current one
   2593 	      might not make any sense).
   2594 
   2595 
   2596        :sync! [location | cursorpos | localopts | filters | filelist | tree |
   2597        all]...
   2598 	      change enumerated properties of the other pane to match
   2599 	      corresponding properties of the current pane.  Arguments have
   2600 	      the following meanings:
   2601 
   2602 		- location - current directory of the pane;
   2603 
   2604 		- cursorpos - cursor position (doesn't make sense without
   2605 		  "location");
   2606 
   2607 		- localopts - all local options;
   2608 
   2609 		- filters - all filters;
   2610 
   2611 		- filelist - list of files for custom view (implies
   2612 		  "location");
   2613 
   2614 		- tree - tree structure for tree view (implies "location");
   2615 
   2616 		- all - all of the above.
   2617 
   2618 						:tabclose
   2619 
   2620        :tabc[lose]
   2621 	      close current tab, unless it's the only one open at current
   2622 	      scope.
   2623 
   2624 						:tabmove
   2625 
   2626        :tabm[ove] [N]
   2627 	      without the argument or with `$` as the argument, current tab
   2628 	      becomes the last tab.  With the argument, current tab is moved
   2629 	      after the tab with the specified number.	Argument of `0` moves
   2630 	      current tab to the first position.
   2631 
   2632 						:tabname
   2633 
   2634        :tabname [name]
   2635 	      set, update or reset (when no argument is provided) name of the
   2636 	      current tab.
   2637 
   2638 						:tabnew
   2639 
   2640        :tabnew [path]
   2641 	      create new tab.  Accepts optional path for the new tab.  Macros
   2642 	      and environment variables are expanded.
   2643 
   2644 						:tabnext
   2645 
   2646        :tabn[ext]
   2647 	      switch to the next tab (wrapping around).
   2648 
   2649        :tabn[ext] {n}
   2650 	      go to the tab number {n}.	 Tab numeration starts with 1.
   2651 
   2652 						:tabprevious
   2653 
   2654        :tabp[revious]
   2655 	      switch to the previous tab (wrapping around).
   2656 
   2657        :tabp[revious] {n}
   2658 	      go to the {n}-th previous tab.  Note that :tabnext handles its
   2659 	      argument differently.
   2660 
   2661 						:touch
   2662 
   2663        :[line]touch file...
   2664 	      create files at specified paths.	Aborts on errors.  Doesn't
   2665 	      update time of existing files.  The [line] can be used to pick
   2666 	      node in a tree-view.  Macros are expanded.
   2667 
   2668 						:tr
   2669 
   2670        :[range]tr/pattern/string/
   2671 	      for each file in range transliterate the characters which appear
   2672 	      in pattern to the corresponding character in string.  When
   2673 	      string is shorter than pattern, it's padded with its last
   2674 	      character.
   2675 
   2676 						:trashes
   2677 
   2678        :trashes
   2679 	      lists all valid trash directories in a menu.  Only non-empty and
   2680 	      writable trash directories are shown.  This is exactly the list
   2681 	      of directories that are cleared when :empty command is executed.
   2682 
   2683        :trashes?
   2684 	      same as :trashes, but also displays size of each trash
   2685 	      directory.
   2686 
   2687 						:tree
   2688 
   2689        :tree  turn pane into tree view with current directory as its root.
   2690 	      The tree view is implemented on top of a custom view, but is
   2691 	      automatically kept in sync with file system state and considers
   2692 	      all the filters.	Thus the structure corresponds to what one
   2693 	      would see on visiting the directories manually.  As a special
   2694 	      case for trees built out of custom view file-system tracking
   2695 	      isn't performed.
   2696 
   2697 	      To leave tree view go up from its root or use gh at any level of
   2698 	      the tree.	 Any command that changes directory will also do, in
   2699 	      particular, `:cd ..`.
   2700 
   2701 	      Tree structure is incompatible with alternative representations,
   2702 	      so values of 'lsview' and 'millerview' options are ignored.
   2703 
   2704        :tree! toggle current view in and out of tree mode.
   2705 
   2706 						:undolist
   2707 
   2708        :undol[ist]
   2709 	      display list of latest changes.  Use "!" to see actual commands.
   2710 
   2711 						:unlet
   2712 
   2713        :unl[et][!] $ENV_VAR1 $ENV_VAR2 ...
   2714 	      remove environment variables. Add ! to omit displaying of
   2715 	      warnings about nonexistent variables.
   2716 
   2717 						:unselect
   2718 
   2719        :[range]unselect
   2720 	      unselect files in the given range (current file if no range is
   2721 	      given).
   2722 
   2723        :unselect {pattern}
   2724 	      unselect files that match specified pattern.  Possible {pattern}
   2725 	      forms are described in "Patterns" section below.	Trailing slash
   2726 	      for directories is taken into account, so `:unselect */`
   2727 	      unselects directories.
   2728 
   2729        :unselect !{external command}
   2730 	      unselect files from the list supplied by external command.
   2731 	      Files are matched by full paths, relative paths are converted to
   2732 	      absolute ones beforehand.
   2733 
   2734        :unselect //[iI]
   2735 	      same as item above, but reuses last search pattern.
   2736 
   2737 						:version
   2738 
   2739        :ve[rsion]
   2740 	      show menu with version information.
   2741 
   2742 						:vifm
   2743 
   2744        :vifm  same as :version.
   2745 
   2746 						:view
   2747 
   2748        :vie[w]
   2749 	      toggle on and off the quick file view.  See also 'quickview'
   2750 	      option.
   2751 
   2752        :vie[w]!
   2753 	      turn on quick file view if it's off.
   2754 
   2755 						:volumes
   2756 
   2757        :volumes
   2758 	      only for MS-Windows
   2759 	      display menu with volume list.  Hitting l (or Enter) key opens
   2760 	      appropriate volume in the current pane.
   2761 
   2762 						:vsplit
   2763 
   2764        :vs[plit]
   2765 	      switch to a two window vertical view.
   2766 
   2767        :vs[plit]!
   2768 	      toggle window vertical splitting.
   2769 
   2770        :vs[plit] path
   2771 	      split the window vertically to show both file directories.  And
   2772 	      changes other pane to path (absolute or relative to current
   2773 	      directory of active pane).
   2774 
   2775 						:wincmd
   2776 
   2777        :[count]winc[md] {arg}
   2778 	      same as running Ctrl-W [count] {arg}.
   2779 
   2780 						:windo
   2781 
   2782        :windo [command...]
   2783 	      execute command for each pane (same as :winrun % command).
   2784 
   2785 						:winrun
   2786 
   2787        :winrun type [command...]
   2788 	      execute command for pane(s), which is determined by type
   2789 	      argument:
   2790 		- ^ - top-left pane
   2791 		- $ - bottom-right pane
   2792 		- % - all panes
   2793 		- . - current pane
   2794 		- , - other pane
   2795 
   2796 						:write
   2797 
   2798        :w[rite]
   2799 	      write vifminfo file.
   2800 
   2801 						:wq
   2802 
   2803        :wq[!] same as :quit, but ! only disables check of backgrounded
   2804 	      commands.						  :wqall
   2805 
   2806        :wqa[ll][!]
   2807 	      same as :qall, but ! only disables check of backgrounded
   2808 	      commands.
   2809 
   2810 						:xall
   2811 
   2812        :xa[ll][!]
   2813 	      same as :qall.
   2814 
   2815 						:xit
   2816 
   2817        :x[it][!]
   2818 	      same as :quit.
   2819 
   2820 						:yank
   2821 
   2822        :[range]y[ank] [reg] [count]
   2823 	      will yank files to the reg register.
   2824 
   2825 						:map lhs rhs
   2826 
   2827        :map lhs rhs
   2828 	      map lhs key sequence to rhs in normal and visual modes.
   2829 
   2830        :map! lhs rhs
   2831 	      map lhs key sequence to rhs in command line mode.
   2832 
   2833 
   2834 					      :cmap :dmap :mmap :nmap :qmap
   2835        :vmap
   2836 
   2837        :cm[ap] lhs rhs
   2838 	      map lhs to rhs in command line mode.
   2839 
   2840        :dm[ap] lhs rhs
   2841 	      map lhs to rhs in dialog modes.
   2842 
   2843        :mm[ap] lhs rhs
   2844 	      map lhs to rhs in menu mode.
   2845 
   2846        :nm[ap] lhs rhs
   2847 	      map lhs to rhs in normal mode.
   2848 
   2849        :qm[ap] lhs rhs
   2850 	      map lhs to rhs in view mode.
   2851 
   2852        :vm[ap] lhs rhs
   2853 	      map lhs to rhs in visual mode.
   2854 
   2855 
   2856 						:*map
   2857 
   2858        :cm[ap]
   2859 	      list all maps in command line mode.
   2860 
   2861        :dm[ap]
   2862 	      list all maps in dialog modes.
   2863 
   2864        :mm[ap]
   2865 	      list all maps in menu mode.
   2866 
   2867        :nm[ap]
   2868 	      list all maps in normal mode.
   2869 
   2870        :qm[ap]
   2871 	      list all maps in view mode.
   2872 
   2873        :vm[ap]
   2874 	      list all maps in visual mode.
   2875 
   2876 						:*map beginning
   2877 
   2878        :cm[ap] beginning
   2879 	      list all maps in command line mode that start with the
   2880 	      beginning.
   2881 
   2882        :dm[ap] beginning
   2883 	      list all maps in dialog modes that start with the beginning.
   2884 
   2885        :mm[ap] beginning
   2886 	      list all maps in menu mode that start with the beginning.
   2887 
   2888        :nm[ap] beginning
   2889 	      list all maps in normal mode that start with the beginning.
   2890 
   2891        :qm[ap] beginning
   2892 	      list all maps in view mode that start with the beginning.
   2893 
   2894        :vm[ap] beginning
   2895 	      list all maps in visual mode that start with the beginning.
   2896 
   2897 						:noremap
   2898 
   2899        :no[remap] lhs rhs
   2900 	      map the key sequence lhs to rhs for normal and visual modes, but
   2901 	      disallow mapping of rhs.
   2902 
   2903        :no[remap]! lhs rhs
   2904 	      map the key sequence lhs to rhs for command line mode, but
   2905 	      disallow mapping of rhs.
   2906 
   2907 		      :cnoremap :dnoremap :mnoremap :nnoremap :qnoremap
   2908        :vnoremap
   2909 
   2910        :cno[remap] lhs rhs
   2911 	      map the key sequence lhs to rhs for command line mode, but
   2912 	      disallow mapping of rhs.
   2913 
   2914        :dn[oremap] lhs rhs
   2915 	      map the key sequence lhs to rhs for dialog modes, but disallow
   2916 	      mapping of rhs.
   2917 
   2918        :mn[oremap] lhs rhs
   2919 	      map the key sequence lhs to rhs for menu mode, but disallow
   2920 	      mapping of rhs.
   2921 
   2922        :nn[oremap] lhs rhs
   2923 	      map the key sequence lhs to rhs for normal mode, but disallow
   2924 	      mapping of rhs.
   2925 
   2926        :qn[oremap] lhs rhs
   2927 	      map the key sequence lhs to rhs for view mode, but disallow
   2928 	      mapping of rhs.
   2929 
   2930        :vn[oremap] lhs rhs
   2931 	      map the key sequence lhs to rhs for visual mode, but disallow
   2932 	      mapping of rhs.
   2933 
   2934 						:unmap
   2935 
   2936        :unm[ap] lhs
   2937 	      remove the mapping of lhs from normal and visual modes.
   2938 
   2939        :unm[ap]! lhs
   2940 	      remove the mapping of lhs from command line mode.
   2941 
   2942 				  :cunmap :dunmap :munmap :nunmap :qunmap
   2943        :vunmap
   2944 
   2945        :cu[nmap] lhs
   2946 	      remove the mapping of lhs from command line mode.
   2947 
   2948        :du[nmap] lhs
   2949 	      remove the mapping of lhs from dialog modes.
   2950 
   2951        :mu[nmap] lhs
   2952 	      remove the mapping of lhs from menu mode.
   2953 
   2954        :nun[map] lhs
   2955 	      remove the mapping of lhs from normal mode.
   2956 
   2957        :qun[map] lhs
   2958 	      remove the mapping of lhs from view mode.
   2959 
   2960        :vu[nmap] lhs
   2961 	      remove the mapping of lhs from visual mode.
   2962 
   2963 Ranges
   2964        The ranges implemented include:
   2965 	 2,3 - from second to third file in the list (including it)
   2966 	 % - the entire directory.
   2967 	 . - the current position in the filelist.
   2968 	 $ - the end of the filelist.
   2969 	 't - the mark position t.
   2970 
   2971        Examples:
   2972 
   2973 	 :%delete
   2974 
   2975        would delete all files in the directory.
   2976 
   2977 	 :2,4delete
   2978 
   2979        would delete the files in the list positions 2 through 4.
   2980 
   2981 	 :.,$delete
   2982 
   2983        would delete the files from the current position to the end of the
   2984        filelist.
   2985 
   2986 	 :3delete4
   2987 
   2988        would delete the files in the list positions 3, 4, 5, 6.
   2989 
   2990        If a backward range is given :4,2delete - an query message is given and
   2991        user can chose what to do next.
   2992 
   2993        The builtin commands that accept a range are :d[elete] and :y[ank].
   2994 
   2995 Command macros
   2996        The command macros may be used in user commands.
   2997 
   2998        %a     User arguments.  When user arguments contain macros, they are
   2999 	      expanded before preforming substitution of %a.
   3000 
   3001        %c %"c The current file under the cursor.
   3002 
   3003        %C %"C The current file under the cursor in the other directory.
   3004 
   3005        %f %"f All of the selected files.
   3006 
   3007        %F %"F All of the selected files in the other directory list.
   3008 
   3009        %b %"b Same as %f %F.
   3010 
   3011        %d %"d Full path to current directory.
   3012 
   3013        %D %"D Full path to other file list directory.
   3014 
   3015        %rx %"rx
   3016 	      Full paths to files in the register {x}.	In case of invalid
   3017 	      symbol in place of {x}, it's processed with the rest of the line
   3018 	      and default register is used.
   3019 
   3020        %m     Show command output in a menu.
   3021 
   3022        %M     Same as %m, but l (or Enter) key is handled like for :locate and
   3023 	      :find commands.
   3024 
   3025        %u     Process command output as list of paths and compose custom view
   3026 	      out of it.
   3027 
   3028        %U     Same as %u, but implies less list updates inside vifm, which is
   3029 	      absence of sorting at the moment.
   3030 
   3031        %Iu    same as %u, but gives up terminal before running external
   3032 	      command.
   3033 
   3034        %IU    same as %U, but gives up terminal before running external
   3035 	      command.
   3036 
   3037        %S     Show command output in the status bar.
   3038 
   3039        %q     redirect command output to quick view, which is activated if
   3040 	      disabled.
   3041 
   3042        %s     Execute command in split window of active terminal multiplexer
   3043 	      (ignored if not running inside one).
   3044 
   3045        %n     Forbid using of terminal multiplexer to run the command.
   3046 
   3047        %i     Completely ignore command output.
   3048 
   3049 
   3050        %pc    Marks end of the main command and beginning of the clear command
   3051 	      for graphical preview, which is invoked on closing preview of a
   3052 	      file.
   3053 
   3054        The following dimensions and coordinates are in characters:
   3055 
   3056        %px    x coordinate of top-left corner of preview area.
   3057 
   3058        %py    y coordinate of top-left corner of preview area.
   3059 
   3060        %pw    width of preview area.
   3061 
   3062        %ph    height of preview area.
   3063 
   3064 
   3065        Use %% if you need to put a percent sign in your command.
   3066 
   3067        Note that %m, %M, %s, %S, %i, %u and %U macros are mutually exclusive.
   3068        Only the last one of them on the command will take effect.
   3069 
   3070        You can use file name modifiers after %c, %C, %f, %F, %b, %d and %D
   3071        macros.	Supported modifiers are:
   3072 
   3073 	 - :p		- full path
   3074 
   3075 	 - :u		- UNC name of path (e.g. "\\server" in
   3076 	   "\\server\share"), Windows only.  Expands to current computer name
   3077 	   for not UNC paths.
   3078 
   3079 	 - :~		- relative to the home directory
   3080 
   3081 	 - :.		- relative to current directory
   3082 
   3083 	 - :h		- head of the file name
   3084 
   3085 	 - :t		- tail of the file name
   3086 
   3087 	 - :r		- root of the file name (without last extension)
   3088 
   3089 	 - :e		- extension of the file name (last one)
   3090 
   3091 	 - :s?pat?sub?	- substitute the first occurrence of pat with sub.
   3092 	   You can use any character for '?', but it must not occur in pat or
   3093 	   sub.
   3094 
   3095 	 - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with
   3096 	   sub.
   3097 
   3098        See ':h filename-modifiers' in Vim's documentation for the detailed
   3099        description.
   3100 
   3101        Using %x means expand corresponding macro escaping all characters that
   3102        have special meaning.  And %"x means using of double quotes and escape
   3103        only backslash and double quote characters, which is more useful on
   3104        Windows systems.
   3105 
   3106        Position and quantity (if there is any) of %m, %M, %S or %s macros in
   3107        the command is unimportant.  All their occurrences are removed from the
   3108        resulting command.
   3109 
   3110        %c and %f macros are expanded to file names only, when %C and %F are
   3111        expanded to full paths.	%f and %F follow this in %b too.
   3112 
   3113        :com move mv %f %D
   3114 	      set the :move command to move all of the files selected in the
   3115 	      current directory to the other directory.
   3116 
   3117        The %a macro is replaced with any arguments given to an alias command.
   3118        All arguments are considered optional.
   3119 	      :com lsl !!ls -l %a - set the lsl command to execute ls -l with
   3120 	      or without an argument.
   3121 
   3122        :lsl<Enter>
   3123 	      will list the directory contents of the current directory.
   3124 
   3125        :lsl filename<Enter>
   3126 	      will list only the given filename.
   3127 
   3128        The macros can also be used in directly executing commands.  ":!mv %f
   3129        %D" would move the current directory selected files to the other
   3130        directory.
   3131 
   3132        Appending & to the end of a command causes it to be executed in the
   3133        background.  Typically you want to run two kinds of external commands
   3134        in the background:
   3135 
   3136 	 - GUI applications that doesn't fork thus block vifm (:!sxiv %f &);
   3137 
   3138 	 - console tools that do not work with terminal (:!mv %f %D &).
   3139 
   3140        You don't want to run terminal commands, which require terminal input
   3141        or output something in background because they will mess up vifm's TUI.
   3142        Anyway, if you did run such a command, you can use Ctrl-L key to update
   3143        vifm's TUI.
   3144 
   3145        Rewriting the example command with macros given above with
   3146        backgrounding:
   3147 
   3148        %m, %M, %s, %S, %u and %U macros cannot be combined with background
   3149        mark (" &") as it doesn't make much sense.
   3150 
   3151 Command backgrounding
   3152        Copy and move operation can take a lot of time to proceed.  That's why
   3153        vifm supports backgrounding of this two operations.  To run :copy,
   3154        :move or :delete command in the background just add " &" at the end of
   3155        a command.
   3156 
   3157        For each background operation a new thread is created.  Currently job
   3158        cannot be stopped or paused.
   3159 
   3160        You can see if command is still running in the :jobs menu.
   3161        Backgrounded commands have progress instead of process id at the line
   3162        beginning.
   3163 
   3164        Background operations cannot be undone.
   3165 
   3166 Cancellation
   3167        Note that cancellation works somewhat different on Windows platform due
   3168        to different mechanism of break signal propagation.  One also might
   3169        need to use Ctrl-Break shortcut instead of Ctrl-C.
   3170 
   3171        There are two types of operations that can be cancelled:
   3172 
   3173 	 - file system operations;
   3174 
   3175 	 - mounting with FUSE (but not unmounting as it can cause loss of
   3176 	   data);
   3177 
   3178 	 - calls of external applications.
   3179 
   3180        Note that vifm never terminates applications, it sends SIGINT signal
   3181        and lets the application quit normally.
   3182 
   3183        When one of set of operations is cancelled (e.g. copying of 5th file of
   3184        10 files), further operations are cancelled too.	 In this case undo
   3185        history will contain only actually performed operations.
   3186 
   3187        Cancelled operations are indicated by "(cancelled)" suffix appended to
   3188        information message on statusbar.
   3189 
   3190        File system operations
   3191 
   3192        Currently the following commands can be cancelled: :alink, :chmod,
   3193        :chown, :clone, :copy, :delete, :mkdir, :move, :restore, :rlink,
   3194        :touch.	File putting (on p/P key) can be cancelled as well.  It's not
   3195        hard to see that these are mainly long-running operations.
   3196 
   3197        Cancelling commands when they are repeated for undo/redo operations is
   3198        allowed for convenience, but is not recommended as further undo/redo
   3199        operations might get blocked by side-effects of partially cancelled
   3200        group of operations.
   3201 
   3202        These commands can't be cancelled: :empty, :rename, :substitute, :tr.
   3203 
   3204        Mounting with FUSE
   3205 
   3206        It's not considered to be an error, so only notification on the status
   3207        bar is shown.
   3208 
   3209        External application calls
   3210 
   3211        Each of this operations can be cancelled: :apropos, :find, :grep,
   3212        :locate.
   3213 
   3214 Patterns
   3215        :highlight, :filetype, :filextype, :fileviewer commands and 'classify'
   3216        option support globs, regular expressions and mime types to match file
   3217        names or their paths.
   3218 
   3219        There are six possible ways to write a single pattern:
   3220 
   3221 	 1. [!]{comma-separated-name-globs}
   3222 
   3223 	 2. [!]{{comma-separated-path-globs}}
   3224 
   3225 	 3. [!]/name-regular-expression/[iI]
   3226 
   3227 	 4. [!]//path-regular-expression//[iI]
   3228 
   3229 	 5. [!]<comma-separated-mime-type-globs>
   3230 
   3231 	 6. undecorated-pattern
   3232 
   3233        Flags of regular expressions mean the following:
   3234 	 - "i" makes filter case insensitive;
   3235 	 - "I" makes filter case sensitive.  They can be repeated multiple
   3236        times, but the later one takes precedence (e.g.	"iiiI" is equivalent
   3237        to "I" and "IiIi" is the same as "i").
   3238 
   3239        To combine several patterns (AND them), make sure you're using one of
   3240        the first five forms and write patterns one after another, like this:
   3241 	 <text/plain>{*.vifm}
   3242        Mind that if you make a mistake the whole string will be treated as the
   3243        sixth form.
   3244 
   3245        :filetype, :filextype and :fileviewer commands accept comma-separated
   3246        list of patterns instead of a single pattern, thus effectively handling
   3247        OR operation on them:
   3248 	 <text/plain>{*.vifm},<application/pdf>{*.pdf}
   3249 
   3250        Five first forms can include leading exclamation mark that negates
   3251        pattern matching.
   3252 
   3253        The last form is implicitly refers to one of others.  :highlight does
   3254        not accept undecorated form, while :filetype, :filextype, :fileviewer,
   3255        :select, :unselect and 'classify' treat it as list of name globs.
   3256 
   3257        Regular expression patterns are case insensitive by default, see
   3258        description of commands, which might override default behaviour.
   3259 
   3260        "Globs" section below provides short overview of globs and some
   3261        important points that one needs to know about them.
   3262 
   3263        Mime type matching is essentially globs matching applied to mime type
   3264        of a file instead of its name/path.  Note: mime types aren't detected
   3265        on Windows.
   3266 
   3267 Globs
   3268        Globs are always case insensitive as it makes sense in general case.
   3269 
   3270        *, ?, [ and ] are treated as special symbols in the pattern.  E.g.
   3271 
   3272 	 :filetype * less %c
   3273 
   3274        matches all files.  One can use character classes for escaping, so
   3275 
   3276 	 :filetype [*] less %c
   3277 
   3278        matches only one file name, the one which contains only asterisk
   3279        symbol.
   3280 
   3281        * means any number of any characters (possibly an empty substring),
   3282        with one exception: asterisk at the pattern beginning doesn't match dot
   3283        in the first position.  E.g.
   3284 
   3285 	 :fileviewer *.zip,*.jar zip -sf %c
   3286 
   3287        associates using of zip program to preview all files with zip or jar
   3288        extensions as listing of their content.
   3289 
   3290        ? means any character at this position.	E.g.
   3291 
   3292 	 :fileviewer ?.out file %c
   3293 
   3294        calls file tool for all files which has exactly one character before
   3295        their extension (e.g. a.out, b.out).
   3296 
   3297        Square brackets designate character class, which means that whole
   3298        character class matches against any of characters listed in it.	For
   3299        example
   3300 
   3301 	 :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c
   3302 
   3303        makes vifm call highlight program to colorize source and header files
   3304        in C language for a 256-color terminal.	Equal command would be
   3305 
   3306 	 :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c
   3307 
   3308 
   3309        Inside square brackets ^ or ! can be used for symbol class negotiation
   3310        and the - symbol to set a range. ^ and ! should appear right after the
   3311        opening square bracket.	For example
   3312 
   3313 	 :filetype *.[!d]/ inspect_dir
   3314 
   3315        associates inspect_dir as additional handler for all directories that
   3316        have one character extension unless it's "d" letter.  And
   3317 
   3318 	 :filetype [0-9].jpg sxiv
   3319 
   3320        associates sxiv picture viewer only for JPEG-files that contain single
   3321        digit in their name.
   3322 
   3323 :set options
   3324        Local options
   3325 	      These are kind of options that are local to a specific view.  So
   3326 	      you can set ascending sorting order for left pane and descending
   3327 	      order for right pane.
   3328 
   3329 	      In addition to being local to views, each such option also has
   3330 	      two values:
   3331 
   3332 		- local to current directory (value associated with current
   3333 		  location);
   3334 
   3335 		- global to current directory (value associated with the
   3336 		  pane).
   3337 
   3338 	      The idea is that current directory can be made a temporary
   3339 	      exception to regular configuration of the view, until directory
   3340 	      change.  Use :setlocal for that.	:setglobal changes view value
   3341 	      not affecting settings until directory change.  :set applies
   3342 	      changes immediately to all values.
   3343 
   3344 
   3345        'aproposprg'
   3346 	      type: string
   3347 	      default: "apropos %a"
   3348 	      Specifies format for an external command to be invoked by the
   3349 	      :apropos command.	 The format supports expanding of macros,
   3350 	      specific for a particular *prg option, and %% sequence for
   3351 	      inserting percent sign literally.	 This option should include
   3352 	      the %a macro to specify placement of arguments passed to the
   3353 	      :apropos command.	 If the macro is not used, it will be
   3354 	      implicitly added after a space to the value of this option.
   3355 
   3356        'autochpos'
   3357 	      type: boolean
   3358 	      default: true
   3359 	      When disabled vifm will set cursor to the first line in the view
   3360 	      after :cd and :pushd commands instead of saved cursor position.
   3361 	      Disabling this will also make vifm clear information about
   3362 	      cursor position in the view history on :cd and :pushd commands
   3363 	      (and on startup if 'autochpos' is disabled in the vifmrc).  l
   3364 	      key in the ":history ." and ":trashes" menus are treated like
   3365 	      :cd command.  This option also affects marks so that navigating
   3366 	      to a mark doesn't restore cursor position.
   3367 
   3368 	      When this option is enabled, more fine grained control over
   3369 	      cursor position is available via 'histcursor' option.
   3370 
   3371        'columns' 'co'
   3372 	      type: integer
   3373 	      default: terminal width on startup
   3374 	      Terminal width in characters.
   3375 
   3376        'caseoptions'
   3377 	      type: charset
   3378 	      default: ""
   3379 	      This option gives additional control over case sensitivity by
   3380 	      allowing overriding default behaviour to either always be case
   3381 	      sensitive or always be case insensitive.	Possible values form
   3382 	      pairs of lower and upper case letters that configure specific
   3383 	      aspect of behaviour:
   3384 		p - always ignore case of paths during completion.
   3385 		P - always match case of paths during completion.
   3386 		g - always ignore case of characters for f/F/;/,.
   3387 		G - always match case of characters for f/F/;/,.
   3388 
   3389 	      At most one item of each pair takes affect, if both or more are
   3390 	      present, only the last one matters.  When none of pair's
   3391 	      elements are present, the behaviour is default (depends on
   3392 	      operating system for path completion and on values of
   3393 	      'ignorecase' and 'smartcase' options for file navigation).
   3394 
   3395        'cdpath' 'cd'
   3396 	      type: string list
   3397 	      default: value of $CDPATH with commas instead of colons
   3398 	      Specifies locations to check on changing directory with relative
   3399 	      path that doesn't start with "./" or "../".  When non-empty,
   3400 	      current directory is examined after directories listed in the
   3401 	      option.
   3402 
   3403 	      This option doesn't affect completion of :cd command.
   3404 
   3405 	      Example:
   3406 
   3407 		set cdpath=~
   3408 
   3409 	      This way ":cd bin" will switch to "~/bin" even if directory
   3410 	      named "bin" exists in current directory, while ":cd ./bin"
   3411 	      command will ignore value of 'cdpath'.
   3412 
   3413        'chaselinks'
   3414 	      type: boolean
   3415 	      default: false
   3416 	      When enabled path of view is always resolved to real path (with
   3417 	      all symbolic links expanded).
   3418 
   3419        'classify'
   3420 	      type: string list
   3421 	      default: ":dir:/"
   3422 	      Specifies file name prefixes and suffixes depending on file type
   3423 	      or name.	The format is either of:
   3424 		- [{prefix}]:{filetype}:[{suffix}]
   3425 		- [{prefix}]::{pattern}::[{suffix}]
   3426 	      Possible {pattern} forms are described in "Patterns" section
   3427 	      above.
   3428 
   3429 	      Priority rules:
   3430 		- file name patterns have priority over type patterns
   3431 		- file name patterns are matched in left-to-right order of
   3432 	      their appearance in this option
   3433 
   3434 	      Either {prefix} or {suffix} or both can be omitted (which is the
   3435 	      default for all unspecified file types), this means empty
   3436 	      {prefix} and/or {suffix}.	 {prefix} and {suffix} should consist
   3437 	      of at most eight characters.  Elements are separated by commas.
   3438 	      Neither prefixes nor suffixes are part of file names, so they
   3439 	      don't affect commands which operate on file names in any way.
   3440 	      Comma (',') character can be inserted by doubling it.  List of
   3441 	      file type names can be found in the description of filetype()
   3442 	      function.
   3443 
   3444        'confirm' 'cf'
   3445 	      type: set
   3446 	      default: delete,permdelete
   3447 	      Defines which operations require confirmation:
   3448 	       - delete	    - moving files to trash (on d or :delete);
   3449 	       - permdelete - permanent deletion of files (on D or :delete!
   3450 	      command or on undo/redo operation).
   3451 
   3452        'cpoptions' 'cpo'
   3453 	      type: charset
   3454 	      default: "fst"
   3455 	      Contains a sequence of single-character flags.  Each flag
   3456 	      enables behaviour of older versions of vifm.  Flags:
   3457 	       - f - when included, running :filter command results in not
   3458 	      inverted (matching files are filtered out) and :filter! in
   3459 	      inverted (matching files are left) filter, when omitted, meaning
   3460 	      of the exclamation mark changes to the opposite;
   3461 	       - s - when included, yy, dd and DD normal mode commands act on
   3462 	      selection, otherwise they operate on current file only;
   3463 	       - t - when included, <tab> (thus <c-i>) behave as <space> and
   3464 	      switches active pane, otherwise <tab> and <c-i> go forward in
   3465 	      the view history.	 It's possible to make both <tab> and <c-i> to
   3466 	      work as expected by setting up the terminal to emit a custom
   3467 	      sequence when <c-i> is pressed; see :histnext for details.
   3468 
   3469        'cvoptions'
   3470 	      type: set
   3471 	      default:
   3472 	      Specifies whether entering/leaving custom views triggers events
   3473 	      that normally happen on entering/leaving directories:
   3474 	       - autocmds    - trigger autocommands on entering/leaving custom
   3475 	      views;
   3476 	       - localopts   - reset local options on entering/leaving custom
   3477 	      views;
   3478 	       - localfilter - reset local filter on entering/leaving custom
   3479 	      views.
   3480 
   3481        'deleteprg'
   3482 	      type: string
   3483 	      default: ""
   3484 	      Specifies program to run on files that are permanently removed.
   3485 	      When empty, files are removed as usual, otherwise this command
   3486 	      is invoked on each file by appending its name.  If the command
   3487 	      doesn't remove files, they will remain on the file system.
   3488 
   3489        'dirsize'
   3490 	      type: enumeration
   3491 	      default: size
   3492 	      Controls how size of directories is displayed in file views.
   3493 	      The following values are possible:
   3494 	       - size	- size of directory (i.e., size used to store list of
   3495 	      files)
   3496 	       - nitems - number of entries in the directory (excluding . and
   3497 	      ..)
   3498 
   3499 	      Size obtained via ga/gA overwrites this setting so seeing count
   3500 	      of files and occasionally size of directories is possible.
   3501 
   3502        'dotdirs'
   3503 	      type: set
   3504 	      default: nonrootparent
   3505 	      Controls displaying of dot directories.  The following values
   3506 	      are possible:
   3507 	       - rootparent    - show "../" in root directory of file system
   3508 	       - nonrootparent - show "../" in non-root directories of file
   3509 	      system
   3510 
   3511 	      Note that empty directories always contain "../" entry
   3512 	      regardless of value of this option.  "../" disappears at the
   3513 	      moment at least one file is created.
   3514 
   3515        'dotfiles'
   3516 	      type: boolean
   3517 	      default: false
   3518 	      Whether dot files are shown in the view.	Can be controlled with
   3519 	      z* bindings.
   3520 
   3521        'fastrun'
   3522 	      type: boolean
   3523 	      default: false
   3524 	      With this option turned on you can run partially entered
   3525 	      commands with unambiguous beginning using :! (e.g. :!Te instead
   3526 	      of :!Terminal or :!Te<tab>).
   3527 
   3528        'fillchars' 'fcs'
   3529 	      type: string list
   3530 	      default: ""
   3531 	      Sets characters used to fill borders.
   3532 
   3533 		item	     default	used for
   3534 		vborder:c    ' '	left, middle and right vertical
   3535 	      borders
   3536 
   3537 	      If value is omitted, its default value is used.  Example:
   3538 
   3539 		set fillchars=vborder:.
   3540 
   3541        'findprg'
   3542 	      type: string
   3543 	      default: "find %s %a -print , -type d \( ! -readable -o !
   3544 	      -executable \) -prune"
   3545 	      Specifies format for an external command to be invoked by the
   3546 	      :find command.  The format supports expanding of macros,
   3547 	      specific for a particular *prg option, and %% sequence for
   3548 	      inserting percent sign literally.	 This option should include
   3549 	      the %s macro to specify placement of list of paths to search in
   3550 	      and %a or %A macro to specify placement of arguments passed to
   3551 	      the :find command.  If some of the macros are not used, they
   3552 	      will be implicitly added after a space to the value of the
   3553 	      option in the following order: %s, %a.  Note that when neither
   3554 	      %a nor %A are specified, it's %a which is added implicitly.
   3555 
   3556 	      The macros can slightly change their meaning depending on :find
   3557 	      command arguments.  When the first argument points to an
   3558 	      existing directory, %s is assigned all arguments and %a/%A are
   3559 	      left empty.  Otherwise, %s is assigned a dot (".") meaning
   3560 	      current directory or list of selected file names, if any.	 %a/%A
   3561 	      are assigned arguments when first argument starts with a dash
   3562 	      ("-"), otherwise %a gets an escaped version of arguments,
   3563 	      prepended by "-name" (on *nix) or "-iname" (on Windows)
   3564 	      predicate.
   3565 
   3566 	      %a and %A macros contain almost the same value, the difference
   3567 	      is that %a can be escaped and %A is never escaped.  %A is to be
   3568 	      used mainly on Windows, where shell escaping is a mess and can
   3569 	      break command execution.
   3570 
   3571 	      Optional %u or %U macro could be used (if both specified %U is
   3572 	      chosen) to force redirection to custom or unsorted custom view
   3573 	      respectively.
   3574 
   3575 	      Starting from Windows Server 2003 a where command is available,
   3576 	      one can configure vifm to use it in the following way:
   3577 
   3578 		set findprg="where /R %s %A"
   3579 
   3580 	      As the syntax of this command is rather limited, one can't use
   3581 	      :find command with selection of more than one item in this case.
   3582 	      The command looks for files only completely ignoring
   3583 	      directories.
   3584 
   3585 	      When using find port on Windows, another option is to setup
   3586 	      'findprg' like this:
   3587 
   3588 		set findprg="find %s %a"
   3589 
   3590        'followlinks'
   3591 	      type: boolean
   3592 	      default: true
   3593 	      Follow links on l or Enter.  That is navigate to destination
   3594 	      file instead of treating the link as if it were target file.
   3595 	      Doesn't affects links to directories, which are always entered
   3596 	      (use gf key for directories).
   3597 
   3598        'fusehome'
   3599 	      type: string
   3600 	      default: "($XDG_DATA_HOME/.local/share | $VIFM)/fuse/"
   3601 	      Directory to be used as a root dir for FUSE mounts.  Value of
   3602 	      the option can contain environment variables (in form
   3603 	      "$envname"), which will be expanded (prepend it with a slash to
   3604 	      prevent expansion).  The value should expand to an absolute
   3605 	      path.
   3606 
   3607 	      If you change this option, vifm won't remount anything.  It
   3608 	      affects future mounts only.  See "Automatic FUSE mounts" section
   3609 	      below for more information.
   3610 
   3611        'gdefault' 'gd'
   3612 	      type: boolean
   3613 	      default: false
   3614 	      When on, 'g' flag is on for :substitute by default.
   3615 
   3616        'grepprg'
   3617 	      type: string
   3618 	      default: "grep -n -H -I -r %i %a %s"
   3619 	      Specifies format for an external command to be invoked by the
   3620 	      :grep command.  The format supports expanding of macros,
   3621 	      specific for a particular *prg option, and %% sequence for
   3622 	      inserting percent sign literally.	 This option should include
   3623 	      the %i macro to specify placement of "-v" string when inversion
   3624 	      of results is requested, %a or %A macro to specify placement of
   3625 	      arguments passed to the :grep command and the %s macro to
   3626 	      specify placement of list of files to search in.	If some of the
   3627 	      macros are not used, they will be implicitly added after a space
   3628 	      to the value of the 'grepprg' option in the following order: %i,
   3629 	      %a, %s.  Note that when neither %a nor %A are specified, it's %a
   3630 	      which is added implicitly.
   3631 
   3632 	      Optional %u or %U macro could be used (if both specified %U is
   3633 	      chosen) to force redirection to custom or unsorted custom view
   3634 	      respectively.
   3635 
   3636 	      See 'findprg' option for description of difference between %a
   3637 	      and %A.
   3638 
   3639 	      Example of setup to use ack (http://beyondgrep.com/) instead of
   3640 	      grep:
   3641 
   3642 		set grepprg='ack -H -r %i %a %s'
   3643 
   3644 	      or The Silver Searcher
   3645 	      (https://github.com/ggreer/the_silver_searcher):
   3646 
   3647 		set grepprg='ag --line-numbers %i %a %s'
   3648 
   3649 
   3650 
   3651        'histcursor'
   3652 	      type: set
   3653 	      default: startup,dirmark,direnter
   3654 	      Defines situations when cursor should be moved according to
   3655 	      directory history:
   3656 	       - startup  - on loading file lists during startup
   3657 	       - dirmark  - after navigating to a mark that doesn't specify
   3658 	      file
   3659 	       - direnter - on opening directory from a file list
   3660 
   3661 	      This option has no effect when 'autochpos' is disabled.
   3662 
   3663 	      Note that the list is not exhaustive and there are other
   3664 	      situations when cursor is positioned automatically.
   3665 
   3666        'history' 'hi'
   3667 	      type: integer
   3668 	      default: 15
   3669 	      Maximum number of stored items in all histories.
   3670 
   3671        'hlsearch' 'hls'
   3672 	      type: boolean
   3673 	      default: true
   3674 	      Highlight all matches of search pattern.
   3675 
   3676        'iec'  type: boolean
   3677 	      default: false
   3678 	      Use KiB, MiB, ... suffixes instead of K, M, ... when printing
   3679 	      size in human-friendly format.
   3680 
   3681        'ignorecase' 'ic'
   3682 	      type: boolean
   3683 	      default: false
   3684 	      Ignore case in search patterns (:substitute, / and ? commands)
   3685 	      and characters after f and F commands.  It doesn't affect file
   3686 	      filtering.
   3687 
   3688        'incsearch' 'is'
   3689 	      type: boolean
   3690 	      default: false
   3691 	      When this option is set, search and view update for local filter
   3692 	      is be performed starting from initial cursor position each time
   3693 	      search pattern is changed.
   3694 
   3695        'iooptions'
   3696 	      type: set
   3697 	      default:
   3698 	      Controls details of file operations.  The following values are
   3699 	      available:
   3700 	       - fastfilecloning - perform fast file cloning (copy-on-write),
   3701 	      when available
   3702 				   (available on Linux and btrfs file system).
   3703 
   3704        'laststatus' 'ls'
   3705 	      type: boolean
   3706 	      default: true
   3707 	      Controls if status bar is visible.
   3708 
   3709        'lines'
   3710 	      type: integer
   3711 	      default: terminal height on startup
   3712 	      Terminal height in lines.
   3713 
   3714        'locateprg'
   3715 	      type: string
   3716 	      default: "locate %a"
   3717 	      Specifies format for an external command to be invoked by the
   3718 	      :locate command.	The format supports expanding of macros,
   3719 	      specific for a particular *prg option, and %% sequence for
   3720 	      inserting percent sign literally.	 This option should include
   3721 	      the %a macro to specify placement of arguments passed to the
   3722 	      :locate command.	If the macro is not used, it will be
   3723 	      implicitly added after a space to the value of this option.
   3724 
   3725 	      Optional %u or %U macro could be used (if both specified %U is
   3726 	      chosen) to force redirection to custom or unsorted custom view
   3727 	      respectively.
   3728 
   3729        'mediaprg'
   3730 	      type: string
   3731 	      default: path to bundled script that supports udevil and udisks
   3732 	      {only for *nix}
   3733 	      Specifies command to be used to manage media devices.  Used by
   3734 	      :media command.
   3735 
   3736 	      The command can be passed the following parameters:
   3737 	       - list		-- list media
   3738 	       - mount {device} -- mount a device
   3739 	       - unmount {path} -- unmount given mount point
   3740 
   3741 	      The output of `list` subcommand is parsed in search of lines
   3742 	      that start with one of the following prefixes:
   3743 	       - device=      - specifies device path (e.g., "/dev/sde")
   3744 	       - label=	      - specifies optional device label (e.g., "Memory
   3745 	      card")
   3746 	       - mount-point= - specifies a mount point (can be absent or
   3747 	      appear more than once)
   3748 
   3749 	      All other lines are ignored.  Each `device=` starts a new
   3750 	      section describing a device which should include two other
   3751 	      possible prefixes.
   3752 
   3753 	      `list` subcommand is assumed to always succeed, while error
   3754 	      stream and exit code of `mount` and `unmount` is taken into
   3755 	      account to determine whether operation was performed
   3756 	      successfully.
   3757 
   3758        'lsoptions'
   3759 	      type: string list
   3760 	      default: ""
   3761 	      scope: local
   3762 
   3763 	      Configures ls-like view.
   3764 
   3765 		item	      used for
   3766 		transposed    filling view grid by columns rather than by
   3767 	      lines
   3768 
   3769 
   3770        'lsview'
   3771 	      type: boolean
   3772 	      default: false
   3773 	      scope: local
   3774 	      When this option is set, directory view will be displayed in
   3775 	      multiple columns with file names similar to output of `ls -x`
   3776 	      command.	See "ls-like view" section below for format
   3777 	      description.  This option has no effect if 'millerview' is on.
   3778 
   3779        'milleroptions'
   3780 	      type: string list
   3781 	      default: "lsize:1,csize:1,rsize:1"
   3782 	      scope: local
   3783 
   3784 	      Configures miller view.
   3785 
   3786 		item	      default  used for
   3787 		lsize:num     0	       left column
   3788 		csize:num     1	       center column (can't be disabled)
   3789 		rsize:num     0	       right column
   3790 
   3791 	      *size specifies ratios of columns.  Each ratio is in the range
   3792 	      from 0 to 100 and values are adjusted to fit the limits.	Zero
   3793 	      disables a column, but central (main) column can't be disabled.
   3794 
   3795 	      Example of two-column mode which is useful in combination with
   3796 	      :view command:
   3797 
   3798 		set milleroptions=lsize:1,csize:2
   3799 
   3800 
   3801        'millerview'
   3802 	      type: boolean
   3803 	      default: false
   3804 	      scope: local
   3805 	      When this option is set, directory view will be displayed in
   3806 	      multiple cascading columns.  Ignores 'lsview'.
   3807 
   3808        'mintimeoutlen'
   3809 	      type: integer
   3810 	      default: 150
   3811 	      The fracture of 'timeoutlen' in milliseconds that is waited
   3812 	      between subsequent input polls, which affects various
   3813 	      asynchronous operations (detecting changes made by external
   3814 	      applications, monitoring background jobs, redrawing UI).	There
   3815 	      are no strict guarantees, however the higher this value is, the
   3816 	      less is CPU load in idle mode.
   3817 
   3818        'number' 'nu'
   3819 	      type: boolean
   3820 	      default: false
   3821 	      scope: local
   3822 	      Print line number in front of each file name when 'lsview'
   3823 	      option is turned off.  Use 'numberwidth' to control width of
   3824 	      line number.  Also see 'relativenumber'.
   3825 
   3826        'numberwidth' 'nuw'
   3827 	      type: integer
   3828 	      default: 4
   3829 	      scope: local
   3830 	      Minimal number of characters for line number field.
   3831 
   3832        'previewprg'
   3833 	      type: string
   3834 	      default: ""
   3835 	      scope: local
   3836 
   3837 	      External command to be used instead of preview programs
   3838 	      configured via :fileviewer command.
   3839 
   3840 	      Example:
   3841 
   3842 		" always show git log in preview of files inside some repository
   3843 		au DirEnter '~/git-repo/**/*' setl previewprg='git log --color -- %c 2>&1'
   3844 
   3845        'quickview'
   3846 	      type: boolean
   3847 	      default: false
   3848 	      Whether quick view (:view) is currently active or not.
   3849 
   3850        'relativenumber' 'rnu'
   3851 	      type: boolean
   3852 	      default: false
   3853 	      scope: local
   3854 	      Print relative line number in front of each file name when
   3855 	      'lsview' option is turned off.  Use 'numberwidth' to control
   3856 	      width of line number.  Various combinations of 'number' and
   3857 	      'relativenumber' lead to such results:
   3858 
   3859 				      nonumber		     number
   3860 
   3861 		  norelativenumber   | first		    |	1 first
   3862 				     | second		    |	2 second
   3863 				     | third		    |	3 third
   3864 
   3865 		    relativenumber   |	 1 first	    |	1 first
   3866 				     |	 0 second	    |2	  second
   3867 				     |	 1 third	    |	1 third
   3868 
   3869 
   3870        'rulerformat' 'ruf'
   3871 	      type: string
   3872 	      default: "%l/%S "
   3873 	      Determines the content of the ruler.  Its minimal width is 13
   3874 	      characters and it's right aligned.  Following macros are
   3875 	      supported:
   3876 	       %=  - separation point between left and right aligned halves of
   3877 	      the line
   3878 	       %l  - file number
   3879 	       %L  - total number of files in view (including filtered out
   3880 	      ones)
   3881 	       %x  - number of files excluded by filters
   3882 	       %0- - old name for %x macro
   3883 	       %S  - number of displayed files
   3884 	       %=  - separation point between left and right align items
   3885 	       %%  - percent sign
   3886 	       %[  - designates beginning of an optional block
   3887 	       %]  - designates end of an optional block
   3888 
   3889 	      Percent sign can be followed by optional minimum field width.
   3890 	      Add '-' before minimum field width if you want field to be right
   3891 	      aligned.
   3892 
   3893 	      Example:
   3894 
   3895 		set rulerformat='%2l-%S%[ +%x%]'
   3896 
   3897        'runexec'
   3898 	      type: boolean
   3899 	      default: false
   3900 	      Run executable file on Enter or l.
   3901 
   3902        'scrollbind' 'scb'
   3903 	      type: boolean
   3904 	      default: false
   3905 	      When this option is set, vifm will try to keep difference of
   3906 	      scrolling positions of two windows constant.
   3907 
   3908        'scrolloff' 'so'
   3909 	      type: integer
   3910 	      default: 0
   3911 	      Minimal number of screen lines to keep above and below the
   3912 	      cursor.  If you want cursor line to always be in the middle of
   3913 	      the view (except at the beginning or end of the file list), set
   3914 	      this option to some large value (e.g. 999).
   3915 
   3916        'shell' 'sh'
   3917 	      type: string
   3918 	      default: $SHELL or "/bin/sh" or "cmd" (on MS-Windows)
   3919 	      Full path to the shell to use to run external commands.  On *nix
   3920 	      a shell argument can be supplied.
   3921 
   3922        'shortmess' 'shm'
   3923 	      type: charset
   3924 	      default: "p"
   3925 	      Contains a sequence of single-character flags.  Each flag
   3926 	      enables shortening of some message displayed by vifm in the TUI.
   3927 	      Flags:
   3928 	       - M - shorten titles in windows of terminal multiplexers
   3929 	      created by vifm down to file name instead of using full path.
   3930 	       - T - truncate status-bar messages in the middle if they are
   3931 	      too long to fit on the command line.  "..." will appear in the
   3932 	      middle.
   3933 	       - p - use tilde shortening in view titles.
   3934 
   3935 
   3936        'showtabline' 'stal'
   3937 	      type: enumeration
   3938 	      default: multiple
   3939 	      Specifies when tab line should be displayed.  Possible values:
   3940 	       - never	  - never display tab line
   3941 	       - multiple - show tab line only when there are at least two
   3942 	      tabs
   3943 	       - always	  - display tab line always
   3944 
   3945 	      Alternatively 0, 1 and 2 Vim-like values	are also accepted and
   3946 	      correspond to "never", "multiple" and "always" respectively.
   3947 
   3948        'sizefmt'
   3949 	      type: string list
   3950 	      default: "units:iec"
   3951 	      Configures the way size is formatted in human-friendly way.
   3952 
   3953 		  item		value	      meaning
   3954 		  units:	iec	      Use 1024 byte units (K or KiB,
   3955 	      etc.).
   3956 					      See 'iec' option.
   3957 				si	      Use 1000 byte units (KB, etc.).
   3958 		  precision:	i > 0	      How many fraction digits to
   3959 	      consider.
   3960 				{not set}     Precision of 1 for integer part
   3961 	      < 10,
   3962 					      0 otherwise (provides old
   3963 	      behaviour).
   3964 
   3965 	      Numbers are rounded from zero.  Trailing zeros are dropped.
   3966 
   3967 	      Example:
   3968 
   3969 		set sizefmt=units:iec,precision:2
   3970 
   3971 
   3972        'slowfs'
   3973 	      type: string list
   3974 	      default: ""
   3975 	      only for *nix
   3976 	      A list of mounter fs name beginnings (first column in /etc/mtab
   3977 	      or /proc/mounts) or paths prefixes for fs/directories that work
   3978 	      too slow for you.	 This option can be used to stop vifm from
   3979 	      making some requests to particular kinds of file systems that
   3980 	      can slow down file browsing.  Currently this means don't check
   3981 	      if directory has changed, skip check if target of symbolic links
   3982 	      exists, assume that link target located on slow fs to be a
   3983 	      directory (allows entering directories and navigating to files
   3984 	      via gf).	If you set the option to "*", it means all the systems
   3985 	      are considered slow (useful for cygwin, where all the checks
   3986 	      might render vifm very slow if there are network mounts).
   3987 
   3988 	      Example for autofs root /mnt/autofs:
   3989 
   3990 		set slowfs+=/mnt/autofs
   3991 
   3992        'smartcase' 'scs'
   3993 	      type: boolean
   3994 	      default: false
   3995 	      Overrides the ignorecase option if the search pattern contains
   3996 	      at least one upper case character.  Only used when ignorecase
   3997 	      option is enabled.  It doesn't affect file filtering.
   3998 
   3999        'sort' type: string list
   4000 	      default: +name on *nix and +iname on Windows
   4001 	      scope: local
   4002 	      Sets list of sorting keys (first item is primary key, second is
   4003 	      secondary key, etc.):
   4004 		 [+-]ext     - extension of files and directories
   4005 		 [+-]fileext - extension of files only
   4006 		 [+-]name    - name (including extension)
   4007 		 [+-]iname   - name (including extension, ignores case)
   4008 		 [+-]type    - file type
   4009 	      (dir/reg/exe/link/char/block/sock/fifo)
   4010 		 [+-]dir     - directory grouping (directory < file)
   4011 		 [+-]gid     - group id (*nix only)
   4012 		 [+-]gname   - group name (*nix only)
   4013 		 [+-]mode    - file type derived from its mode (*nix only)
   4014 		 [+-]perms   - permissions string (*nix only)
   4015 		 [+-]uid     - owner id (*nix only)
   4016 		 [+-]uname   - owner name (*nix only)
   4017 		 [+-]nlinks  - number of hard links (*nix only)
   4018 		 [+-]inode   - inode number (*nix only)
   4019 		 [+-]size    - size
   4020 		 [+-]nitems  - number of items in a directory (zero for files)
   4021 		 [+-]groups  - groups extracted via regexps from 'sortgroups'
   4022 		 [+-]target  - symbolic link target (empty for other file
   4023 	      types)
   4024 		 [+-]atime   - time accessed (e.g. read, executed)
   4025 		 [+-]ctime   - time changed (changes in metadata, e.g. mode)
   4026 		 [+-]mtime   - time modified (when file contents is changed)
   4027 
   4028 	      Note: look for st_atime, st_ctime and st_mtime in "man 2 stat"
   4029 	      for more information on time keys.
   4030 
   4031 	      '+' means ascending sort for this key, and '-' means descending
   4032 	      sort.
   4033 
   4034 	      "dir" key is somewhat similar in this regard but it's added
   4035 	      implicitly: when "dir" is not specified, sorting behaves as if
   4036 	      it was the first key in the list.	 That's why if one wants
   4037 	      sorting algorithm to mix directories and files, "dir" should be
   4038 	      appended to sorting option, for example like this:
   4039 
   4040 		set sort+=dir
   4041 
   4042 	      or
   4043 
   4044 		set sort=-size,dir
   4045 
   4046 	      Value of the option is checked to include dir key and default
   4047 	      sorting key (name on *nix, iname on Windows).  Here is what
   4048 	      happens if one of them is missing:
   4049 
   4050 		- type key is added at the beginning;
   4051 
   4052 		- default key is added at the end;
   4053 
   4054 	      all other keys are left untouched (at most they are moved).
   4055 
   4056 	      This option also changes view columns according to primary
   4057 	      sorting key set, unless 'viewcolumns' option is not empty.
   4058 
   4059        'sortnumbers'
   4060 	      type: boolean
   4061 	      default: false
   4062 	      scope: local
   4063 	      Natural sort of (version) numbers within text.
   4064 
   4065        'sortgroups'
   4066 	      type: string
   4067 	      default: ""
   4068 	      scope: local
   4069 	      Sets comma-separated list of regular expressions to use for
   4070 	      group sorting, double comma is literal comma.  Each expression
   4071 	      should contain at least one group or its value will be
   4072 	      considered to be always empty.  Only first match of each regular
   4073 	      expression is considered.	 Groups are considered from right to
   4074 	      first similar to 'sort', first group divides list of files into
   4075 	      sub-groups, each of which is sorted by the second group and so
   4076 	      on.
   4077 
   4078 	      Example:
   4079 		set sortgroups=-(done|todo).*
   4080 	      this would put files with "-done" in their names above all files
   4081 	      with "-todo".
   4082 
   4083        'sortorder'
   4084 	      type: enumeration
   4085 	      default: ascending
   4086 	      Sets sort order for primary key: ascending, descending.
   4087 
   4088        'statusline' 'stl'
   4089 	      type: string
   4090 	      default: ""
   4091 	      Determines the content of the status line (the line right above
   4092 	      command-line).  Empty string means use same format like in
   4093 	      previous versions.  Following macros are supported:
   4094 
   4095 	      - %t - file name (considering value of the 'classify' option)
   4096 
   4097 	      - %T - symbolic link target (empty for other filetypes)
   4098 
   4099 	      - %f - file name relative to current directory (considers
   4100 		'classify')
   4101 
   4102 	      - %A - file attributes (permissions on *nix or properties on
   4103 		Windows) %u - user name or uid (if it cannot be resolved)
   4104 
   4105 	      - %g - group name or gid (if it cannot be resolved)
   4106 
   4107 	      - %s - file size in human readable format
   4108 
   4109 	      - %E - size of selected files in human readable format, same as
   4110 		%s when no files are selected, except that it will never show
   4111 		size of ../ in visual mode, since it cannot be selected
   4112 
   4113 	      - %d - file modification date (uses 'timefmt' option)
   4114 
   4115 	      - %D - path of the other pane for single-pane layout
   4116 
   4117 	      - %a - amount of free space available at current partition
   4118 
   4119 	      - %z - short tips/tricks/hints that chosen randomly after one
   4120 		minute period
   4121 
   4122 	      - %{<expr>} - evaluate arbitrary vifm expression '<expr>', e.g.
   4123 		'&sort'
   4124 
   4125 	      - %* - resets or applies one of User1..User9 highlight groups;
   4126 		reset happens when width field is 0 or not specified, one of
   4127 		groups gets picked when width field is in the range from 1 to
   4128 		9
   4129 
   4130 	      - all 'rulerformat' macros
   4131 
   4132 	      Percent sign can be followed by optional minimum field width.
   4133 	      Add '-' before minimum field width if you want field to be right
   4134 	      aligned.
   4135 
   4136 	      On Windows file properties include the following flags (upper
   4137 	      case means flag is on):
   4138 	       A - archive
   4139 	       H - hidden
   4140 	       I - content isn't indexed
   4141 	       R - readonly
   4142 	       S - system
   4143 	       C - compressed
   4144 	       D - directory
   4145 	       E - encrypted
   4146 	       P - reparse point (e.g. symbolic link)
   4147 	       Z - sparse file
   4148 
   4149 	      Example without colors:
   4150 
   4151 		set statusline="  %t%= %A %10u:%-7g %15s %20d %{&sort} "
   4152 
   4153 	      Example with colors:
   4154 
   4155 	       highlight User1 ctermbg=yellow
   4156 	       highlight User2 ctermbg=blue ctermfg=white cterm=bold
   4157 	       set statusline="%1* %-26t %2* %= %1* %A %2* %7u:%-7g %1* %-5s %2* %d "
   4158 
   4159 
   4160        'suggestoptions'
   4161 	      type: string list
   4162 	      default:
   4163 	      Controls when, for what and how suggestions are displayed.  The
   4164 	      following values are available:
   4165 	       - normal		 - in normal mode;
   4166 	       - visual		 - in visual mode;
   4167 	       - view		 - in view mode;
   4168 	       - otherpane	 - use other pane to display suggestions, when
   4169 	      available;
   4170 	       - delay[:num]	 - display suggestions after a small delay (to
   4171 	      do not annoy if you just want to type a fast shortcut consisting
   4172 	      of multiple keys), num specifies the delay in ms (500 by
   4173 	      default), 'timeoutlen' at most;
   4174 	       - keys		 - include shortcuts (commands and selectors);
   4175 	       - foldsubkeys	 - fold multiple keys with common prefix;
   4176 	       - marks		 - include marks;
   4177 	       - registers[:num] - include registers, at most num files (5 by
   4178 	      default).
   4179 
   4180        'syncregs'
   4181 	      type: string
   4182 	      default:
   4183 	      Specifies identifier of group of instances that share registers
   4184 	      between each other.  When several instances of vifm have this
   4185 	      option set to identical value, they automatically synchronize
   4186 	      contents of their registers on operations which use them.
   4187 
   4188        'syscalls'
   4189 	      type: boolean
   4190 	      default: false
   4191 	      When disabled, vifm will rely on external applications to
   4192 	      perform file-system operations, otherwise system calls are used
   4193 	      instead (much faster and supports progress tracking).  The
   4194 	      option should eventually be removed.  Mostly *nix-like systems
   4195 	      are affected.
   4196 
   4197        'tabscope'
   4198 	      type: enumeration
   4199 	      default: global
   4200 	      Picks style of tabs, which defines what a single tab contains.
   4201 	      Possible values:
   4202 	       - global - tab describes complete UI of two views and how they
   4203 	      are arranged
   4204 	       - pane	- tab is located "inside" a pane and manages it and
   4205 	      quick view
   4206 
   4207        'tabstop' 'ts'
   4208 	      type: integer
   4209 	      default: value from curses library
   4210 	      Number of spaces that a Tab in the file counts for.
   4211 
   4212        'timefmt'
   4213 	      type: string
   4214 	      default: "%m/%d %H:%M"
   4215 	      Format of time in file list.  See "man 1 date" or "man 3
   4216 	      strftime" for details.
   4217 
   4218        'timeoutlen' 'tm'
   4219 	      type: integer
   4220 	      default: 1000
   4221 	      The time in milliseconds that is waited for a mapped key in case
   4222 	      of already typed key sequence is ambiguous.
   4223 
   4224        'title'
   4225 	      type: boolean
   4226 	      default: true when title can be restored, false otherwise
   4227 	      When enabled title of the terminal or terminal multiplexer's
   4228 	      window is updated according to current location.
   4229 
   4230        'trash'
   4231 	      type: boolean
   4232 	      default: true
   4233 	      Use trash directory.  See "Trash directory" section below.
   4234 
   4235        'trashdir'
   4236 	      type: string
   4237 	      default: on *nix:
   4238 		 "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash"
   4239 		 or if $VIFM/Trash doesn't exist
   4240 		 "%r/.vifm-Trash-%u,$XDG_DATA_HOME/vifm/Trash,%r/.vifm-Trash"
   4241 		       on Windows:
   4242 		 "%r/.vifm-Trash,$XDG_DATA_HOME/vifm/Trash"
   4243 	      List of trash directory path specifications, separated with
   4244 	      commas.  Each list item either defines an absolute path to trash
   4245 	      directory or a path relative to a mount point root when list
   4246 	      element starts with "%r/".  Value of the option can contain
   4247 	      environment variables (of form "$envname"), which will be
   4248 	      expanded (prepend $ with a slash to prevent expansion).
   4249 	      Environment variables are expanded when the option is set.
   4250 
   4251 	      On *nix, if element ends with "%u", the mark is replaced with
   4252 	      real user ID and permissions are set so that only that only
   4253 	      owner is able to use it.
   4254 	      Note that even this setup is not completely secure when combined
   4255 	      with "%r/" and it's overall safer to keep files in home
   4256 	      directory, but that implies cost of copying files between
   4257 	      partitions.
   4258 
   4259 	      When new file gets cut (deleted) vifm traverses each element of
   4260 	      the option in the order of their appearance and uses first trash
   4261 	      directory that it was able to create or that is already
   4262 	      writable.
   4263 
   4264 	      Default value tries to use trash directory per mount point and
   4265 	      falls back to ~/.vifm/Trash on failure.
   4266 
   4267 	      Will attempt to create the directory if it does not exist.  See
   4268 	      "Trash directory" section below.
   4269 
   4270        'tuioptions' 'to'
   4271 	      type: charset
   4272 	      default: "ps"
   4273 	      Each flag configures some aspect of TUI appearance.  The flags
   4274 	      are:
   4275 	      p - when included:
   4276 		* file list inside a pane gets additional single character
   4277 	      padding on left and right sides;
   4278 		* quick view and view mode get single character padding.
   4279 	      s - when included, left and right borders (side borders, hence
   4280 	      "s" character) are visible.
   4281 	      u - use Unicode characters in the TUI (Unicode ellipsis instead
   4282 	      of "...").
   4283 
   4284        'undolevels' 'ul'
   4285 	      type: integer
   4286 	      default: 100
   4287 	      Maximum number of changes that can be undone.  Note that here
   4288 	      single file operation is used as a unit, not operation, i.e.
   4289 	      deletion of 101 files will exceed default limit.
   4290 
   4291        'vicmd'
   4292 	      type: string
   4293 	      default: "vim"
   4294 	      The actual command used to start vi.  Ampersand sign at the end
   4295 	      (regardless whether it's preceded by space or not) means
   4296 	      backgrounding of command.
   4297 
   4298 	      Background flag is ignored in certain context where vifm waits
   4299 	      for the editor to finish.	 Such contexts include any command
   4300 	      that spawns editor to change list of file names or a command,
   4301 	      with :rename being one example.  `-f` is also appended to
   4302 	      prevent forking in such cases, so the command needs to handle
   4303 	      the flag.
   4304 
   4305 	      Additionally `+{num}` and `+'call cursor()'` arguments are used
   4306 	      to position cursor when location is known.
   4307 
   4308        'viewcolumns'
   4309 	      type: string
   4310 	      default: ""
   4311 	      scope: local
   4312 	      Format string containing list of columns in the view.  When this
   4313 	      option is empty, view columns to show are chosen automatically
   4314 	      using sorting keys (see 'sort') as a base.  Value of this option
   4315 	      is ignored if 'lsview' is set.  See "Column view" section below
   4316 	      for format description.
   4317 
   4318 	      An example of setting the options for both panes (note :windo
   4319 	      command):
   4320 
   4321 		windo set viewcolumns=-{name}..,6{size},11{perms}
   4322 
   4323        'vixcmd'
   4324 	      type: string
   4325 	      default: value of 'vicmd'
   4326 	      Same as 'vicmd', but takes precedence over it when running in X.
   4327 
   4328        'vifminfo'
   4329 	      type: set
   4330 	      default: bookmarks,bmarks
   4331 	      Controls what will be saved in the $VIFM/vifminfo file.
   4332 
   4333 		 bmarks	   - named bookmarks
   4334 		 bookmarks - marks, except special ones like '< and '>
   4335 		 tui	   - state of the user interface (sorting, number of
   4336 	      windows, quick
   4337 			     view state, active view)
   4338 		 dhistory  - directory history
   4339 		 state	   - file name and dot filters and terminal
   4340 	      multiplexers integration
   4341 			     state
   4342 		 cs	   - primary color scheme
   4343 		 savedirs  - save last visited directory (requires dhistory)
   4344 		 chistory  - command line history
   4345 		 shistory  - search history (/ and ? commands)
   4346 		 phistory  - prompt history
   4347 		 fhistory  - history of local filter (see description of the
   4348 	      "=" normal mode
   4349 			     command)
   4350 		 dirstack  - directory stack overwrites previous stack, unless
   4351 	      stack of
   4352 			     current session is empty
   4353 		 registers - registers content
   4354 		 options   - all options that can be set with the :set command
   4355 	      (obsolete)
   4356 		 filetypes - associated programs and viewers (obsolete)
   4357 		 commands  - user defined commands (see :command description)
   4358 	      (obsolete)
   4359 
   4360        'vimhelp'
   4361 	      type: boolean
   4362 	      default: false
   4363 	      Use vim help format.
   4364 
   4365        'wildmenu' 'wmnu'
   4366 	      type: boolean
   4367 	      default: false
   4368 	      Controls whether possible matches of completion will be shown
   4369 	      above the command line.
   4370 
   4371        'wildstyle'
   4372 	      type: enumeration
   4373 	      default: bar
   4374 	      Picks presentation style of wild menu.  Possible values:
   4375 	       - bar   - one-line with left-to-right cursor
   4376 	       - popup - multi-line with top-to-bottom cursor
   4377 
   4378        'wordchars'
   4379 	      type: string list
   4380 	      default: "1-8,14-31,33-255" (that is all non-whitespace
   4381 	      characters)
   4382 	      Specifies which characters in command-line mode should be
   4383 	      considered as part of a word.  Value of the option is comma-
   4384 	      separated list of ranges.	 If both endpoints of a range match,
   4385 	      single endpoint is enough (e.g. "a" = "a-a").  Both endpoints
   4386 	      are inclusive.  There are two accepted forms: character
   4387 	      representing itself or number encoding character according to
   4388 	      ASCII table.  In case of ambiguous characters (dash, comma,
   4389 	      digit) use numeric form.	Accepted characters are in the range
   4390 	      from 0 to 255.  Any Unicode character with code greater than 255
   4391 	      is considered to be part of a word.
   4392 
   4393 	      The option affects Alt-D, Alt-B and Alt-F, but not Ctrl-W.  This
   4394 	      is intentionally to allow two use cases:
   4395 
   4396 	       - Moving by WORDS and deletion by words.
   4397 	       - Moving by words and deletion by WORDS.
   4398 
   4399 	      To get the latter use the following mapping:
   4400 
   4401 		cnoremap <c-w> <a-b><a-d>
   4402 
   4403 	      Also used for abbreviations.
   4404 
   4405        'wrap' type: boolean
   4406 	      default: true
   4407 	      Controls whether to wrap text in quick view.
   4408 
   4409        'wrapscan' 'ws'
   4410 	      type: boolean
   4411 	      default: true
   4412 	      Searches wrap around end of the list.
   4413 
   4414 Mappings
   4415        Map arguments
   4416 
   4417        LHS of mappings can be preceded by arguments which take the form of
   4418        special sequences:
   4419 
   4420        <silent>
   4421 	      Postpone UI updates until RHS is completely processed.
   4422 
   4423        <wait> In case of builtin mapping causing conflict for a user-defined
   4424 	      mapping (e.g., `t` builtin to a partially typed `ta` user-
   4425 	      defined mapping), ignore the builtin mapping and wait for input
   4426 	      indefinitely as opposed to default behaviour of triggering the
   4427 	      builtin mapping after a delay defined by 'timeoutlen'.  Example:
   4428 
   4429 		nnoremap <wait> tw :set wrap!<cr>
   4430 		nnoremap <wait> tn :set number!<cr>
   4431 		nnoremap <wait> tr :set relativenumber!<cr>
   4432 
   4433        Special sequences
   4434 
   4435        Since it's not easy to enter special characters there are several
   4436        special sequences that can be used in place of them.  They are:
   4437 
   4438        <cr>   Enter key.
   4439 
   4440        <esc>  Escape key.
   4441 
   4442        <space>
   4443 	      Space key.
   4444 
   4445        <lt>   Less-than character (<).
   4446 
   4447        <nop>  provides a way to disable a mapping (by mapping it to <nop>).
   4448 
   4449        <bs>   Backspace key (see key conflict description below).
   4450 
   4451        <tab> <s-tab>
   4452 	      Tabulation and Shift+Tabulation keys.
   4453 
   4454        <home> <end>
   4455 	      Home/End.
   4456 
   4457        <left> <right> <up> <down>
   4458 	      Arrow keys.
   4459 
   4460        <pageup> <pagedown>
   4461 	      PageUp/PageDown.
   4462 
   4463        <del> <delete>
   4464 	      Delete key.  <del> and <delete> mean different codes, but
   4465 	      <delete> is more common.
   4466 
   4467        <insert>
   4468 	      Insert key.
   4469 
   4470        <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_>
   4471 	      Control + some key (see key conflict description below).
   4472 
   4473        <c-@>  only for *nix
   4474 	      Control + Space.
   4475 
   4476        <a-a>,<a-b>,...,<a-z>
   4477 	      <m-a>,<m-b>,...,<m-z> Alt + some key.
   4478 
   4479        <a-c-a>,<a-c-b>,...,<a-c-z>
   4480 	      <m-c-a>,<m-c-b>,...,<m-c-z> only for *nix
   4481 	      Alt + Ctrl + some key.
   4482 
   4483        <f0> - <f63>
   4484 	      Functional keys.
   4485 
   4486        <c-f1> - <c-f12>
   4487 	      only for MS-Windows
   4488 	      functional keys with Control key pressed.
   4489 
   4490        <a-f1> - <a-f12>
   4491 	      only for MS-Windows
   4492 	      functional keys with Alt key pressed.
   4493 
   4494        <s-f1> - <s-f12>
   4495 	      only for MS-Windows
   4496 	      functional keys with Shift key pressed.
   4497 
   4498        Note that due to the way terminals process their input, several
   4499        keyboard keys might be mapped to single key code, for example:
   4500 
   4501 	 - <cr> and <c-m>;
   4502 
   4503 	 - <tab> and <c-i>;
   4504 
   4505 	 - <c-h> and <bs>;
   4506 
   4507 	 - etc.
   4508 
   4509        Most of the time they are defined consistently and don't cause
   4510        surprises, but <c-h> and <bs> are treated differently in different
   4511        environments (although they match each other all the time), that's why
   4512        they correspond to different keys in vifm.  As a consequence, if you
   4513        map <c-h> or <bs> be sure to repeat the mapping with the other one so
   4514        that it works in all environments.  Alternatively, provide your mapping
   4515        in one form and add one of the following:
   4516 
   4517 	 " if mappings with <c-h> in the LHS work
   4518 	 map <c-h> <bs>
   4519 	 " if mappings with <bs> in the LHS work
   4520 	 map <bs> <c-h>
   4521 
   4522        Whitespace
   4523 
   4524        vifm removes whitespace characters at the beginning and end of
   4525        commands.  That's why you may want to use <space> at the end of rhs in
   4526        mappings.  For example:
   4527 
   4528 	 cmap <f1> man<space>
   4529 
   4530        will put "man " in line when you hit the <f1> key in the command line
   4531        mode.
   4532 
   4533 Expression syntax
   4534        Supported expressions is a subset of what VimL provides.
   4535 
   4536        Expression syntax summary, from least to most significant:
   4537 
   4538        expr1	  expr2
   4539 		  expr2 || expr2 ..	  logical OR
   4540 
   4541        expr2	  expr3
   4542 		  expr3 && expr3 ..	  logical AND
   4543 
   4544        expr3	  expr4
   4545 		  expr4 == expr4	  equal
   4546 		  expr4 != expr4	  not equal
   4547 		  expr4 >  expr4	  greater than
   4548 		  expr4 >= expr4	  greater than or equal
   4549 		  expr4 <  expr4	  smaller than
   4550 		  expr4 <= expr4	  smaller than or equal
   4551 
   4552        expr4	  expr5
   4553 		  expr5 + expr5 ..	  number addition
   4554 		  expr5 - expr5 ..	  number subtraction
   4555 
   4556        expr5	  expr6
   4557 		  expr6 . expr6 ..	  string concatenation
   4558 
   4559        expr6	  expr7
   4560 		  - expr6		  unary minus
   4561 		  + expr6		  unary plus
   4562 		  ! expr6		  logical NOT
   4563 
   4564        expr7	  number		  number constant
   4565 		  "string"		  string constant, \ is special
   4566 		  'string'		  string constant, ' is doubled
   4567 		  &option		  option value
   4568 		  $VAR			  environment variable
   4569 		  v:var			  builtin variable
   4570 		  function(expr1, ...)	  function call
   4571 		  (expr1)		  nested expression
   4572 
   4573        ".." indicates that the operations in this level can be concatenated.
   4574 
   4575        expr1
   4576        -----
   4577        expr2 || expr2
   4578 
   4579        Arguments are converted to numbers before evaluation.
   4580 
   4581        Result is non-zero if at least one of arguments is non-zero.
   4582 
   4583        It's right associative and with short-circuiting, so sub-expressions
   4584        are evaluated from left to right until result of whole expression is
   4585        determined (i.e., until first non-zero) or end of the expression.
   4586 
   4587        expr2
   4588        -----
   4589        expr3 && expr3
   4590 
   4591        Arguments are converted to numbers before evaluation.
   4592 
   4593        Result is non-zero only if both arguments are non-zero.
   4594 
   4595        It's right associative and with short-circuiting, so sub-expressions
   4596        are evaluated from left to right until result of whole expression is
   4597        determined (i.e., until first zero) or end of the expression.
   4598 
   4599        expr3
   4600        -----
   4601        expr4 {cmp} expr4
   4602 
   4603        Compare two expr4 expressions, resulting in a 0 if it evaluates to
   4604        false or 1 if it evaluates to true.
   4605 
   4606        equal		       ==
   4607        not equal	       !=
   4608        greater than	       >
   4609        greater than or equal   >=
   4610        smaller than	       <
   4611        smaller than or equal   <=
   4612 
   4613        Examples:
   4614 
   4615 	 'a' ==	 'a'	     == 1
   4616 	 'a' >	 'b'	     == 1
   4617 	 'a' ==	 'b'	     == 0
   4618 	 '2' >	 'b'	     == 0
   4619 	  2  >	 'b'	     == 1
   4620 	  2  >	 '1b'	     == 1
   4621 	  2  >	 '9b'	     == 0
   4622 	 -1  == -'1'	     == 1
   4623 	  0  ==	 '--1'	     == 1
   4624 
   4625        expr4
   4626        -----
   4627        expr5 + expr5 ..	    number addition expr5 - expr5 ..	 number
   4628        subtraction
   4629 
   4630        Examples:
   4631 
   4632 	 1 + 3 - 3	    == 1
   4633 	 1 + '2'	    == 3
   4634 
   4635        expr5
   4636        -----
   4637        expr6 . expr6 ..	    string concatenation
   4638 
   4639        Examples:
   4640 
   4641 	 'a' . 'b'	     == 'ab'
   4642 	 'aaa' . '' . 'c'    == 'aaac'
   4643 
   4644        expr6
   4645        -----
   4646 
   4647        - expr6		    unary minus
   4648        + expr6		    unary plus
   4649        ! expr6		    logical NOT
   4650 
   4651        For '-' the sign of the number is changed.
   4652        For '+' the number is unchanged.
   4653        For '!' non-zero becomes zero, zero becomes one.
   4654 
   4655        A String will be converted to a Number first.
   4656 
   4657        These operations can be repeated and mixed.  Examples:
   4658 
   4659 	  --9		     == 9
   4660 	 ---9		     == -9
   4661 	  -+9		     == 9
   4662 	  !-9		     == 0
   4663 	  !''		     == 1
   4664 	 !'x'		     == 0
   4665 	  !!9		     == 1
   4666 
   4667        expr7
   4668        -----
   4669 
   4670        number		    number constant
   4671        -----
   4672 
   4673        Decimal number.	Examples:
   4674 
   4675 	 0		     == 0
   4676 	 0000		     == 0
   4677 	 01		     == 1
   4678 	 123		     == 123
   4679 	 10000		     == 10000
   4680 
   4681        string
   4682        ------
   4683        "string"		    string constant
   4684 
   4685        Note that double quotes are used.
   4686 
   4687        A string constant accepts these special characters:
   4688 	 \b	 backspace <bs>
   4689 	 \e	 escape <esc>
   4690 	 \n	 newline
   4691 	 \r	 return <cr>
   4692 	 \t	 tab <tab>
   4693 	 \\	 backslash
   4694 	 \"	 double quote
   4695 
   4696        Examples:
   4697 
   4698 	 "\"Hello,\tWorld!\""
   4699 	 "Hi,\nthere!"
   4700 
   4701        literal-string
   4702        --------------
   4703        'string'		    string constant
   4704 
   4705        Note that single quotes are used.
   4706 
   4707        This string is taken as it is.  No backslashes are removed or have a
   4708        special meaning.	 The only exception is that two quotes stand for one
   4709        quote.
   4710 
   4711        Examples:
   4712 
   4713 	 'All\slashes\are\saved.'
   4714 	 'This string contains doubled single quotes ''here'''
   4715 
   4716        option
   4717        ------
   4718        &option		     option value (local one is preferred, if exists)
   4719        &g:option	     global option value &l:option	       local
   4720        option value
   4721 
   4722        Examples:
   4723 
   4724 	 echo 'Terminal size: '.&columns.'x'.&lines
   4725 	 if &columns > 100
   4726 
   4727        Any valid option name can be used here (note that "all" in ":set all"
   4728        is a pseudo option).  See ":set options" section above.
   4729 
   4730        environment variable
   4731        --------------------
   4732        $VAR		     environment variable
   4733 
   4734        The String value of any environment variable.  When it is not defined,
   4735        the result is an empty string.
   4736 
   4737        Examples:
   4738 
   4739 	 'This is my $PATH env: ' . $PATH
   4740 	 'vifmrc at ' . $MYVIFMRC . ' is used.'
   4741 
   4742        builtin variable
   4743        --------------------
   4744        v:var		     builtin variable
   4745 
   4746        Information exposed by vifm for use in scripting.
   4747 
   4748        v:count
   4749 	 count passed to : command, 0 by default.  Can be used in mappings to
   4750        pass
   4751 	 count to a different command.
   4752        v:count1
   4753 	 same as v:count, but 1 by default.
   4754        v:servername
   4755 	 See below.
   4756 
   4757        function call
   4758        -------------
   4759        function(expr1, ...)  function call
   4760 
   4761        See "Functions" section below.
   4762 
   4763        Examples:
   4764 
   4765 	 "'" . filetype('.') . "'"
   4766 	 filetype('.') == 'reg'
   4767 
   4768        expression nesting
   4769        ------------------
   4770        (expr1)		     nested expression
   4771 
   4772        Groups any other expression of arbitrary complexity enforcing order in
   4773        which operators are applied.
   4774 
   4775 
   4776 Functions
   4777        USAGE		     RESULT	 DESCRIPTION
   4778 
   4779        chooseopt({opt})	     String	 Queries choose parameters passed on
   4780        startup.
   4781        executable({expr})    Integer	 Checks whether {expr} command
   4782        available.
   4783        expand({expr})	     String	 Expands special keywords in {expr}.
   4784        filetype({fnum} [, {resolve}])
   4785 			     String	 Returns file type from position.
   4786        fnameescape({expr})   String	 Escapes {expr} for use in a :command.
   4787        getpanetype()	     String	 Returns type of current pane.
   4788        has({property})	     Integer	 Checks whether instance has
   4789        {property}.
   4790        layoutis({type})	     Integer	 Checks whether layout is of type
   4791        {type}.
   4792        paneisat({loc})	     Integer	 Checks whether current pane is at
   4793        {loc}.
   4794        system({command})     String	 Executes shell command and returns
   4795        its output.
   4796        tabpagenr([{arg}])    Integer	 Returns number of current or last
   4797        tab.
   4798        term({command})	     String	 Like system(), but for interactive
   4799        commands.
   4800 
   4801        chooseopt({opt})
   4802 
   4803        Retrieves values of options related to file choosing.  {opt} can be one
   4804        of:
   4805 	   files      returns argument of --choose-files or empty string
   4806 	   dir	      returns argument of --choose-dir or empty string
   4807 	   cmd	      returns argument of --on-choose or empty string
   4808 	   delimiter  returns argument of --delimiter or the default one (\n)
   4809 
   4810        executable({expr})
   4811 
   4812        If {expr} is absolute or relative path, checks whether path destination
   4813        exists and refers to an executable, otherwise checks whether command
   4814        named {expr} is present in directories listed in $PATH.	Checks for
   4815        various executable extensions on Windows.  Returns boolean value
   4816        describing result of the check.
   4817 
   4818        Example:
   4819 
   4820 	 " use custom default viewer script if it's available and installed
   4821 	 " in predefined system directory, otherwise try to find it elsewhere
   4822 	 if executable('/usr/local/bin/defviewer')
   4823 	     fileview * /usr/local/bin/defviewer %c
   4824 	 else
   4825 	     if executable('defviewer')
   4826 		 fileview * defviewer %c
   4827 	     endif
   4828 	 endif
   4829 
   4830        expand({expr})
   4831 
   4832        Expands environment variables and macros in {expr} just like it's done
   4833        for command-line commands.  Returns a string.  See "Command macros"
   4834        section above.
   4835 
   4836        Examples:
   4837 
   4838 	 " percent sign
   4839 	 :echo expand('%%')
   4840 	 " the last part of directory name of the other pane
   4841 	 :echo expand('%D:t')
   4842 	 " $PATH environment variable (same as `:echo $PATH`)
   4843 	 :echo expand('$PATH')
   4844 
   4845        filetype({fnum}[,{resolve}])
   4846 
   4847        The result is a string, which represents file type and is one of the
   4848        list:
   4849 	   exe	   executables
   4850 	   reg	   regular files
   4851 	   link	   symbolic links
   4852 	   broken  broken symbolic links (appears only when resolving)
   4853 	   dir	   directories
   4854 	   char	   character devices
   4855 	   block   block devices
   4856 	   fifo	   pipes
   4857 	   sock	   *nix domain sockets
   4858 	   ?	   unknown file type (should not normally appear)
   4859 
   4860        The result can also be an empty string in case of invalid argument.
   4861 
   4862        Parameter {fnum} can have following values:
   4863 	   - '.' to get type of file under the cursor in the active pane
   4864 	   - numerical value base 1 to get type of file on specified line
   4865        number
   4866 
   4867        Optional parameter {resolve} is treated as a boolean and specifies
   4868        whether symbolic links should be resolved.
   4869 
   4870        fnameescape({expr})
   4871 
   4872        Escapes parameter to make it suitable for use as an argument of a
   4873        :command.  List of escaped characters includes %, which is doubled.
   4874 
   4875        Usage example:
   4876 
   4877 	 " navigate to most recently modified file in current directory
   4878 	 execute 'goto' fnameescape(system('ls -t | head -1'))
   4879 
   4880        getpanetype()
   4881 
   4882        Retrieves string describing type of current pane.  Possible return
   4883        values:
   4884 	   regular	regular file listing of some directory
   4885 	   custom	custom file list (%u)
   4886 	   very-custom	very custom file list (%U)
   4887 	   tree		tree view
   4888 
   4889        has({property})
   4890 
   4891        Allows examining internal parameters from scripts to e.g. figure out
   4892        environment in which application is running.  Returns 1 if property is
   4893        true/present, otherwise 0 is returned.  Currently the following
   4894        properties are supported (anything else will yield 0):
   4895 	   unix	 runs in *nix-like environment (including Cygwin)
   4896 	   win	 runs on Windows
   4897 
   4898        Usage example:
   4899 
   4900 	 " skip user/group on Windows
   4901 	 if !has('win')
   4902 	     let $RIGHTS = '%10u:%-7g '
   4903 	 endif
   4904 
   4905 	 execute 'set' 'statusline="  %t%= %A '.$RIGHTS.'%15E %20d  "'
   4906 
   4907        layoutis({type})
   4908 
   4909        Checks whether current interface layout is {type} or not, where {type}
   4910        can be:
   4911 	   only	   single-pane mode
   4912 	   split   double-pane mode (either vertical or horizon split)
   4913 	   vsplit  vertical split (left and right panes)
   4914 	   hsplit  horizontal split (top and bottom panes)
   4915 
   4916        Usage example:
   4917 
   4918 	 " automatically split vertically before enabling preview
   4919 	 :nnoremap w :if layoutis('only') | vsplit | endif | view!<cr>
   4920 
   4921        paneisat({loc})
   4922 
   4923        Checks whether position of active pane in current layout matches one of
   4924        the following locations:
   4925 	   top	   pane reaches top border
   4926 	   bottom  pane reaches bottom border
   4927 	   left	   pane reaches left border
   4928 	   right   pane reaches right border
   4929 
   4930        system({command})
   4931 
   4932        Runs the command in shell and returns its output (joined standard
   4933        output and standard error streams).  All trailing newline characters
   4934        are stripped to allow easy appending to command output.	Ctrl-C should
   4935        interrupt the command.
   4936 
   4937        Use this function to consume output of external commands that don't
   4938        require user interaction and term() for interactive commands that make
   4939        use of terminal and are capable of handling stream redirection.
   4940 
   4941        Usage example:
   4942 
   4943 	 " command to enter .git/ directory of git-repository (when ran inside one)
   4944 	 command! cdgit :execute 'cd' system('git rev-parse --git-dir')
   4945 
   4946        tabpagenr([{arg}])
   4947 
   4948        When called without arguments returns number of current tab page base
   4949        one.
   4950 
   4951        When called with "$" as an argument returns number of the last tab page
   4952        base one, which is the same as number of tabs.
   4953 
   4954        term({command})
   4955 
   4956        Same as system() function, but user interface is shutdown during the
   4957        execution of the command, which makes sure that external interactive
   4958        applications won't affect the way terminal is used by vifm.
   4959 
   4960        Usage example:
   4961 
   4962 	 " command to change directory by picking it via fzf
   4963 	 command! fzfcd :execute 'cd' "'".term('find -type d | fzf 2> /dev/tty')."'"
   4964 
   4965 Menus and dialogs
   4966        When navigating to some path from a menu there is a difference in end
   4967        location depending on whether path has trailing slash or not.  Files
   4968        normally don't have trailing slashes so "file/" won't work and one can
   4969        only navigate to a file anyway.	On the other hand with directories
   4970        there are two options: navigate to a directory or inside of it.	To
   4971        allow both use cases, the first one is used on paths like "dir" and the
   4972        second one for "dir/".
   4973 
   4974        Commands
   4975 
   4976        :range navigate to a menu line.
   4977 
   4978        :exi[t][!] :q[uit][!] :x[it][!]
   4979 	      leave menu mode.
   4980 
   4981        :noh[lsearch]
   4982 	      reset search match highlighting.
   4983 
   4984        :w[rite] {dest}
   4985 	      write all menu lines into file specified by {dest}.
   4986 
   4987        General
   4988 
   4989        j, Ctrl-N - move down.
   4990        k, Ctrl-P - move up.
   4991        Enter, l - select and exit the menu.
   4992        Ctrl-L - redraw the menu.
   4993 
   4994        Escape, Ctrl-C, ZZ, ZQ, q - quit.
   4995 
   4996        In all menus
   4997 
   4998        The following set of keys has the same meaning as in normal mode.
   4999 
   5000        Ctrl-B, Ctrl-F
   5001        Ctrl-D, Ctrl-U
   5002        Ctrl-E, Ctrl-Y
   5003        /, ?
   5004        n, N
   5005        [count]G, [count]gg
   5006        H, M, L
   5007        zb, zt, zz
   5008 
   5009        zh - scroll menu items [count] characters to the right.
   5010        zl - scroll menu items [count] characters to the left.
   5011        zH - scroll menu items half of screen width characters to the right.
   5012        zL - scroll menu items half of screen width characters to the left.
   5013 
   5014        : - enter command line mode for menus (currently only :exi[t], :q[uit],
   5015        :x[it] and :{range} are supported).
   5016 
   5017        b - interpret content of the menu as list of paths and use it to create
   5018        custom view in place of previously active pane.	See "Custom views"
   5019        section below.
   5020        B - same as above, but creates unsorted view.
   5021 
   5022        v - load menu content into quickfix list of the editor (Vim compatible
   5023        by assumption) or if list doesn't have separators after file names
   5024        (colons) open each line as a file name.
   5025 
   5026 
   5027        Below is description of additional commands and reaction on selection
   5028        in some menus and dialogs.
   5029 
   5030        Apropos menu
   5031 
   5032        Selecting menu item runs man on a given topic.  Menu won't be closed
   5033        automatically to allow view several pages one by one.
   5034 
   5035        Command-line mode abbreviations menu
   5036 
   5037        Type dd on an abbreviation to remove it.
   5038 
   5039        c leaves menu preserving file selection and inserts right-hand side of
   5040        selected command into command-line.
   5041 
   5042        Color scheme menu
   5043 
   5044        Selecting name of a color scheme applies it the same way as if
   5045        ":colorscheme <name>" was executed on the command-line.
   5046 
   5047        Commands menu
   5048 
   5049        Selecting command executes it with empty arguments (%a).
   5050 
   5051        dd on a command to remove.
   5052 
   5053        Marks menu
   5054 
   5055        Selecting mark navigates to it.
   5056 
   5057        dd on a mark to remove it.
   5058 
   5059        Bookmarks menu
   5060 
   5061        Selecting a bookmark navigates to it.
   5062 
   5063        Type dd on a bookmark to remove it.
   5064 
   5065        gf and e also work to make it more convenient to bookmark files.
   5066 
   5067        Trash (:lstrash) menu
   5068 
   5069        r on a file name to restore it from trash.
   5070 
   5071        dd deletes file under the cursor.
   5072 
   5073        Trashes menu
   5074 
   5075        dd empties selected trash in background.
   5076 
   5077        Directory history and Trashes menus
   5078 
   5079        Selecting directory name will change directory of the current view as
   5080        if :cd command was used.
   5081 
   5082        Directory stack menu
   5083 
   5084        Selecting directory name will rotate stack to put selected directory
   5085        pair at the top of the stack.
   5086 
   5087        Filetype menu
   5088 
   5089        Commands from vifmrc or typed in command-line are displayed above empty
   5090        line.  All commands below empty line are from .desktop files.
   5091 
   5092        c leaves menu preserving file selection and inserts command after :! in
   5093        command-line mode.
   5094 
   5095        Grep, find, locate, bookmarks and user menu with navigation (%M macro)
   5096 
   5097        gf - navigate previously active view to currently selected item.
   5098        Leaves menu mode except for grep menu.  Pressing Enter key has the same
   5099        effect.
   5100 
   5101        e - open selected path in the editor, stays in menu mode.
   5102 
   5103        c - leave menu preserving file selection and insert file name after :!
   5104        in command-line mode.
   5105 
   5106        User menu without navigation (%m macro)
   5107 
   5108        c leaves menu preserving file selection and inserts whole line after :!
   5109        in command-line mode.
   5110 
   5111        Grep menu
   5112 
   5113        Selecting file (via Enter or l key) opens it in editor set by 'vicmd'
   5114        at given line number.  Menu won't be closed automatically to allow
   5115        viewing more than one result.
   5116 
   5117        See above for "gf" and "e" keys description.
   5118 
   5119        Command-line history menu
   5120 
   5121        Selecting an item executes it as command-line command, search query or
   5122        local filter.
   5123 
   5124        c leaves menu preserving file selection and inserts line into command-
   5125        line of appropriate kind.
   5126 
   5127        Volumes menu
   5128 
   5129        Selecting a drive navigates previously active pane to the root of that
   5130        drive.
   5131 
   5132        Fileinfo dialog
   5133 
   5134        Enter, q - close dialog
   5135 
   5136        Sort dialog
   5137 
   5138        h, Space - switch ascending/descending.
   5139        q - close dialog
   5140 
   5141        One shortcut per sorting key (see the dialog).
   5142 
   5143        Attributes (permissions or properties) dialog
   5144 
   5145        h, Space - check/uncheck.
   5146        q - close dialog
   5147 
   5148        Item states:
   5149 
   5150        - * - checked flag.
   5151 
   5152        - X - means that it has different value for files in selection.
   5153 
   5154        - d (*nix only) - (only for execute flags) means u-x+X, g-x+X or o-x+X
   5155 	 argument for the chmod program.  If you're not on OS X and want to
   5156 	 remove execute permission bit from all files, but preserve it for
   5157 	 directories, set all execute flags to 'd' and check 'Set Recursively'
   5158 	 flag.
   5159 
   5160        Jobs menu
   5161 
   5162        dd requests cancellation of job under cursor.  The job won't be removed
   5163        from the list, but marked as being cancelled (if cancellation was
   5164        successfully requested).	 A message will pop up if the job has already
   5165        stopped.	 Note that on Windows cancelling external programs like this
   5166        might not work, because their parent shell doesn't have any windows.
   5167 
   5168        e key displays errors of selected job if any were collected.  They are
   5169        displayed in a new menu, but you can get back to jobs menu by pressing
   5170        h.
   5171 
   5172 
   5173        Undolist menu
   5174 
   5175        r - reset undo position to group under the cursor.
   5176 
   5177 
   5178        Media menu
   5179 
   5180        r - reload the list.
   5181 
   5182        m - mount/unmount device (cursor should be positioned on lines under
   5183        device information).
   5184 
   5185 
   5186 Custom views
   5187        Definition
   5188 
   5189        Normally file views contain list of files from a single directory, but
   5190        sometimes it's useful to populate them with list of files that do not
   5191        belong to the same directory, which is what custom views are for.
   5192 
   5193        Presentation
   5194 
   5195        Custom views are still related to directory they were in before custom
   5196        list was loaded.	 Path to that directory (original directory) can be
   5197        seen in the title of a custom view.
   5198 
   5199        Files in same directory have to be named differently, this doesn't hold
   5200        for custom views thus seeing just file names might be rather confusing.
   5201        In order to give an idea where files come from and when possible,
   5202        relative paths to original directory of the view is displayed,
   5203        otherwise full path is used instead.
   5204 
   5205        Custom views normally don't contain any inexistent files.
   5206 
   5207        Navigation
   5208 
   5209        Custom views have some differences related to navigation in regular
   5210        views.
   5211 
   5212        gf - acts similar to gf on symbolic links and navigates to the file at
   5213        its real
   5214 	    location.
   5215 
   5216        h - go to closes parent node in tree view, otherwise return to the
   5217        original directory.
   5218 
   5219        gh - return to the original directory.
   5220 
   5221        Opening ".." entry also causes return to the original directory.
   5222 
   5223        History
   5224 
   5225        Custom list exists only while it's visible, once left one can't return
   5226        to it, so there is no appearances of it in any history.
   5227 
   5228        Filters
   5229 
   5230        Only local filter affects content of the view.  This is intentional,
   5231        presumably if one loads list, precisely that list should be displayed
   5232        (except for inexistent paths, which are ignored).
   5233 
   5234        Search
   5235 
   5236        Although directory names are visible in listing, they are not
   5237        searchable.  Only file names are taken into account (might be changed
   5238        in future, searching whole lines seems quite reasonable).
   5239 
   5240        Sorting
   5241 
   5242        Contrary to search sorting by name works on whole visible part of file
   5243        path.
   5244 
   5245        Highlight
   5246 
   5247        Whole file name is highlighted as one entity, even if there are
   5248        directory elements.
   5249 
   5250        Updates
   5251 
   5252        Reloads can occur, though they are not automatic due to files being
   5253        scattered among different places.  On a reload, inexistent files are
   5254        removed and meta-data of all other files is updated.
   5255 
   5256        Once custom view forgets about the file, it won't add it back even if
   5257        it's created again.  So not seeing file previously affected by an
   5258        operation, which was undone is normal.
   5259 
   5260        Operations
   5261 
   5262        All operations that add files are forbidden for custom views.  For
   5263        example, moving/copying/putting files into a custom view doesn't work,
   5264        because it doesn't make much sense.
   5265 
   5266        On the other hand, operations that use files of a custom view as a
   5267        source (e.g. yanking, copying, moving file from custom view, deletion)
   5268        and operations that modify names are all allowed.
   5269 
   5270 Compare views
   5271        Kinds
   5272 
   5273        :compare can produce four different results depending on arguments:
   5274 	- single compare view (ofone and either listall or listdups);
   5275 	- single custom view (ofone and listunique);
   5276 	- two compare views (ofboth and either listall or listdups);
   5277 	- two custom views (ofboth and listunique).
   5278 
   5279        The first two display files of one file system tree.  Here duplicates
   5280        are files that have at least one copy in the same tree.	The other two
   5281        kinds of operation compare two trees, in which duplicates are files
   5282        that are found in both trees.
   5283 
   5284        Lists of unique files are presented in custom views because there is no
   5285        file grouping to preserve as all file ids are guaranteed to be
   5286        distinct.
   5287 
   5288        Creation
   5289 
   5290        Arguments passed to :compare form four categories each with its own
   5291        prefix and is responsible for particular property of operation.
   5292 
   5293        Which files to compare:
   5294 	- ofboth - compares files of two panes against each other;
   5295 	- ofone	 - compares files of the same directory.
   5296 
   5297        How files are compared:
   5298 	- byname     - by their name only;
   5299 	- bysize     - only by their size;
   5300 	- bycontents - by combination of size and hash of file contents.
   5301 
   5302        Which files to display:
   5303 	- listall    - all files;
   5304 	- listunique - unique files only;
   5305 	- listdups   - only duplicated files.
   5306 
   5307        How results are grouped (has no effect if "ofone" specified):
   5308 	- groupids   - files considered identical are always adjacent in
   5309        output;
   5310 	- grouppaths - file system ordering is preferred (this also enables
   5311        displaying identically named files as mismatches).
   5312 
   5313        Which files to omit:
   5314 	- skipempty - ignore empty files.
   5315 
   5316        Each argument can appear multiple times, the rightmost one of the group
   5317        is considered.  Arguments alter default behaviour instead of
   5318        substituting it.
   5319 
   5320        Examples
   5321 
   5322        The defaults corresponds to probably the most common use case of
   5323        comparing files in two trees with grouping by paths, so the following
   5324        are equivalent:
   5325 
   5326 	 :compare
   5327 	 :compare bycontents grouppaths
   5328 	 :compare bycontents listall ofboth grouppaths
   5329 
   5330        Another use case is to find duplicates in the current sub-tree:
   5331 
   5332 	 :compare listdups ofone
   5333 
   5334        The following command lists files that are unique to each pane:
   5335 
   5336 	 :compare listunique
   5337 
   5338        Look
   5339 
   5340        The view can't switch to ls-like view as it's unable to display diff-
   5341        like data.
   5342 
   5343        Comparison views have second column displaying id of the file, files
   5344        with same id are considered to be equal.	 The view columns
   5345        configuration is predefined.
   5346 
   5347        Behaviour
   5348 
   5349        When two views are being compared against each other the following
   5350        changes to the regular behaviour apply:
   5351 	- views are scrolled synchronously (as if 'scrollbind' was set);
   5352 	- views' cursors are synchronized;
   5353 	- local filtering is disabled (its results wouldn't be meaningful);
   5354 	- zd excludes groups of adjacent identical files, 1zd gives usual
   5355        behaviour;
   5356 	- sorting is permanently disabled (ordering is fixed);
   5357 	- removed files hide their counter pairs;
   5358 	- exiting one of the views terminates the other immediately;
   5359 	- renaming files isn't blocked, but isn't taken into account and might
   5360        require regeneration of comparison;
   5361 	- entries which indicate absence of equivalent file have empty names
   5362        and can be matched as such;
   5363 	- when unique files of both views are listed custom views can be
   5364        empty, this absence of unique files is stated clearly.
   5365 
   5366        One compare view has similar properties (those that are applicable for
   5367        single pane).
   5368 
   5369        Files are gathered in this way:
   5370 	- recursively starting at current location of the view;
   5371 	- dot files are excluded if view hides them at the moment of
   5372        comparison;
   5373 	- directories are not taken into account;
   5374 	- symbolic links to directories are ignored.
   5375 
   5376 Startup
   5377        On startup vifm determines several variables that are used during the
   5378        session.	 They are determined in the order they appear below.
   5379 
   5380        On *nix systems $HOME is normally present and used as is.  On Windows
   5381        systems vifm tries to find correct home directory in the following
   5382        order:
   5383 	- $HOME variable;
   5384 	- $USERPROFILE variable (on Windows only);
   5385 	- a combination of $HOMEDRIVE and $HOMEPATH variables (on Windows
   5386        only).
   5387 
   5388        vifm tries to find correct configuration directory by checking the
   5389        following places:
   5390 	- $VIFM variable;
   5391 	- parent directory of the executable file (on Windows only);
   5392 	- $HOME/.vifm directory;
   5393 	- $APPDATA/Vifm directory (on Windows only);
   5394 	- $XDG_CONFIG_HOME/vifm directory;
   5395 	- $HOME/.config/vifm directory.
   5396 
   5397        vifm tries to find correct configuration file by checking the following
   5398        places:
   5399 	- $MYVIFMRC variable;
   5400 	- vifmrc in parent directory of the executable file (on Windows only);
   5401 	- $VIFM/vifmrc file.
   5402 
   5403 Configure
   5404        See "Startup" section above for the explanations on $VIFM and
   5405        $MYVIFMRC.
   5406 
   5407        The vifmrc file contains commands that will be executed on vifm
   5408        startup.	 There are two such files: global and local.  Global one is at
   5409        {prefix}/etc/vifm/vifmrc, see $MYVIFMRC variable description for the
   5410        search algorithm used to find local vifmrc.  Global vifmrc is loaded
   5411        before the local one, so that the later one can redefine anything
   5412        configured globally.
   5413 
   5414        Use vifmrc to set settings, mappings, filetypes etc.  To use multi line
   5415        commands precede each next line with a slash (whitespace before slash
   5416        is ignored, but all spaces at the end of the lines are saved).  For
   5417        example:
   5418 
   5419 	 set
   5420 	     \smartcase
   5421 
   5422        equals "setsmartcase".  When
   5423 
   5424 	 set<space here>
   5425 	     \ smartcase
   5426 
   5427        equals "set  smartcase".
   5428 
   5429        The $VIFM/vifminfo file contains session settings.  You may edit it by
   5430        hand to change the settings, but it's not recommended to do that, edit
   5431        vifmrc instead.	You can control what settings will be saved in
   5432        vifminfo by setting 'vifminfo' option.  Vifm always writes this file on
   5433        exit unless 'vifminfo' option is empty.	Marks, bookmarks, commands,
   5434        histories, filetypes, fileviewers and registers in the file are merged
   5435        with vifm configuration (which has bigger priority).
   5436 
   5437        Generally, runtime configuration has bigger priority during merging,
   5438        but there are some exceptions:
   5439 
   5440 	 - directory stack stored in the file is not overwritten unless
   5441 	   something is changed in vifm session that performs merge;
   5442 
   5443 	 - each mark or bookmark is marked with a timestamp, so that newer
   5444 	   value is not overwritten by older one, thus no matter from where it
   5445 	   comes, the newer one wins.
   5446 
   5447        The $VIFM/scripts directory can contain shell scripts.  vifm modifies
   5448        its PATH environment variable to let user run those scripts without
   5449        specifying full path.  All subdirectories of the $VIFM/scripts will be
   5450        added to PATH too.  Script in a subdirectory overlaps script with the
   5451        same name in all its parent directories.
   5452 
   5453        The $VIFM/colors/ and {prefix}/etc/vifm/colors/ directories contain
   5454        color schemes.  Available color schemes are searched in that order, so
   5455        on name conflict the one in $VIFM/colors/ wins.
   5456 
   5457        Each color scheme should have ".vifm" extension.	 This wasn't the case
   5458        before and for this reason the following rules apply during lookup:
   5459 
   5460 	 - if there is no file with .vifm extension, all regular files are
   5461 	   listed;
   5462 
   5463 	 - otherwise only files with .vifm extension are listed (with the
   5464 	   extension being truncated).
   5465 
   5466 Automatic FUSE mounts
   5467        vifm has a builtin support of automated FUSE file system mounts.	 It is
   5468        implemented using file associations mechanism.  To enable automated
   5469        mounts, one needs to use a specially formatted program line in filetype
   5470        or filextype commands.  Currently two formats are supported:
   5471 
   5472        1) FUSE_MOUNT This format should be used in case when all information
   5473        needed for mounting all files of a particular type is the same.	E.g.
   5474        mounting of tar files don't require any file specific options.
   5475 
   5476        Format line:
   5477 	 FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND]
   5478 
   5479        Example filetype command:
   5480 
   5481 	 :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
   5482 
   5483        2) FUSE_MOUNT2 This format allows one to use specially formatted files
   5484        to perform mounting and is useful for mounting remotes, for example
   5485        remote file systems over ftp or ssh.
   5486 
   5487        Format line:
   5488 	 FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]
   5489 
   5490        Example filetype command:
   5491 
   5492 	 :filetype FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
   5493 
   5494        Example file content:
   5495 
   5496 	 root@127.0.0.1:/
   5497 
   5498        All % macros are expanded by vifm at runtime and have the following
   5499        meaning:
   5500 	 - %SOURCE_FILE is replaced by full path to selected file;
   5501 	 - %DESTINATION_DIR is replaced by full path to mount directory, which
   5502        is created by vifm basing on the value of 'fusehome' option;
   5503 	 - %PARAM value is filled from the first line of file (whole line),
   5504        though in the future it can be changed to whole file content;
   5505 	 - %FOREGROUND means that you want to run mount command as a regular
   5506        command (required to be able to provide input for communication with
   5507        mounter in interactive way).
   5508 
   5509        %FOREGROUND is an optional macro.  Other macros are not mandatory, but
   5510        mount commands likely won't work without them.
   5511 
   5512        %CLEAR is obsolete name of %FOREGROUND, which is still supported, but
   5513        might be removed in future.  Its use is discouraged.
   5514 
   5515        The mounted FUSE file systems will be automatically unmounted in two
   5516        cases:
   5517 
   5518 	 - when vifm quits (with ZZ, :q, etc. or when killed by signal);
   5519 
   5520 	 - when you explicitly leave mount point going up to its parent
   5521 	   directory (with h, Enter on "../" or ":cd ..") and other pane is
   5522 	   not in the same directory or its child directories.
   5523 
   5524 View look
   5525        vifm supports displaying of file list view in two different ways:
   5526 
   5527 	 - in a table mode, when multiple columns can be set using
   5528 	   'viewcolumns' option (see "Column view" section below for details);
   5529 
   5530 	 - in a multicolumn list manner which looks almost like `ls -x`
   5531 	   command output (see "ls-like view" section below for details).
   5532 
   5533        The look is local for each view and can be chosen by changing value of
   5534        the 'lsview' boolean option.
   5535 
   5536        Depending on view look some of keys change their meaning to allow more
   5537        natural cursor moving.  This concerns mainly h, j, k, l and other
   5538        similar navigation keys.
   5539 
   5540        Also some of options can be ignored if they don't affect view
   5541        displaying in selected look.  For example value of 'viewcolumns' when
   5542        'lsview' is set.
   5543 
   5544 ls-like view
   5545        When this view look is enabled by setting 'lsview' option on, vifm will
   5546        display files in multiple columns.  Number of columns depends on the
   5547        length of the longest file name present in current directory of the
   5548        view.  Whole file list is automatically reflowed on directory change,
   5549        terminal or view resize.
   5550 
   5551        View looks close to output of `ls -x` command, so files are listed left
   5552        to right in rows.
   5553 
   5554        In this mode file manipulation commands (e.g. d) don't work line-wise
   5555        like they do in Vim, since such operations would be uncommon for file
   5556        manipulation tasks.  Thus, for example, dd will remove only current
   5557        file.
   5558 
   5559        By default the view is filled by lines, 'lsoptions' can be used to get
   5560        filling by columns.
   5561 
   5562        Note that tree-view and compare view inhibit ls-like view.
   5563 
   5564 Column view
   5565        View columns are described by a comma-separated list of column
   5566        descriptions, each of which has the following format
   5567 	   [ '-' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type '}' '.'{0,3}
   5568        where fw stands for full width and tw stands for text width.
   5569 
   5570        So it basically consists of four parts:
   5571 	1. Optional alignment specifier
   5572 	2. Optional width specifier
   5573 	3. Mandatory column name
   5574 	4. Optional cropping specifier
   5575 
   5576        Alignment specifier
   5577 
   5578        It's an optional minus or asterisk sign as the first symbol of the
   5579        string.
   5580 
   5581        Specifies type of text alignment within a column.  Three types are
   5582        supported:
   5583 
   5584        - left align
   5585 
   5586 	   set viewcolumns=-{name}
   5587 
   5588        - right align (default)
   5589 
   5590 	   set viewcolumns={name}
   5591 
   5592        - dynamic align
   5593 
   5594 	 It's like left alignment, but when the text is bigger than the
   5595 	 column, the alignment is made at the right (so the part of the field
   5596 	 is always visible).
   5597 
   5598 	   set viewcolumns=*{name}
   5599 
   5600        Width specifier
   5601 
   5602        It's a number followed by a percent sign, two numbers (second one
   5603        should be less than or equal to the first one) separated with a dot or
   5604        a single number.
   5605 
   5606        Specifies column width and its units. There are three size types:
   5607 
   5608        - absolute size - column width is specified in characters
   5609 
   5610 	   set viewcolumns=-100{name},20.15{ext}
   5611 
   5612 	 results in two columns with lengths of 100 and 20 and a reserved
   5613 	 space of five characters on the left of second column.
   5614 
   5615        - relative (percent) size - column width is specified in percents of
   5616 	 view width
   5617 
   5618 	   set viewcolumns=-80%{name},15%{ext},5%{mtime}
   5619 
   5620 	 results in three columns with lengths of 80/100, 15/100 and 5/100 of
   5621 	 view width.
   5622 
   5623        - auto size (default) - column width is automatically determined
   5624 
   5625 	   set viewcolumns=-{name},{ext},{mtime}
   5626 
   5627 	 results in three columns with length of one third of view width.
   5628 	 There is no size adjustment to content, since it will slow down
   5629 	 rendering.
   5630 
   5631        Columns of different sizing types can be freely mixed in one view.
   5632        Though sometimes some of columns can be seen partly or be completely
   5633        invisible if there is not enough space to display them.
   5634 
   5635        Column name
   5636 
   5637        This is just a sort key surrounded with curly braces or {root}, e.g.
   5638 
   5639 	 {name},{ext},{mtime}
   5640 
   5641        {name} and {iname} keys are the same and present both for consistency
   5642        with 'sort' option.
   5643 
   5644        Following keys don't have corresponding sorting keys:
   5645 
   5646 	 - {root} - display name without extension (as a complement for {ext})
   5647 
   5648        Empty curly braces ({}) are replaced with the default secondary column
   5649        for primary sort key. So after the next command view will be displayed
   5650        almost as if 'viewcolumns' is empty, but adding ellipsis for long file
   5651        names:
   5652 
   5653 	 set viewcolumns=-{name}..,6{}.
   5654 
   5655        Cropping specifier
   5656 
   5657        It's from one to three dots after closing curly brace in column format.
   5658 
   5659        Specifies type of text truncation if it doesn't fit in the column.
   5660        Currently three types are supported:
   5661 
   5662 	 - truncation - text is truncated
   5663 
   5664 	     set viewcolumns=-{name}.
   5665 
   5666 	   results in truncation of names that are too long too fit in the
   5667 	   view.
   5668 
   5669 	 - adding of ellipsis - ellipsis on the left or right are added when
   5670 	   needed
   5671 
   5672 	     set viewcolumns=-{name}..
   5673 
   5674 	   results in that ellipsis are added at the end of too long file
   5675 	   names.
   5676 
   5677 	 - none (default) - text can pass column boundaries
   5678 
   5679 	     set viewcolumns=-{name}...,{ext}
   5680 
   5681 	   results in that long file names can partially be written on the ext
   5682 	   column.
   5683 
   5684 Color schemes
   5685        The color schemes in vifm can be applied in two different ways:
   5686 
   5687 	 - as the primary color scheme;
   5688 
   5689 	 - as local to a pane color scheme.
   5690 
   5691        Both types are set using :colorscheme command, but of different forms:
   5692 
   5693 	 - :colorscheme color_scheme_name - for the primary color scheme;
   5694 
   5695 	 - :colorscheme color_scheme_name directory - for local color schemes.
   5696 
   5697        Look of different parts of the TUI (Text User Interface) is determined
   5698        in this way:
   5699 
   5700 	 - Border, TabLine, TabLineSel, TopLineSel, TopLine, CmdLine,
   5701 	   ErrorMsg, StatusLine, JobLine, SuggestBox and WildMenu are always
   5702 	   determined by the primary color scheme;
   5703 
   5704 	 - CurrLine, Selected, Directory, Link, BrokenLink, Socket, Device,
   5705 	   Executable, Fifo, CmpMismatch, Win and AuxWin are determined by
   5706 	   primary color scheme and a set of local color schemes, which can be
   5707 	   empty.
   5708 
   5709        There might be a set of local color schemes because they are structured
   5710        hierarchically according to file system structure. For example, having
   5711        the following piece of file system:
   5712 
   5713 	 ~
   5714 	 `-- bin
   5715 	    |
   5716 	    `-- my
   5717 
   5718        Two color schemes:
   5719 
   5720 	 # ~/.vifm/colors/for_bin
   5721 	 highlight Win cterm=none ctermfg=white ctermbg=red
   5722 	 highlight CurrLine cterm=none ctermfg=red ctermbg=black
   5723 
   5724 	 # ~/.vifm/colors/for_bin_my
   5725 	 highlight CurrLine cterm=none ctermfg=green ctermbg=black
   5726 
   5727        And these three commands in the vifmrc file:
   5728 
   5729 	 colorscheme Default
   5730 	 colorscheme for_bin ~/bin
   5731 	 colorscheme for_bin_my ~/bin/my
   5732 
   5733        File list will look in the following way for each level:
   5734 
   5735        - ~/ - Default color scheme
   5736 	 black background
   5737 	 cursor with blue background
   5738 
   5739        - ~/bin/ - mix of Default and for_bin color schemes
   5740 	 red background
   5741 	 cursor with black background and red foreground
   5742 
   5743        - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes
   5744 	 red background
   5745 	 cursor with black background and green foreground
   5746 
   5747 Trash directory
   5748        vifm has support of trash directory, which is used as temporary storage
   5749        for deleted files or files that were cut.  Using trash is controlled by
   5750        the 'trash' option, and exact path to the trash can be set with
   5751        'trashdir' option.  Trash directory in vifm differs from the system-
   5752        wide one by default, because of possible incompatibilities of storing
   5753        deleted files among different file managers.  But one can set
   5754        'trashdir' to "~/.local/share/Trash" to use a "standard" trash
   5755        directory.
   5756 
   5757        There are two scenarios of using trash in vifm:
   5758 
   5759 	 1. As a place for storing files that were cut by "d" and may be
   5760 	    inserted to some other place in file system.
   5761 
   5762 	 2. As a storage of files, that are deleted but not purged yet.
   5763 
   5764        The first scenario uses deletion ("d") operations to put files to trash
   5765        and put ("p") operations to restore files from trash directory.	Note
   5766        that such operations move files to and from trash directory, which can
   5767        be long term operations in case of different partitions or remote
   5768        drives mounted locally.
   5769 
   5770        The second scenario uses deletion ("d") operations for moving files to
   5771        trash directory and :empty command-line command to purge all previously
   5772        deleted files.
   5773 
   5774        Deletion and put operations depend on registers, which can point to
   5775        files in trash directory.  Normally, there are no nonexistent files in
   5776        registers, but vifm doesn't keep track of modifications under trash
   5777        directory, so one shouldn't expect value of registers to be absolutely
   5778        correct if trash directory was modified not by operation that are meant
   5779        for it.	But this won't lead to any issues with operations, since they
   5780        ignore nonexistent files.
   5781 
   5782 Client-Server
   5783        vifm supports remote execution of command-line mode commands, remote
   5784        changing of directories and expression evaluation.  This is possible
   5785        using --remote and --remote-expr command-line arguments.
   5786 
   5787        To execute a command remotely combine --remote argument with -c
   5788        <command> or +<command>.	 For example:
   5789 
   5790 	 vifm --remote -c 'cd /'
   5791 	 vifm --remote '+cd /'
   5792 
   5793        To change directory not using command-line mode commands one can
   5794        specify paths right after --remote argument, like this:
   5795 
   5796 	 vifm --remote /
   5797 	 vifm --remote ~
   5798 	 vifm --remote /usr/bin /tmp
   5799 
   5800        Evaluating expression remotely might be useful to query information
   5801        about an instance, for example its location:
   5802 
   5803 	 vifm --remote-expr 'expand("%d")'
   5804 
   5805        If there are several running instances, the target can be specified
   5806        with --server-name option (otherwise, the first one lexicographically
   5807        is used):
   5808 
   5809 	 vifm --server-name work --remote ~/work/project
   5810 
   5811        List of names of running instances can be obtained via --server-list
   5812        option.	Name of the current one is available via v:servername.
   5813 
   5814 
   5815        v:servername
   5816 	      server name of the running vifm instance.	 Empty if client-
   5817 	      server feature is disabled.
   5818 
   5819 Plugin
   5820        Plugin for using vifm in vim as a file selector.
   5821 
   5822        Commands:
   5823 
   5824 	 :EditVifm   select a file or files to open in the current buffer.
   5825 	 :SplitVifm  split buffer and select a file or files to open.
   5826 	 :VsplitVifm vertically split buffer and select a file or files to
   5827        open.
   5828 	 :DiffVifm   select a file or files to compare to the current file
   5829        with
   5830 		     :vert diffsplit.
   5831 	 :TabVifm    select a file or files to open in tabs.
   5832 
   5833        Each command accepts up to two arguments: left pane directory and right
   5834        pane directory.	After arguments are checked, vifm process is spawned
   5835        in a special "file-picker" mode.	 To pick files just open them either
   5836        by pressing l, i or Enter keys, or by running :edit command.  If no
   5837        files are selected, file under the cursor is opened, otherwise whole
   5838        selection is passed to the plugin and opened in vim.
   5839 
   5840        The plugin have only two settings.  It's a string variable named
   5841        g:vifm_term to let user specify command to run GUI terminal.  By
   5842        default it's equal to 'xterm -e'.  And another string variable named
   5843        g:vifm_exec, which equals "vifm" by default and specifies path to
   5844        vifm's executable.  To pass arguments to vifm use g:vifm_exec_args,
   5845        which is empty by default.
   5846 
   5847        To use the plugin copy the vifm.vim file to either the system wide
   5848        vim/plugin directory or into ~/.vim/plugin.
   5849 
   5850        If you would prefer not to use the plugin and it is in the system wide
   5851        plugin directory add
   5852 
   5853        let loaded_vifm=1
   5854 
   5855        to your ~/.vimrc file.
   5856 
   5857 Reserved
   5858        The following command names are reserved and shouldn't be used for user
   5859        commands.
   5860 
   5861 	 g[lobal]
   5862 	 v[global]
   5863 
   5864 ENVIRONMENT
   5865        VIFM   Points to main configuration directory (usually ~/.vifm/).
   5866 
   5867        MYVIFMRC
   5868 	      Points to main configuration file (usually ~/.vifm/vifmrc).
   5869 
   5870        These environment variables are valid inside vifm and also can be used
   5871        to configure it by setting some of them before running vifm.
   5872 
   5873        When $MYVIFMRC isn't set, it's made as $VIFM/vifmrc (exception for
   5874        Windows: vifmrc in the same directory as vifm.exe has higher priority
   5875        than $VIFM/vifmrc).
   5876 
   5877        See "Startup" section above for more details.
   5878 
   5879        VIFM_FUSE_FILE
   5880 	      On execution of external commands this variable is set to the
   5881 	      full path of file used to initiate FUSE mount of the closes
   5882 	      mount point from current pane directory up.  It's not set when
   5883 	      outside FUSE mount point.	 When vifm is used inside terminal
   5884 	      multiplexer, it tries to set this variable as well (it doesn't
   5885 	      work this way on its own).
   5886 
   5887 SEE ALSO
   5888        vifm-convert-dircolors(1), vifm-pause(1)
   5889 
   5890        Website: https://vifm.info/
   5891        Wiki: https://wiki.vifm.info/
   5892 
   5893        Esperanto translation of the documentation by Sebastian Cyprych:
   5894        http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html
   5895 
   5896 AUTHOR
   5897        Vifm was written by ksteen <ksteen@users.sourceforge.net>
   5898        And currently is developed by xaizek <xaizek@posteo.net>
   5899 
   5900 
   5901 
   5902 vifm 0.10		       November 11, 2018		       VIFM(1)