From 93d2743e3864e9eab0699b1bb1ea5f01c10bdbc1 Mon Sep 17 00:00:00 2001
From: Yaroslav <contact@yaroslavps.com>
Date: Mon, 23 Sep 2019 06:32:38 +0300
Subject: initial commit

---
 dotfiles/.config/vifm/colors/Default.vifm    |   80 +
 dotfiles/.config/vifm/colors/yaroslavps.vifm |   33 +
 dotfiles/.config/vifm/scripts/README         |    6 +
 dotfiles/.config/vifm/scripts/imgc           |   16 +
 dotfiles/.config/vifm/scripts/imgt           |   38 +
 dotfiles/.config/vifm/scripts/vifmimg        |   53 +
 dotfiles/.config/vifm/scripts/vifmrun        |   15 +
 dotfiles/.config/vifm/vifm-help.txt          | 5899 ++++++++++++++++++++++++++
 dotfiles/.config/vifm/vifminfo               |  293 ++
 dotfiles/.config/vifm/vifmrc                 |  336 ++
 10 files changed, 6769 insertions(+)
 create mode 100644 dotfiles/.config/vifm/colors/Default.vifm
 create mode 100644 dotfiles/.config/vifm/colors/yaroslavps.vifm
 create mode 100644 dotfiles/.config/vifm/scripts/README
 create mode 100755 dotfiles/.config/vifm/scripts/imgc
 create mode 100755 dotfiles/.config/vifm/scripts/imgt
 create mode 100755 dotfiles/.config/vifm/scripts/vifmimg
 create mode 100755 dotfiles/.config/vifm/scripts/vifmrun
 create mode 100644 dotfiles/.config/vifm/vifm-help.txt
 create mode 100644 dotfiles/.config/vifm/vifminfo
 create mode 100644 dotfiles/.config/vifm/vifmrc

(limited to 'dotfiles/.config/vifm')

diff --git a/dotfiles/.config/vifm/colors/Default.vifm b/dotfiles/.config/vifm/colors/Default.vifm
new file mode 100644
index 0000000..7434b36
--- /dev/null
+++ b/dotfiles/.config/vifm/colors/Default.vifm
@@ -0,0 +1,80 @@
+" You can edit this file by hand.
+" The " character at the beginning of a line comments out the line.
+" Blank lines are ignored.
+
+" The Default color scheme is used for any directory that does not have
+" a specified scheme and for parts of user interface like menus. A
+" color scheme set for a base directory will also
+" be used for the sub directories.
+
+" The standard ncurses colors are:
+" Default = -1 = None, can be used for transparency or default color
+" Black = 0
+" Red = 1
+" Green = 2
+" Yellow = 3
+" Blue = 4
+" Magenta = 5
+" Cyan = 6
+" White = 7
+
+" Light versions of colors are also available (set bold attribute):
+" LightBlack
+" LightRed
+" LightGreen
+" LightYellow
+" LightBlue
+" LightMagenta
+" LightCyan
+" LightWhite
+
+" Available attributes (some of them can be combined):
+" bold
+" underline
+" reverse or inverse
+" standout
+" italic (on unsupported systems becomes reverse)
+" none
+
+" Vifm supports 256 colors you can use color numbers 0-255
+" (requires properly set up terminal: set your TERM environment variable
+" (directly or using resources) to some color terminal name (e.g.
+" xterm-256color) from /usr/lib/terminfo/; you can check current number
+" of colors in your terminal with tput colors command)
+
+" highlight group cterm=attrs ctermfg=foreground_color ctermbg=background_color
+
+highlight clear
+
+highlight Win cterm=none ctermfg=white ctermbg=black
+highlight Directory cterm=bold ctermfg=cyan ctermbg=default
+highlight Link cterm=bold ctermfg=yellow ctermbg=default
+highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
+highlight Socket cterm=bold ctermfg=magenta ctermbg=default
+highlight Device cterm=bold ctermfg=red ctermbg=default
+highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
+highlight Executable cterm=bold ctermfg=green ctermbg=default
+highlight Selected cterm=bold ctermfg=magenta ctermbg=default
+highlight CurrLine cterm=bold,reverse ctermfg=default ctermbg=default
+highlight TopLine cterm=none ctermfg=black ctermbg=white
+highlight TopLineSel cterm=bold ctermfg=black ctermbg=default
+highlight StatusLine cterm=bold ctermfg=black ctermbg=white
+highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
+highlight CmdLine cterm=none ctermfg=white ctermbg=black
+highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
+highlight Border cterm=none ctermfg=black ctermbg=white
+highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white
+highlight SuggestBox cterm=bold ctermfg=default ctermbg=default
+highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red
+highlight AuxWin cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight TabLine cterm=none ctermfg=white ctermbg=black
+highlight TabLineSel cterm=bold,reverse ctermfg=default ctermbg=default
+highlight User1 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User2 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User3 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User4 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User5 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User6 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User7 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User8 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User9 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
diff --git a/dotfiles/.config/vifm/colors/yaroslavps.vifm b/dotfiles/.config/vifm/colors/yaroslavps.vifm
new file mode 100644
index 0000000..bb425ee
--- /dev/null
+++ b/dotfiles/.config/vifm/colors/yaroslavps.vifm
@@ -0,0 +1,33 @@
+highlight clear
+highlight Win cterm=none ctermfg=white ctermbg=none
+highlight Directory cterm=bold ctermfg=cyan ctermbg=default
+highlight Link cterm=bold ctermfg=blue ctermbg=default
+highlight BrokenLink cterm=bold ctermfg=red ctermbg=default
+highlight Socket cterm=bold ctermfg=magenta ctermbg=default
+highlight Device cterm=bold ctermfg=red ctermbg=default
+highlight Fifo cterm=bold ctermfg=cyan ctermbg=default
+highlight Executable cterm=bold ctermfg=green ctermbg=default
+highlight Selected cterm=bold ctermfg=magenta ctermbg=default
+highlight CurrLine cterm=bold,reverse ctermfg=default ctermbg=default
+highlight TopLine cterm=none ctermfg=white ctermbg=black
+highlight TopLineSel cterm=bold ctermfg=black ctermbg=default
+highlight StatusLine cterm=bold ctermfg=white ctermbg=black
+highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black
+highlight CmdLine cterm=none ctermfg=white ctermbg=black
+highlight ErrorMsg cterm=none ctermfg=red ctermbg=black
+highlight Border cterm=none ctermfg=white ctermbg=black
+highlight JobLine cterm=bold,reverse ctermfg=black ctermbg=white
+highlight SuggestBox cterm=bold ctermfg=default ctermbg=default
+highlight CmpMismatch cterm=bold ctermfg=white ctermbg=red
+highlight AuxWin cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight TabLine cterm=none ctermfg=white ctermbg=black
+highlight TabLineSel cterm=bold,reverse ctermfg=default ctermbg=default
+highlight User1 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User2 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User3 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User4 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User5 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User6 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User7 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User8 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
+highlight User9 cterm=bold,underline,reverse,standout,italic ctermfg=default ctermbg=default
diff --git a/dotfiles/.config/vifm/scripts/README b/dotfiles/.config/vifm/scripts/README
new file mode 100644
index 0000000..7694952
--- /dev/null
+++ b/dotfiles/.config/vifm/scripts/README
@@ -0,0 +1,6 @@
+This directory is dedicated for user-supplied scripts/executables.
+vifm modifies its PATH environment variable to let user run those
+scripts without specifying full path.  All subdirectories are added
+as well.  File in a subdirectory overrules file with the same name
+in parent directories.  Restart might be needed to recognize files
+in newly created or renamed subdirectories.
\ No newline at end of file
diff --git a/dotfiles/.config/vifm/scripts/imgc b/dotfiles/.config/vifm/scripts/imgc
new file mode 100755
index 0000000..941b7e7
--- /dev/null
+++ b/dotfiles/.config/vifm/scripts/imgc
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+W3MIMGDISPLAY="/usr/lib/w3m/w3mimgdisplay"
+FONTH=18 # Size of one terminal row
+FONTW=9 # Size of one terminal column
+
+X=$1
+Y=$2
+COLUMNS=$3
+LINES=$4
+
+x=$((FONTW * X))
+y=$((FONTH * Y))
+
+erase="6;$x;$y;$(( FONTW*COLUMNS ));$(( FONTH*LINES ))\n3;"
+echo -e "$erase" | $W3MIMGDISPLAY
diff --git a/dotfiles/.config/vifm/scripts/imgt b/dotfiles/.config/vifm/scripts/imgt
new file mode 100755
index 0000000..5d76d5d
--- /dev/null
+++ b/dotfiles/.config/vifm/scripts/imgt
@@ -0,0 +1,38 @@
+#!/bin/bash
+#
+# Based on script by z3bra -- 2014-01-21
+
+W3MIMGDISPLAY="/usr/lib/w3m/w3mimgdisplay"
+FONTH=16 # Size of one terminal row
+FONTW=9 # Size of one terminal column
+
+X=$1
+Y=$2
+COLUMNS=$3
+LINES=$4
+FILENAME=$5
+
+read width height <<< `echo "5;$FILENAME" | $W3MIMGDISPLAY`
+if [ -z "$width" -o -z "$height" ]; then
+    echo 'Error: Failed to obtain image size.'
+    exit 1
+fi
+
+x=$((FONTW * X))
+y=$((FONTH * Y))
+
+max_width=$((FONTW * COLUMNS))
+max_height=$((FONTH * LINES))
+
+if [ "$width" -gt "$max_width" ]; then
+    height=$((height * max_width / width))
+    width=$max_width
+fi
+if [ "$height" -gt "$max_height" ]; then
+    width=$((width * max_height / height))
+    height=$max_height
+fi
+
+w3m_command="0;1;$x;$y;$width;$height;;;;;$FILENAME\n4;\n3;"
+
+echo -e "$w3m_command" | $W3MIMGDISPLAY
diff --git a/dotfiles/.config/vifm/scripts/vifmimg b/dotfiles/.config/vifm/scripts/vifmimg
new file mode 100755
index 0000000..e5d8763
--- /dev/null
+++ b/dotfiles/.config/vifm/scripts/vifmimg
@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+readonly ID_PREVIEW="preview"
+
+#AUTO_REMOVE="yes"
+# By enabling this option the script will remove the preview file after it is drawn
+# and by doing so the preview will always be up-to-date with the file.
+# This however, requires more CPU and therefore affects the overall performance.
+
+if [ -e "$FIFO_UEBERZUG" ]; then
+    if [[ "$1" == "draw" ]]; then
+        declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW"
+                           [x]="$2" [y]="$3" [width]="$4" [height]="$5" \
+                           [path]="${PWD}/$6") \
+            > "$FIFO_UEBERZUG"
+
+    elif [[ "$1" == "videopreview" ]]; then
+        echo -e "Loading preview..\nFile: $6"
+        [[ ! -d "/tmp${PWD}/$6/" ]] && mkdir -p "/tmp${PWD}/$6/"
+        [[ ! -f "/tmp${PWD}/$6.png" ]] && ffmpegthumbnailer -i "${PWD}/$6" -o "/tmp${PWD}/$6.png" -s 0 -q 10
+        declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW"
+                           [x]="$2" [y]="$3" [width]="$4" [height]="$5" \
+                           [path]="/tmp${PWD}/$6.png") \
+            > "$FIFO_UEBERZUG"
+
+    elif [[ "$1" == "gifpreview" ]]; then
+        echo -e "Loading preview..\nFile: $6"
+        [[ ! -d "/tmp${PWD}/$6/" ]] && mkdir -p "/tmp${PWD}/$6/" && convert -coalesce "${PWD}/$6" "/tmp${PWD}/$6/$6.png"
+        for frame in $(ls -1 /tmp${PWD}/$6/$6*.png | sort -V); do
+           declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW"
+                           [x]="$2" [y]="$3" [width]="$4" [height]="$5" \
+                           [path]="$frame") \
+            > "$FIFO_UEBERZUG"
+            # Sleep between frames to make the animation smooth.
+            sleep .07
+        done
+
+    elif [[ "$1" == "pdfpreview" ]]; then
+        echo -e "Loading preview..\nFile: $6"
+        [[ ! -d "/tmp${PWD}/$6/" ]] && mkdir -p "/tmp${PWD}/$6/"
+        [[ ! -f "/tmp${PWD}/$6.png" ]] && pdftoppm -png -singlefile "$6" "/tmp${PWD}/$6"
+        declare -p -A cmd=([action]=add [identifier]="$ID_PREVIEW"
+                           [x]="$2" [y]="$3" [width]="$4" [height]="$5" \
+                           [path]="/tmp${PWD}/$6.png") \
+            > "$FIFO_UEBERZUG"
+
+    elif [[ "$1" == "clear" ]]; then
+        declare -p -A cmd=([action]=remove [identifier]="$ID_PREVIEW") \
+            > "$FIFO_UEBERZUG"
+        [[ ! -z $AUTO_REMOVE ]] && [[ -f "/tmp${PWD}/$6.png" ]] && rm -f "/tmp${PWD}/$6.png"
+        [[ ! -z $AUTO_REMOVE ]] && [[ -d "/tmp${PWD}/$6/" ]] && rm -rf "/tmp${PWD}/$6/"
+
+    fi
+fi
diff --git a/dotfiles/.config/vifm/scripts/vifmrun b/dotfiles/.config/vifm/scripts/vifmrun
new file mode 100755
index 0000000..9eda32a
--- /dev/null
+++ b/dotfiles/.config/vifm/scripts/vifmrun
@@ -0,0 +1,15 @@
+#!/usr/bin/env bash
+export FIFO_UEBERZUG="/tmp/vifm-ueberzug-${PPID}"
+
+function cleanup {
+    rm "$FIFO_UEBERZUG" 2>/dev/null
+    pkill -P $$ 2>/dev/null
+}
+
+rm "$FIFO_UEBERZUG" 2>/dev/null
+mkfifo "$FIFO_UEBERZUG"
+trap cleanup EXIT
+tail --follow "$FIFO_UEBERZUG" | ueberzug layer --silent --parser bash &
+
+vifm
+cleanup
diff --git a/dotfiles/.config/vifm/vifm-help.txt b/dotfiles/.config/vifm/vifm-help.txt
new file mode 100644
index 0000000..59550f6
--- /dev/null
+++ b/dotfiles/.config/vifm/vifm-help.txt
@@ -0,0 +1,5899 @@
+VIFM(1)			    General Commands Manual		       VIFM(1)
+
+
+
+NAME
+       vifm - vi file manager
+
+SYNOPSIS
+       vifm [OPTION]...
+       vifm [OPTION]... path
+       vifm [OPTION]... path path
+
+DESCRIPTION
+       Vifm is an ncurses based file manager with vi like keybindings.	If you
+       use vi, vifm gives you complete keyboard control over your files	 with-
+       out having to learn a new set of commands.
+
+OPTIONS
+       vifm  starts  in	 the  current directory unless it is given a different
+       directory on the command line or 'vifminfo' option includes  "savedirs"
+       (in which case last visited directories are used as defaults).
+
+       -      Read list of files from standard input stream and compose custom
+	      view out of them (see "Custom views" section).  Current  working
+	      directory is used as a base for relative paths.
+
+       <path> Starts Vifm in the specified path.
+
+       <path> <path>
+	      Starts Vifm in the specified paths.
+
+       Specifying  two	directories  triggers split view even when vifm was in
+       single-view mode on finishing previous session.	To suppress  this  be-
+       haviour :only command can be put in the vifmrc file.
+
+       When only one path argument is found on command-line, the left/top pane
+       is automatically set as the current view.
+
+       Paths to files are also allowed in case you want	 vifm  to  start  with
+       some archive opened.
+
+       --select <path>
+	      Open  parent  directory  of  the given path and select specified
+	      file in it.
+
+       -f     Makes  vifm  instead  of	opening	 files	write	selection   to
+	      $VIFM/vimfiles and quit.
+
+       --choose-files <path>|-
+	      Sets  output  file  to  write  selection into on exit instead of
+	      opening files.  "-" means standard output.  Use empty  value  to
+	      disable it.
+
+       --choose-dir <path>|-
+	      Sets  output  file to write last visited directory into on exit.
+	      "-" means standard output.  Use empty value to disable it.
+
+       --delimiter <delimiter>
+	      Sets separator for list of  file	paths  written	out  by	 vifm.
+	      Empty  value  means null character.  Default is new line charac-
+	      ter.
+
+       --on-choose <command>
+	      Sets command to be executed on selected files instead of opening
+	      them.   The  command may use any of macros described in "Command
+	      macros" section below.  The command is executed once  for	 whole
+	      selection.
+
+       --logging[=<startup log path>]
+	      Log some operational details $VIFM/log.  If the optional startup
+	      log path is specified and permissions allow to open it for writ-
+	      ing, then logging of early initialization (before value of $VIFM
+	      is determined) is put there.
+
+       --server-list
+	      List available server names and exit.
+
+       --server-name <name>
+	      Name of target or this instance (sequential numbers are appended
+	      on name conflict).
+
+       --remote
+	      Sends  the rest of the command line to another instance of vifm,
+	      --server-name is treated just like any other argument and should
+	      precede  --remote on the command line.  When there is no server,
+	      quits silently.  There is no limit on how many arguments can  be
+	      processed.  One can combine --remote with -c <command> or +<com-
+	      mand> to execute commands in already running instance  of	 vifm.
+	      See also "Client-Server" section below.
+
+       --remote-expr
+	      passes  expression  to  vifm server and prints result.  See also
+	      "Client-Server" section below.
+
+       -c <command> or +<command>
+	      Run command-line mode <command> on startup.   Commands  in  such
+	      arguments are executed in the order they appear in command line.
+	      Commands with spaces or special symbols must be enclosed in dou-
+	      ble  or  single  quotes or all special symbols should be escaped
+	      (the exact syntax strongly depends on shell).  "+"  argument  is
+	      equivalent to "$" and thus picks last item of of the view.
+
+       --help, -h
+	      Show a brief command summary and exit vifm.
+
+       --version, -v
+	      Show version information and quit.
+
+       --no-configs
+	      Skip reading vifmrc and vifminfo.
+
+
+       See "Startup" section below for the explanations on $VIFM.
+
+General keys
+       Ctrl-C or Escape
+	      cancel most operations (see "Cancellation" section below), clear
+	      all selected files.
+
+       Ctrl-L clear and redraw the screen.
+
+Basic Movement
+       The basic vi key bindings are used to move through the files and pop-up
+       windows.
+
+       k, gk, or Ctrl-P
+	      move cursor up one line.
+
+       j, gj or Ctrl-N
+	      move cursor down one line.
+
+       h      when  'lsview'  is  off  move  up one directory (moves to parent
+	      directory node in tree view), otherwise move left one file.
+
+       l      when 'lsview' is off move into a directory or launches  a	 file,
+	      otherwise move right one file.
+
+       gg     move to the first line of the file list.
+
+       G      move to the last line in the file list.
+
+       gh     go  up one directory regardless of view representation (regular,
+	      ls-like).	 Also can be used to leave custom views including tree
+	      view.
+
+       gl or Enter
+	      enter directory or launch a file.
+
+       H      move to the first file in the window.
+
+       M      move to the file in the middle of the window.
+
+       L      move to the last file in the window.
+
+       Ctrl-F or Page Down
+	      move forward one page.
+
+       Ctrl-B or Page Up
+	      move back one page.
+
+       Ctrl-D jump back one half page.
+
+       Ctrl-U jump forward one half page.
+
+       n%     move to the file that is n percent from the top of the list (for
+	      example 25%).
+
+       0 or ^ move cursor to the first column.	See 'lsview'  option  descrip-
+	      tion.
+
+       $      move  cursor  to	the last column.  See 'lsview' option descrip-
+	      tion.
+
+       Space  switch file lists.
+
+       gt     switch to the next tab (wrapping around).
+
+       {n}gt  switch to the tab number {n} (wrapping around).
+
+       gT     switch to the previous tab (wrapping around).
+
+       {n}gT  switch to {n}-th previous tab.
+
+Movement with Count
+       Most movement commands also accept a count,  12j	 would	move  down  12
+       files.
+
+       [count]%
+	      move to percent of the file list.
+
+       [count]j
+	      move down [count] files.
+
+       [count]k
+	      move up [count] files.
+
+       [count]G or [count]gg
+	      move to list position [count].
+
+       [count]h
+	      go up [count] directories.
+
+Scrolling panes
+       zt     redraw pane with file in top of list.
+
+       zz     redraw pane with file in center of list.
+
+       zb     redraw pane with file in bottom of list.
+
+       Ctrl-E scroll pane one line down.
+
+       Ctrl-Y scroll pane one line up.
+
+Pane manipulation
+       Second character can be entered with or without Control key.
+
+       Ctrl-W H
+	      move the pane to the far left.
+
+       Ctrl-W J
+	      move the pane to the very bottom.
+
+       Ctrl-W K
+	      move the pane to the very top.
+
+       Ctrl-W L
+	      move the pane to the far right.
+
+
+       Ctrl-W h
+	      switch to the left pane.
+
+       Ctrl-W j
+	      switch to the pane below.
+
+       Ctrl-W k
+	      switch to the pane above.
+
+       Ctrl-W l
+	      switch to the right pane.
+
+
+       Ctrl-W b
+	      switch to bottom-right window.
+
+       Ctrl-W t
+	      switch to top-left window.
+
+
+       Ctrl-W p
+	      switch to previous window.
+
+       Ctrl-W w
+	      switch to other pane.
+
+
+       Ctrl-W o
+	      leave only one pane.
+
+       Ctrl-W s
+	      split window horizontally.
+
+       Ctrl-W v
+	      split window vertically.
+
+
+       Ctrl-W x
+	      exchange panes.
+
+       Ctrl-W z
+	      quit preview pane or view modes.
+
+
+       Ctrl-W -
+	      decrease size of the view by count.
+
+       Ctrl-W +
+	      increase size of the view by count.
+
+       Ctrl-W <
+	      decrease size of the view by count.
+
+       Ctrl-W >
+	      increase size of the view by count.
+
+
+       Ctrl-W |
+	      set current view size to count.
+
+       Ctrl-W _
+	      set current view size to count.
+
+       Ctrl-W =
+	      make size of two views equal.
+
+       For  Ctrl-W +, Ctrl-W -, Ctrl-W <, Ctrl-W >, Ctrl-W | and Ctrl-W _ com-
+       mands count can be given before and/or  after  Ctrl-W.	The  resulting
+       count  is  a  multiplication of those two.  So "2 Ctrl-W 2 -" decreases
+       window size by 4 lines or columns.
+
+       Ctrl-W | and Ctrl-W _ maximise current view by default.
+
+Marks
+       Marks are set the same way as they are in vi.
+
+       You can use these characters for marks [a-z][A-Z][0-9].
+
+       m[a-z][A-Z][0-9]
+	      set a mark for the file at the current cursor position.
+
+       '[a-z][A-Z][0-9]
+	      navigate to the file set for the mark.
+
+
+       There are also several special marks that can't be set manually:
+
+	 - ' (single quote) - previously visited directory of the  view,  thus
+	   hitting '' allows switching between two last locations
+
+	 - < - the first file of the last visually selected block
+
+	 - > - the last file of the last visually selected block
+
+Searching
+       /regular expression pattern
+	      search  for  files matching regular expression in forward direc-
+	      tion and advance cursor to next match.
+
+       /      perform forward search with top item of search pattern history.
+
+       ?regular expression pattern
+	      search for files matching regular expression in backward	direc-
+	      tion and advance cursor to previous match.
+
+       ?      perform backward search with top item of search pattern history.
+
+       Trailing	 slash	for directories is taken into account, so /\/ searches
+       for directories and symbolic links to directories.  At  the  moment  //
+       works  too, but this can change in the future, so consider escaping the
+       slash if not typing pattern by hand.
+
+       Matches are automatically selected  if  'hlsearch'  is  set.   Enabling
+       'incsearch'  makes  search  interactive.	  'ignorecase' and 'smartcase'
+       options affect case sensitivity of search queries.
+
+
+       [count]n
+	      go to the next file matching last search	pattern.   Takes  last
+	      search direction into account.
+
+       [count]N
+	      go  to  the  previous  file matching last search pattern.	 Takes
+	      last search direction into account.
+
+       If 'hlsearch' option is set, hitting n/N to perform search  and	go  to
+       the first matching item resets current selection in normal mode.	 It is
+       not the case if search was already performed on files in the directory,
+       thus  selection	is  not reset after clearing selection with escape key
+       and hitting n/N key again.
+
+       Note: vifm uses extended regular expressions for / and ?.
+
+
+       [count]f[character]
+	      search forward for file with [character] as first	 character  in
+	      name.  Search wraps around the end of the list.
+
+       [count]F[character]
+	      search  backward for file with [character] as first character in
+	      name.  Search wraps around the end of the list.
+
+       [count];
+	      find the next match of f or F.
+
+       [count],
+	      find the previous match of f or F.
+
+       Note: f, F, ; and , wrap around list beginning and end  when  they  are
+       used alone and they don't wrap when they are used as selectors.
+
+File Filters
+       There are three basic file filters:
+
+	 - dot files filter (excluding "." and ".." special directories, whose
+	   appearance is controlled by the 'dotdirs' option);
+
+	 - manual filter for file names;
+
+	 - automatic filter for file names;
+
+	 - local filter for file names (see description of the "=" normal mode
+	   command).
+
+       Performing  operations  on  manual  filter for file names automatically
+       does the same on automatic one.	The  file  name	 filter	 is  separated
+       mainly for convenience purpose and to get more deterministic behaviour.
+
+       The basic vim folding key bindings are used for filtering files.
+
+       Each file list has its own copy of each filter.
+
+       Filtered files are not checked in / search or :commands.
+
+       Files  and  directories	are  filtered separately.  For this a slash is
+       appended to a directory name before testing whether it matches the fil-
+       ter.  Examples:
+
+
+	 " filter directories which names end with '.files'
+	 :filter /^.*\.files\/$/
+
+	 " filter files which names end with '.d'
+	 :filter /^.*\.d$/
+
+	 " filter files and directories which names end with '.o'
+	 :filter /^.*\.o\/?$/
+
+       Note: vifm uses extended regular expressions.
+
+       za     toggle visibility of dot files.
+
+       zo     show dot files.
+
+       zm     hide dot files.
+
+       zf     add selected files to file name filter.
+
+       zO     show files hidden by file name filter.
+
+       zM     restore all filters.
+
+       zR     remove all filters.
+
+       zr     remove local filter.
+
+       zd     exclude  selection  or  current  file  from a custom view.  Does
+	      nothing for regular view.	 For  tree  view  excluding  directory
+	      excludes	that  sub-tree.	  For  compare views zd hides group of
+	      adjacent identical files, count can be specified as 1 to exclude
+	      just single file or selected items instead.  Files excluded this
+	      way are not counted as filtered out and can't be returned unless
+	      view is reloaded.
+
+       =regular expression pattern
+	      filter  out  files that don't match regular expression.  Whether
+	      view is updated as regular expression is changed depends on  the
+	      value  of	 the 'incsearch' option.  This kind of filter is auto-
+	      matically reset when directory is changed.
+
+Other Normal Mode Keys
+       [count]:
+	      enter command line mode.	[count] generates range.
+
+       q:     open external editor to prompt for  command-line	command.   See
+	      "Command line editing" section for details.
+
+       q/     open external editor to prompt for search pattern to be searched
+	      in forward direction.  See "Command line	editing"  section  for
+	      details.
+
+       q?     open external editor to prompt for search pattern to be searched
+	      in backward direction.  See "Command line editing"  section  for
+	      details.
+
+       q=     open external editor to prompt for filter pattern.  See "Command
+	      line editing" section for details.  Unlike other	q{x}  commands
+	      this one doesn't work in Visual mode.
+
+       [count]!! and [count]!<selector>
+	      enter  command  line mode with entered ! command.	 [count] modi-
+	      fies range.
+
+       Ctrl-O go backwards through directory history of current view.	Nonex-
+	      istent directories are automatically skipped.
+
+       Ctrl-I if  'cpoptions' contains "t" flag, <tab> and <c-i> switch active
+	      pane just like <space> does, otherwise it goes  forward  through
+	      directory	 history of current view.  Nonexistent directories are
+	      automatically skipped.
+
+       Ctrl-G create a window showing detailed information about  the  current
+	      file.
+
+       Shift-Tab
+	      enters  view  mode  (works  only after activating view pane with
+	      :view command).
+
+       ga     calculate directory size.	 Uses cached directory sizes when pos-
+	      sible  for  better  performance.	 As a special case calculating
+	      size of ".." entry results in calculation	 of  size  of  current
+	      directory.
+
+       gA     like  ga,	 but  force  update.   Ignores old values of directory
+	      sizes.
+
+       If file under cursor is selected, each selected item is processed, oth-
+       erwise only current file is updated.
+
+       gf     find  link  destination (like l with 'followlinks' off, but also
+	      finds directories).
+
+       gr     only for MS-Windows
+	      same as l key, but tries	to  run	 program  with	administrative
+	      privileges.
+
+       av     go  to visual mode into selection amending state preserving cur-
+	      rent selection.
+
+       gv     go to visual mode restoring last selection.
+
+       [reg]gs
+	      when no register is specified, restore last t selection (similar
+	      to  what	gv  does  for  visual mode selection).	If register is
+	      present, then all files listed in that register  and  which  are
+	      visible in current view are selected.
+
+       gu<selector>
+	      make names of selected files lowercase.
+
+       [count]guu and [count]gugu
+	      make names of [count] files starting from the current one lower-
+	      case.  Without [count] only current file is affected.
+
+       gU<selector>
+	      make names of selected files uppercase.
+
+       [count]gUU and [count]gUgU
+	      make names of [count] files starting from the current one upper-
+	      case.  Without [count] only current file is affected.
+
+       e      explore file in the current pane.
+
+       i      handle  file (even if it's an executable and 'runexec' option is
+	      set).
+
+       cw     change word is used to rename a file or files.
+
+       cW     change WORD is used to change only name of file (without	exten-
+	      sion).
+
+       cl     change link target.
+
+       co     only for *nix
+	      change file owner.
+
+       cg     only for *nix
+	      change file group.
+
+       [count]cp
+	      change  file  attributes	(permission  on *nix and properties on
+	      Windows).	 If [count] is specified, it's	treated	 as  numerical
+	      argument	 for   non-recursive  `chmod`  command	(of  the  form
+	      [0-7]{3,4}).
+
+       [count]C
+	      clone file [count] times.
+
+       [count]dd or d[count]selector
+	      move selected file or  files  to	trash  directory  (if  'trash'
+	      option is set, otherwise delete).	 See "Trash directory" section
+	      below.
+
+       [count]DD or D[count]selector
+	      like dd and d<selector>, but omitting trash directory (even when
+	      'trash' option is set).
+
+       Y, [count]yy or y[count]selector
+	      yank selected files.
+
+       p      copy  yanked files to the current directory or move the files to
+	      the current directory if they were deleted with dd or  :d[elete]
+	      or  if  the  files were yanked from trash directory.  See "Trash
+	      directory" section below.
+
+       P      move the last yanked files.  The advantage of using P instead of
+	      d	 followed  by  p  is that P moves files only once.  This isn't
+	      important in case you're moving files in the  same  file	system
+	      where  your home directory is, but using P to move files on some
+	      other file system (or file systems, in case  you	want  to  move
+	      files  from  fs1	to  fs2 and your home is on fs3) can save your
+	      time.
+
+       al     put symbolic links with absolute paths.
+
+       rl     put symbolic links with relative paths.
+
+       t      select or unselect (tag) the current file.
+
+       u      undo last change.
+
+       Ctrl-R redo last change.
+
+       dp     in compare view of "ofboth grouppaths" kind, makes corresponding
+	      entry of the other pane equal to the current one.	 The semantics
+	      is as follows:
+	       - nothing done for identical entries
+	       - if file is missing in current view, its pair gets removed
+	       - if file is missing or differs in other view, it's replaced
+	       - file pairs are defined by matching relative paths
+	      File removal obeys 'trash' option.  When the option is  enabled,
+	      the  operation  can  be undone/redone (although results won't be
+	      visible automatically).
+	      Unlike in Vim, this operation is	performed  on  a  single  line
+	      rather than a set of adjacent changes.
+
+       do     same as dp, but applies changes in the opposite direction.
+
+       v or V enter visual mode, clears current selection.
+
+       [count]Ctrl-A
+	      increment first number in file name by [count] (1 by default).
+
+       [count]Ctrl-X
+	      decrement first number in file name by [count] (1 by default).
+
+       ZQ     same as :quit!.
+
+       ZZ     same as :quit.
+
+       .      repeat  last  command-line  command (not normal mode command) of
+	      this session (does nothing right after startup or :restart  com-
+	      mand).   The  command doesn't depend on command-line history and
+	      can be used with completely disabled history.
+
+       (      go to previous group.  Groups are	 defined  by  primary  sorting
+	      key.   For  name and iname members of each group have same first
+	      letter, for all other sorting keys vifm uses size, uid, ...
+
+       )      go to next group.	 See ( key description above.
+
+       {      speeds up navigation to closest previous entry of	 the  opposite
+	      type  by	moving to the first file backwards when cursor is on a
+	      directory and to the first directory backwards when cursor is on
+	      a	 file.	This is essentially a special case of ( that is locked
+	      on "dirs".
+
+       }      same as {, but in forward direction.
+
+       [c     go to previous mismatched entry in directory comparison view  or
+	      do nothing.
+
+       ]c     go  to  next mismatched entry in directory comparison view or do
+	      nothing.
+
+       [d     go to previous directory entry or do nothing.
+
+       ]d     go to next directory entry or do nothing.
+
+       [r     same as :siblprev.
+
+       ]r     same as :siblnext.
+
+       [R     same as :siblprev!.
+
+       ]R     same as :siblnext!.
+
+       [s     go to previous selected entry or do nothing.
+
+       ]s     go to next selected entry or do nothing.
+
+       [z     go to first sibling of current entry.
+
+       ]z     go to last sibling of current entry.
+
+       zj     go to next directory sibling of current entry or do nothing.
+
+       zk     go to previous directory sibling of current entry or do nothing.
+
+Using Count
+       You can use count with commands like yy.
+
+       [count]yy
+	      yank count files starting from current cursor position downward.
+
+       Or you can use count with motions passed to y, d or D.
+
+       d[count]j
+	      delete (count + 1) files starting from current  cursor  position
+	      upward.
+
+Registers
+       vifm  supports  multiple registers for temporary storing list of yanked
+       or deleted files.
+
+       Registers should be specified by hitting double quote key followed by a
+       register	 name.	 Count	is  specified after register name.  By default
+       commands use unnamed register, which has double quote as its name.
+
+       Though all commands accept registers, most  of  commands	 ignores  them
+       (for  example H or Ctrl-U).  Other commands can fill register or append
+       new files to it.
+
+       Presently vifm supports ", _, a-z and A-Z characters as register names.
+
+       As mentioned above " is unnamed register and has special meaning of the
+       default	register.  Every time when you use named registers (a-z and A-
+       Z) unnamed register is updated to contain same list  of	files  as  the
+       last used register.
+
+       _  is black hole register.  It can be used for writing, but its list is
+       always empty.
+
+       Registers with names from a to z and from A to Z are named ones.	  Low-
+       ercase  registers  are cleared before adding new files, while uppercase
+       aren't and should be used to append new files to the existing file list
+       of appropriate lowercase register (A for a, B for b, ...).
+
+       Registers  can be changed on :empty command if they contain files under
+       trash directory (see "Trash directory" section below).
+
+       Registers do not contain one file more than once.
+
+       Example:
+
+	 "a2yy
+
+       puts names of two files to register a (and to the unnamed register),
+
+	 "Ad
+
+       removes one file and append its name to register a (and to the  unnamed
+       register),
+
+	 p or "ap or "Ap
+
+       inserts previously yanked and deleted files into current directory.
+
+Selectors
+       y,  d, D, !, gu and gU commands accept selectors.  You can combine them
+       with any of selectors below to quickly remove or yank several files.
+
+       Most of selectors are like vi motions: j, k, gg, G, H, L, M, %,	f,  F,
+       ;, comma, ', ^, 0 and $.	 But there are some additional ones.
+
+       a      all files in current view.
+
+       s      selected files.
+
+       S      all files except selected.
+
+       Examples:
+
+	 - dj - delete file under cursor and one below;
+
+	 - d2j - delete file under cursor and two below;
+
+	 - y6gg - yank all files from cursor position to 6th file in the list.
+
+       When you pass a count to whole command and its selector they are multi-
+       plied. So:
+
+	 - 2d2j - delete file under cursor and four below;
+
+	 - 2dj - delete file under cursor and two below;
+
+	 - 2y6gg - yank all files from cursor position to  12th	 file  in  the
+	   list.
+
+Visual Mode
+       Visual mode has to generic operating submodes:
+
+	 - plain selection as it is in Vim;
+
+	 - selection editing submode.
+
+       Both  modes  select files in range from cursor position at which visual
+       mode was entered to current cursor position (let's call	it  "selection
+       region").  Each of two borders can be adjusted by swapping them via "o"
+       or "O" keys and updating cursor position	 with  regular	cursor	motion
+       keys.   Obviously,  once	 initial  cursor position is altered this way,
+       real start position becomes unavailable.
+
+       Plain Vim-like visual mode starts with cleared selection, which is  not
+       restored	 on  rejecting selection ("Escape", "Ctrl-C", "v", "V").  Con-
+       trary to it, selection editing doesn't clear previously selected	 files
+       and  restores  them after reject.  Accepting selection by performing an
+       operation on selected items (e.g. yanking them via "y") moves cursor to
+       the  top of current selection region (not to the top most selected file
+       of the view).
+
+       In turn, selection editing supports three types	of  editing  (look  at
+       statusbar to know which one is currently active):
+
+	 - append - amend selection by selecting elements in selection region;
+
+	 - remove  -  amend  selection	by  deselecting	 elements in selection
+	   region;
+
+	 - invert - amend selection by	inverting  selection  of  elements  in
+	   selection region.
+
+       No  matter  how	you  activate selection editing it starts in "append".
+       One can switch type of operation (in the order given above) via	"Ctrl-
+       G" key.
+
+       Almost all normal mode keys work in visual mode, but instead of accept-
+       ing selectors they operate on selected items.
+
+       Enter  save selection and go back to normal mode not moving cursor.
+
+       av     leave visual mode if in amending mode (restores previous	selec-
+	      tion), otherwise switch to amending selection mode.
+
+       gv     restore previous visual selection.
+
+       v, V, Ctrl-C or Escape
+	      leave  visual  mode if not in amending mode, otherwise switch to
+	      normal visual selection.
+
+       Ctrl-G switch type of amending by round robin scheme: append ->	remove
+	      -> invert.
+
+       :      enter  command  line  mode.  Selection is cleared on leaving the
+	      mode.
+
+       o      switch active selection bound.
+
+       O      switch active selection bound.
+
+       gu, u  make names of selected files lowercase.
+
+       gU, U  make names of selected files uppercase.
+
+View Mode
+       This mode tries to imitate the less program.  List of builtin shortcuts
+       can be found below.  Shortcuts can be customized using :qmap, :qnoremap
+       and :qunmap command-line commands.
+
+       Shift-Tab, Tab, q, Q, ZZ
+	      return to normal mode.
+
+       [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter
+	      scroll forward one line (or [count] lines).
+
+       [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P
+	      scroll backward one line (or [count] lines).
+
+       [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space
+	      scroll forward one window (or [count] lines).
+
+       [count]b, [count]Ctrl-B, [count]Alt-V
+	      scroll backward one window (or [count] lines).
+
+       [count]z
+	      scroll forward one window (and set window to [count]).
+
+       [count]w
+	      scroll backward one window (and set window to [count]).
+
+       [count]Alt-Space
+	      scroll forward one window, but don't stop at end-of-file.
+
+       [count]d, [count]Ctrl-D
+	      scroll forward one half-window (and set half-window to [count]).
+
+       [count]u, [count]Ctrl-U
+	      scroll  backward	one  half-window  (and	set   half-window   to
+	      [count]).
+
+       r, Ctrl-R, Ctrl-L
+	      repaint screen.
+
+       R      reload view preserving scroll position.
+
+       F      toggle  automatic	 forwarding.   Roughly	equivalent to periodic
+	      file reload and scrolling to the bottom.	The behaviour is simi-
+	      lar to `tail -F` or F key in less.
+
+       [count]/pattern
+	      search forward for ([count]-th) matching line.
+
+       [count]?pattern
+	      search backward for ([count]-th) matching line.
+
+       [count]n
+	      repeat previous search (for [count]-th occurrence).
+
+       [count]N
+	      repeat  previous	search	in  reverse  direction (for [count]-th
+	      occurrence).
+
+       [count]g, [count]<, [count]Alt-<
+	      scroll to the first line of the file (or line [count]).
+
+       [count]G, [count]>, [count]Alt->
+	      scroll to the last line of the file (or line [count]).
+
+       [count]p, [count]%
+	      scroll to the beginning of the file (or N percent into file).
+
+       v      invoke an editor to edit the current  file  being	 viewed.   The
+	      command  for  editing  is taken from the 'vicmd'/'vixcmd' option
+	      value and extended with middle line number prepended by  a  plus
+	      sign and name of the current file.
+
+       All  "Ctrl-W  x" keys work the same was as in Normal mode.  Active mode
+       is automatically changed on navigating among windows.   When  less-like
+       mode  activated	on  file preview is left using one by "Ctrl-W x" keys,
+       its state is stored until another file is displayed using preview (it's
+       possible	 to leave the mode, hide preview pane, do something else, then
+       get back to the file and show preview pane again with previously stored
+       state in it).
+
+Command line Mode
+       These keys are available in all submodes of the command line mode: com-
+       mand, search, prompt and filtering.
+
+       Down, Up, Left, Right, Home, End and Delete are extended keys and  they
+       are  not	 available  if	vifm  is compiled with --disable-extended-keys
+       option.
+
+       Esc, Ctrl-C
+	      leave command line mode,	cancels	 input.	  Cancelled  input  is
+	      saved into appropriate history and can be recalled later.
+
+       Ctrl-M, Enter
+	      execute command and leave command line mode.
+
+       Ctrl-I, Tab
+	      complete command or its argument.
+
+       Shift-Tab
+	      complete in reverse order.
+
+       Ctrl-_ stop completion and return original input.
+
+       Ctrl-B, Left
+	      move cursor to the left.
+
+       Ctrl-F, Right
+	      move cursor to the right.
+
+       Ctrl-A, Home
+	      go to line beginning.
+
+       Ctrl-E, End
+	      go to line end.
+
+       Alt-B  go to the beginning of previous word.
+
+       Alt-F  go to the end of next word.
+
+       Ctrl-U remove  characters  from	cursor	position till the beginning of
+	      line.
+
+       Ctrl-K remove characters from cursor position till the end of line.
+
+       Ctrl-H, Backspace
+	      remove character before the cursor.
+
+       Ctrl-D, Delete
+	      remove character under the cursor.
+
+       Ctrl-W remove characters from cursor position  till  the	 beginning  of
+	      previous word.
+
+       Alt-D  remove  characters  from	cursor	position till the beginning of
+	      next word.
+
+       Ctrl-T swap the order of current and previous character and move cursor
+	      forward  or,  if	cursor past the end of line, swap the order of
+	      two last characters in the line.
+
+       Alt-.  insert last part of previous command to current cursor position.
+	      Each next call will insert last part of older command.
+
+       Ctrl-G edit command-line content in external editor.  See "Command line
+	      editing" section for details.
+
+       Ctrl-N recall more recent command-line from history.
+
+       Ctrl-P recall older command-line from history.
+
+       Up     recall more recent command-line from history, that begins as the
+	      current command-line.
+
+       Down   recall  older command-line from history, that begins as the cur-
+	      rent command-line.
+
+       Ctrl-] trigger abbreviation expansion.
+
+Pasting special values
+       The shortcuts listed below insert specified values into current	cursor
+       position.  Last key of every shortcut references value that it inserts:
+	 - c - [c]urrent file
+	 - d - [d]irectory path
+	 - e - [e]xtension of a file name
+	 - r - [r]oot part of a file name
+	 - t - [t]ail part of directory path
+
+	 - a - [a]utomatic filter
+	 - m - [m]anual filter
+	 - = - local filter, which is bound to "=" in normal mode
+
+       Values related to filelist in current pane are available through Ctrl-X
+       prefix, while values from the other pane have  doubled  Ctrl-X  key  as
+       their  prefix  (doubled Ctrl-X is presumably easier to type than upper-
+       case letters; it's still easy to remap the keys to correspond to	 names
+       of similar macros).
+
+       Ctrl-X c
+	      name of the current file of the active pane.
+
+       Ctrl-X d
+	      path to the current directory of the active pane.
+
+       Ctrl-X e
+	      extension of the current file of the active pane.
+
+       Ctrl-X r
+	      name root of current file of the active pane.
+
+       Ctrl-X t
+	      the  last	 component  of	path  to  the current directory of the
+	      active pane.
+
+       Ctrl-X Ctrl-X c
+	      name of the current file of the inactive pane.
+
+       Ctrl-X Ctrl-X d
+	      path to the current directory of the inactive pane.
+
+       Ctrl-X Ctrl-X e
+	      extension of the current file of the inactive pane.
+
+       Ctrl-X Ctrl-X r
+	      name root of current file of the inactive pane.
+
+       Ctrl-X Ctrl-X t
+	      the last component of path to the current directory of the inac-
+	      tive pane.
+
+
+       Ctrl-X a
+	      value of automatic filter of the active pane.
+
+       Ctrl-X m
+	      value of manual filter of the active pane.
+
+       Ctrl-X =
+	      value of local filter of the active pane.
+
+
+       Ctrl-X /
+	      last pattern from search history.
+
+Command line editing
+       vifm provides a facility to edit several kinds of data, that is usually
+       edited in command-line mode, in external editor (using  command	speci-
+       fied  by 'vicmd' or 'vixcmd' option).  This has at least two advantages
+       over built-in command-line mode:
+	 - one can use full power of Vim to edit text;
+	 - finding and reusing history entries becomes possible.
+
+       The facility is supported by four input submodes of the command-line:
+	 - command;
+	 - forward search;
+	 - backward search;
+	 - file rename (see description of cw and cW normal mode keys).
+
+       Editing command-line using external editor is activated by  the	Ctrl-G
+       shortcut.   It's	 also  possible	 to do almost the same from Normal and
+       Visual modes using q:, q/ and q? commands.
+
+       Temporary file created for the purpose of editing the line has the fol-
+       lowing structure:
+
+	 1. First line, which is either empty or contains text already entered
+	    in command-line.
+
+	 2. 2nd and all other lines with history items starting with the  most
+	    recent  one.   Altering this lines in any way won't change history
+	    items stored by vifm.
+
+       After editing application is finished the first line  of	 the  file  is
+       taken  as  the  result  of operation, when the application returns zero
+       exit code.  If the application returns an error (see :cquit command  in
+       Vim), all the edits made to the file are ignored, but the initial value
+       of the first line is saved in appropriate history.
+
+More Mode
+       This is the mode that appears when status bar content is so big that it
+       doesn't	fit  on the screen.  One can identify the mode by "-- More --"
+       message at the bottom.
+
+       The following keys are handled in this mode:
+
+
+       Enter, Ctrl-J, j or Down
+	      scroll one line down.
+
+       Backspace, k or Up
+	      scroll one line up.
+
+
+       d      scroll one page (half of a screen) down.
+
+       u      scroll one page (half of a screen) up.
+
+
+       Space, f or PageDown
+	      scroll down a screen.
+
+       b or PageUp
+	      scroll up a screen.
+
+
+       G      scroll to the bottom.
+
+       g      scroll to the top.
+
+
+       q, Escape or Ctrl-C
+	      quit the mode.
+
+       :      switch to command-line mode.
+
+Commands
+       Commands are executed with :command_name<Enter>
+
+       Commented out lines should start with  the  double  quote  symbol  ("),
+       which  may be preceded by whitespace characters intermixed with colons.
+       Inline comments can be added at the end of the line after double	 quote
+       symbol,	only  last  line of a multi-line command can contain such com-
+       ment.  Not all commands support inline comments as  their  syntax  con-
+       flicts  with  names  of	registers  and	fields where double quotes are
+       allowed.
+
+       Most of the commands have two forms: complete and the short one.	 Exam-
+       ple:
+
+	 :noh[lsearch]
+
+       This  means  the	 complete  command is nohlsearch, and the short one is
+       noh.
+
+       Most of command-line commands completely reset selection in the current
+       view.  However, there are several exceptions:
+
+	 - `:invert s` most likely leaves some files selected;
+
+	 - :normal command (when it doesn't leave command-line mode);
+
+	 - :if	and :else commands don't affect selection on successful execu-
+	   tion.
+
+       '|' can be used to separate commands, so you can give multiple commands
+       in  one	line.	If you want to use '|' in an argument, precede it with
+       '\'.
+
+       These commands see '|' as  part	of  their  arguments  even  when  it's
+       escaped:
+
+	   :[range]!
+	   :autocmd
+	   :cabbrev
+	   :cmap
+	   :cnoreabbrev
+	   :cnoremap
+	   :command
+	   :dmap
+	   :dnoremap
+	   :filetype
+	   :fileviewer
+	   :filextype
+	   :map
+	   :mmap
+	   :mnoremap
+	   :nmap
+	   :nnoremap
+	   :noremap
+	   :normal
+	   :qmap
+	   :qnoremap
+	   :vmap
+	   :vnoremap
+	   :wincmd
+	   :windo
+	   :winrun
+
+       To  be able to use another command after one of these, wrap it with the
+       :execute command.  An example:
+
+	 if filetype('.') == 'reg' | execute '!!echo regular file' | endif
+
+       :[count]
+
+       :number
+	      move to the file number.
+	      :12 would move to the 12th file in the list.
+	      :0 move to the top of the list.
+	      :$ move to the bottom of the list.
+
+       :[count]command
+	      The  only	 builtin  :[count]command  are	:[count]d[elete]   and
+	      :[count]y[ank].
+
+       :d3    would  delete  three files starting at the current file position
+	      moving down.
+
+       :3d    would delete one file at the third line in the list.
+
+       :command [args]
+
+       :[range]!program
+	      execute command via shell.  Accepts macros.
+
+       :[range]!command &
+
+       same as above, but the command is run in the  background	 using	vifm's
+       means.
+
+       Programs that write to stdout like "ls" create an error message showing
+       partial output of the command.
+
+       Note the space before ampersand symbol, if you omit it, command will be
+       run in the background using job control of your shell.
+
+       Accepts macros.
+
+						:!!
+
+       :[range]!!command
+	      same as :!, but pauses before returning.
+
+       :!!    repeat the last command.
+
+						:alink
+
+       :[range]alink[!?]
+	      create absolute symbolic links to files in directory of inactive
+	      view.  With "?"  prompts for destination file names in  an  edi-
+	      tor.  "!" forces overwrite.
+
+       :[range]alink[!] path
+	      create  absolute	symbolic links to files in directory specified
+	      by the path (absolute  or	 relative  to  directory  of  inactive
+	      view).
+
+       :[range]alink[!] name1 name2...
+	      create  absolute	symbolic  links of files in directory of other
+	      view giving each next link a corresponding name from  the	 argu-
+	      ment list.
+
+						:apropos
+
+       :apropos keyword...
+	      create a menu of items returned by the apropos command.  Select-
+	      ing an item in  the  menu	 opens	corresponding  man  page.   By
+	      default  the  command  relies on the external "apropos" utility,
+	      which can be customized by altering value	 of  the  'aproposprg'
+	      option.
+
+						:autocmd
+
+       :au[tocmd] {event} {pat} {cmd}
+	      register autocommand for the {event}, which can be:
+		- DirEnter - performed on entering a directory
+	      Event name is case insensitive.
+
+	      {pat}  is	 a  comma-separated  list  of modified globs patterns,
+	      which can contain tilde or environment variables.	 All paths use
+	      slash  ('/') as directory separator.  The pattern can start with
+	      a '!', which negates it.	Patterns that do not  contain  slashes
+	      are  matched  against the last item of the path only (e.g. "dir"
+	      in "/path/dir").	Literal comma can be entered by	 doubling  it.
+	      Two modifications to globs matching are as follows:
+		-  *  - never matches a slash (i.e., can signify single direc-
+	      tory level)
+		- ** - matches any character (i.e., can match  path  of	 arbi-
+	      trary depth)
+
+	      {cmd} is a :command or several of them separated with '|'.
+
+	      Examples of patterns:
+		- conf.d      - matches conf.d directory anywhere
+		- *.d	      - matches directories ending with ".d" anywhere
+		- **.git      - matches something.git, but not .git anywhere
+		- **/.git/**  - matches /path/.git/objects, but not /path/.git
+		-  **/.git/**/ - matches /path/.git/ only (because of trailing
+	      slash)
+		-  /etc/*	-  matches  /etc/conf.d/,  /etc/X11,  but  not
+	      /etc/X11/fs
+		- /etc/**/*.d - matches /etc/conf.d, /etc/X11/conf.d, etc.
+		- /etc/**/*   - matches /etc/ itself and any file below it
+		- /etc/**/**  - matches /etc/ itself and any file below it
+
+       :au[tocmd] [{event}] [{pat}]
+	      list  those autocommands that match given event-pattern combina-
+	      tion.
+	      {event} and {pat} can be omitted to list all  autocommands.   To
+	      list  any autocommands for specific pattern one can use * place-
+	      holder in place of {event}.
+
+       :au[tocmd]! [{event}] [{pat}]
+	      remove autocommands that match given event-pattern  combination.
+	      Syntax is the same as for listing above.
+
+       :apropos
+	      repeat last :apropos command.
+
+						:bmark
+
+       :bmark tag1 [tag2 [tag3...]]
+	      bookmark current directory with specified tags.
+
+       :bmark! path tag1 [tag2 [tag3...]]
+	      same  as :bmark, but allows bookmarking specific path instead of
+	      current directory.  This is for use in vifmrc and for  bookmark-
+	      ing files.
+
+	      Path  can contain macros that expand to single path (%c, %C, %d,
+	      %D) or those that can expand to multiple paths, but contain only
+	      one  (%f, %F, %rx).  The latter is done for convenience on using
+	      the command interactively.  Complex macros that  include	spaces
+	      (e.g. "%c:gs/ /_") should be escaped.
+
+						:bmarks
+
+       :bmarks
+	      display all bookmarks in a menu.
+
+       :bmarks [tag1 [tag2...]]
+	      display  menu  of	 bookmarks  that  include all of the specified
+	      tags.
+
+						:bmgo
+
+       :bmgo [tag1 [tag2...]]
+	      when there are more than one match acts  exactly	like  :bmarks,
+	      otherwise	 navigates  to	single match immediately (and fails if
+	      there is no match).
+
+						:cabbrev
+
+       :ca[bbrev]
+	      display menu of command-line mode abbreviations.
+
+       :ca[bbrev] lhs-prefix
+	      display command-line mode	 abbreviations	which  left-hand  side
+	      starts with specified prefix.
+
+       :ca[bbrev] lhs rhs
+	      register	new  or	 overwrites existing abbreviation for command-
+	      line mode.  rhs can contain spaces  and  any  special  sequences
+	      accepted	in  rhs	 of  mappings  (see "Mappings" section below).
+	      Abbreviations are expanded non-recursively.
+
+						:cnoreabbrev
+
+       :cnorea[bbrev]
+	      display menu of command-line mode abbreviations.
+
+       :cnorea[bbrev] lhs-prefix
+	      display command-line mode	 abbreviations	which  left-hand  side
+	      starts with specified prefix.
+
+       :cnorea[bbrev] lhs rhs
+	      same  as :cabbrev, but mappings in rhs are ignored during expan-
+	      sion.
+
+						:cd
+
+       :cd or :cd ~ or :cd $HOME
+	      change to home directory.
+
+       :cd -  go to the last visited directory.
+
+       :cd ~/dir
+	      change directory to ~/dir.
+
+       :cd /curr/dir /other/dir
+	      change directory of the current pane to /curr/dir and  directory
+	      of  the other pane to /other/dir.	 Relative paths are assumed to
+	      be relative to directory of current view.	 Command won't fail if
+	      one  of directories is invalid.  All forms of the command accept
+	      macros.
+
+       :cd! /dir
+	      same as :cd /dir /dir.
+
+						:change
+
+       :c[hange]
+	      create a menu window to alter a files properties.
+
+						:chmod
+
+       :[range]chmod
+	      display file attributes (permission on *nix  and	properties  on
+	      Windows) change dialog.
+
+       :[range]chmod[!] arg...
+	      only for *nix
+	      change permissions for files.  See `man 1 chmod` for arg format.
+	      "!" means set permissions recursively.
+
+						:chown
+
+       :[range]chown
+	      only for *nix
+	      same as co key in normal mode.
+
+       :[range]chown [user][:][group]
+	      only for *nix
+	      change owner and/or group of  files.   Operates  on  directories
+	      recursively.
+
+						:clone
+
+       :[range]clone[!?]
+	      clones  files  in current directory.  With "?" vifm will open vi
+	      to edit file names.  "!" forces overwrite.  Macros are expanded.
+
+       :[range]clone[!] path
+	      clones files to directory specified with the path	 (absolute  or
+	      relative	to  current directory).	 "!" forces overwrite.	Macros
+	      are expanded.
+
+       :[range]clone[!] name1 name2...
+	      clones files in current directory giving each next clone a  cor-
+	      responding  name	from the argument list.	 "!" forces overwrite.
+	      Macros are expanded.
+
+						:colorscheme
+
+       :colo[rscheme]?
+	      print current color scheme name on the status bar.
+
+       :colo[rscheme]
+	      display a menu with a list of available color schemes.  You  can
+	      choose  primary  color  scheme  here.  It is used for view if no
+	      directory specific colorscheme fits  current  path.   It's  also
+	      used  to	set  border  color  (except view titles) and colors in
+	      menus and dialogs.
+
+       :colo[rscheme] color_scheme_name
+	      change primary color scheme to color_scheme_name.	  In  case  of
+	      errors  (e.g.  some colors are not supported by terminal) either
+	      nothing is changed or color scheme is reset to builtin colors to
+	      ensure that TUI is left in a usable state.
+
+       :colo[rscheme] color_scheme_name directory
+	      associate	 directory with the color scheme.  The directory argu-
+	      ment can be either absolute or relative path  when  :colorscheme
+	      command  is  executed from command line, but mandatory should be
+	      an absolute path when the command is executed in scripts	loaded
+	      at startup (until vifm is completely loaded).
+
+						:comclear
+
+       :comc[lear]
+	      remove all user defined commands.
+
+						:command
+
+       :com[mand]
+	      display a menu of user commands.
+
+       :com[mand] beginning
+	      display user defined commands that start with the beginning.
+
+       :com[mand] name action
+	      set a new user command.
+	      Trying  to  use  a reserved command name will result in an error
+	      message.
+	      Use :com[mand]! to overwrite a previously set command.
+	      Unlike vim user commands do not have to  start  with  a  capital
+	      letter.	User commands are run in a shell by default.  To run a
+	      command in the background you must set it as a  background  com-
+	      mand with & at the end of the commands action (:com rm rm %f &).
+	      Command name cannot contain numbers or special  symbols  (except
+	      '?' and '!').
+
+       :com[mand] name /pattern
+	      set search pattern.
+
+       :com[mand] name =pattern
+	      set local filter value.
+
+       :com[mand] name filter{:filter args}
+	      set  file	 name  filter  (see :filter command description).  For
+	      example:
+
+		" display only audio files
+		:command onlyaudio filter/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
+		" display everything except audio files
+		:command noaudio filter!/.+.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
+
+       :com[mand] cmd :commands
+	      set kind of an alias for internal command	 (like	in  a  shell).
+	      Passes  range  given  to alias to an aliased command, so running
+	      :%cp after
+		:command cp :copy %a
+	      equals
+		:%copy
+
+						:compare
+
+       :compare [byname |  bysize  |  bycontents  |  listall  |	 listunique  |
+       listdups | ofboth | ofone | groupids | grouppaths | skipempty]...
+	      compare  files in one or two views according the arguments.  The
+	      default is "bycontents listall ofboth grouppaths".  See "Compare
+	      views"  section below for details.  Tree structure is incompati-
+	      ble with alternative representations, so values of 'lsview'  and
+	      'millerview' options are ignored.
+
+						:copen
+
+       :cope[n]
+	      opens menu with contents of the last displayed menu with naviga-
+	      tion to files by default, if any.
+
+						:copy
+
+       :[range]co[py][!?][ &]
+	      copy files to directory of other view.   With  "?"  prompts  for
+	      destination file names in an editor.  "!" forces overwrite.
+
+       :[range]co[py][!] path[ &]
+	      copy  files  to  directory  specified with the path (absolute or
+	      relative to directory of other view).  "!" forces overwrite.
+
+       :[range]co[py][!] name1 name2...[ &]
+	      copy files to directory of other view giving each	 next  file  a
+	      corresponding  name  from	 the  argument list.  "!" forces over-
+	      write.
+
+						:cquit
+
+       :cq[uit][!]
+	      same  as	:quit,	but  also  aborts   directory	choosing   via
+	      --choose-dir  (empties  output  file)  and returns non-zero exit
+	      code.
+
+						:cunabbrev
+
+       :cuna[bbrev] lhs
+	      unregister command-line mode abbreviation by its lhs.
+
+       :cuna[bbrev] rhs
+	      unregister command-line mode abbreviation by its	rhs,  so  that
+	      abbreviation could be removed even after expansion.
+
+						:delbmarks
+
+       :delbmarks
+	      remove bookmarks from current directory.
+
+       :delbmarks tag1 [tag2 [tag3...]]
+	      remove set of bookmarks that include all of the specified tags.
+
+       :delbmarks!
+	      remove all bookmarks.
+
+       :delbmarks! path1 [path2 [path3...]]
+	      remove bookmarks of listed paths.
+
+						:delcommand
+
+       :delc[ommand] user_command
+	      remove user defined command named user_command.
+
+						:delete
+
+       :[range]d[elete][!][ &]
+	      delete  selected	file  or  files.   "!"	means complete removal
+	      (omitting trash).
+
+       :[range]d[elete][!] [reg] [count][ &]
+	      delete selected or [count] files to the reg register.  "!" means
+	      complete removal (omitting trash).
+
+						:delmarks
+
+       :delm[arks]!
+	      delete all marks.
+
+       :delm[arks] marks ...
+	      delete  specified	 marks,	 each  argument is treated as a set of
+	      marks.
+
+						:display
+
+       :di[splay]
+	      display menu with registers content.
+
+       :di[splay] list ...
+	      display the contents of the numbered and	named  registers  that
+	      are  mentioned in list (for example "az to display "", "a and "z
+	      content).
+
+						:dirs
+
+       :dirs  display directory stack.
+
+						:echo
+
+       :ec[ho] [<expr>...]
+	      evaluate each argument as an expression and  output  them	 sepa-
+	      rated  with  a space.  See help on :let command for a definition
+	      of <expr>.
+
+						:edit
+
+       :[range]e[dit] [file...]
+	      open selected or passed file(s) in editor.  Macros and  environ-
+	      ment variables are expanded.
+
+						:else
+
+       :el[se]
+	      execute  commands until next matching :endif if all other condi-
+	      tions didn't match.  See also help on :if and :endif commands.
+
+						:elseif
+
+       :elsei[f] {expr1}
+	      execute commands until next matching :elseif, :else or :endif if
+	      conditions  of  previous :if and :elseif branches were evaluated
+	      to zero.	See also help on :if and :endif commands.
+
+						:empty
+
+       :empty permanently remove  files	 from  all  existing  non-empty	 trash
+	      directories (see "Trash directory" section below).  Trash direc-
+	      tories which are specified via %r and/or	%u  also  get  deleted
+	      completely.   Also remove all operations from undolist that have
+	      no sense after :empty and remove all records about files located
+	      inside  directories from all registers.  Removal is performed as
+	      background task with undetermined amount	of  work  and  can  be
+	      checked via :jobs menu.
+
+						:endif
+
+       :en[dif]
+	      end conditional block.  See also help on :if and :else commands.
+
+						:execute
+
+       :exe[cute] [<expr>...]
+	      evaluate	each  argument as an expression and join results sepa-
+	      rated by a space to get a single string which is	then  executed
+	      as a command-line command.  See help on :let command for a defi-
+	      nition of <expr>.
+
+						:exit
+
+       :exi[t][!]
+	      same as :quit.
+
+						:file
+
+       :f[ile][ &]
+	      display menu of programs set for the file type  of  the  current
+	      file.  " &" forces running associated program in background.
+
+       :f[ile] arg[ &]
+	      run associated command that begins with the arg skipping opening
+	      menu.  " &" forces running associated program in background.
+
+						:filetype
+
+       :filet[ype] pattern-list [{descr}]def_prog[ &],[{descr}]prog2[ &],...
+	      associate given program list to each of the  patterns.   Associ-
+	      ated  program  (command) is used by handlers of l and Enter keys
+	      (and also in the :file menu).  If you need to insert comma  into
+	      command  just  double it (",,").	Space followed by an ampersand
+	      as two last characters of a command means running of the command
+	      in  the  background.   Optional description can be given to each
+	      command to ease understanding of what command  will  do  in  the
+	      :file menu.  Vifm will try the rest of the programs for an asso-
+	      ciation when  the	 default  isn't	 found.	  When	program	 entry
+	      doesn't  contain	any  of	 vifm  macros, name of current file is
+	      appended as if program entry ended with %c macro on *nix and %"c
+	      on  Windows.   On	 Windows path to executables containing spaces
+	      can (and should be for correct work with such paths)  be	double
+	      quoted.	See  "Patterns"	 section below for pattern definition.
+	      See also "Automatic FUSE mounts" section below.  Example for zip
+	      archives and several actions:
+
+		filetype *.zip,*.jar,*.war,*.ear
+		       \ {Mount with fuse-zip}
+		       \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
+		       \ {View contents}
+		       \ zip -sf %c | less,
+		       \ {Extract here}
+		       \ tar -xf %c,
+
+	      Note  that  on  OS X when `open` is used to call an app, vifm is
+	      unable to check whether that app is actually available.	So  if
+	      automatic	 skipping  of programs that aren't there is desirable,
+	      `open` should be replaced with an actual command.
+
+       :filet[ype] filename
+	      list (in menu mode) currently  registered	 patterns  that	 match
+	      specified file name.  Same as ":filextype filename".
+
+						:filextype
+
+       :filex[type] pattern-list [{ description }] def_program,program2,...
+	      same as :filetype, but this command is ignored if not running in
+	      X.  In X :filextype is equal to :filetype.  See "Patterns"  sec-
+	      tion  below  for	pattern	 definition.  See also "Automatic FUSE
+	      mounts" section below.
+
+	      For example, consider the following settings  (the  order	 might
+	      seem strange, but it's for the demonstration purpose):
+
+		filetype *.html,*.htm
+			\ {View in lynx}
+			\ lynx
+		filextype *.html,*.htm
+			\ {Open with dwb}
+			\ dwb %f %i &,
+		filetype *.html,*.htm
+			\ {View in links}
+			\ links
+		filextype *.html,*.htm
+			\ {Open with firefox}
+			\ firefox %f &,
+			\ {Open with uzbl}
+			\ uzbl-browser %f %i &,
+
+	      If  you're using vifm inside a terminal emulator that is running
+	      in graphical environment (when X is used on *nix; always on Win-
+	      dows), vifm attempts to run application in this order:
+
+	      1. lynx
+	      2. dwb
+	      3. links
+	      4. firefox
+	      5. uzbl
+
+	      If  there is no graphical environment (checked presence of $DIS-
+	      PLAY environment variable on *nix; never	happens	 on  Windows),
+	      the list will look like:
+
+	      1. lynx
+	      2. links
+
+	      Just as if all :filextype commands were not there.
+
+	      The  purpose of such differentiation is to allow comfortable use
+	      of vifm with same settings in desktop environment/through remote
+	      connection (SSH)/in native console.
+
+	      Note  that  on OS X $DISPLAY isn't defined unless you define it,
+	      so :filextype should be used only if you set  $DISPLAY  in  some
+	      way.
+
+       :filext[ype] filename
+	      list  (in	 menu  mode)  currently registered patterns that match
+	      specified file name.  Same as ":filetype filename".
+
+						:fileviewer
+
+       :filev[iewer] pattern-list command1,command2,...
+	      register specified list of commands as viewers for each  of  the
+	      patterns.	 Viewer is a command which output is captured and dis-
+	      played in one of the panes of vifm after pressing "e" or running
+	      :view  command.	When  the  command doesn't contain any of vifm
+	      macros, name of current file is appended	as  if	command	 ended
+	      with  %c	macro.	Comma escaping and missing commands processing
+	      rules as for :filetype apply to this  command.   See  "Patterns"
+	      section below for pattern definition.
+
+	      Example for zip archives:
+
+		fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c, echo "No zip to preview:"
+
+       :filev[iewer] filename
+	      list  (in	 menu  mode)  currently registered patterns that match
+	      specified filename.
+
+						:filter
+
+       :filter[!] {pattern}
+	      filter files matching the pattern	 out  of  directory  listings.
+	      '!'  controls  state  of	filter inversion after updating filter
+	      value (see also 'cpoptions'  description).   Filter  is  matched
+	      case sensitively on *nix and case insensitively on Windows.  See
+	      "File Filters" and "Patterns" sections.
+
+	      Example:
+
+		" filter all files ending in .o from the filelist.
+		:filter /.o$/
+
+
+       :filter[!] {empty-pattern}
+	      same as above, but use last search pattern as pattern value.
+
+	      Example:
+
+		:filter //I
+
+
+       :filter
+	      reset filter (set it to an empty string) and show all files.
+
+       :filter!
+	      same as :invert.
+
+       :filter?
+	      show information on local, name and auto filters.
+
+						:find
+
+       :[range]fin[d] pattern
+	      display results of find command in  the  menu.   Searches	 among
+	      selected	files if any.  Accepts macros.	By default the command
+	      relies on the external "find" utility, which can	be  customized
+	      by altering value of the 'findprg' option.
+
+       :[range]fin[d] -opt...
+	      same  as	:find  above,  but  user  defines  all find arguments.
+	      Searches among selected files if any.
+
+       :[range]fin[d] path -opt...
+	      same as :find  above,  but  user	defines	 all  find  arguments.
+	      Ignores selection and range.
+
+       :[range]fin[d]
+	      repeat last :find command.
+
+						:finish
+
+       :fini[sh]
+	      stop  sourcing a script. Can only be used in a vifm script file.
+	      This is a quick way to skip the rest of the file.
+
+						:goto
+
+       :go[to]
+	      change directory if necessary and put specified path  under  the
+	      cursor.	The path should be existing non-root path.  Macros and
+	      environment variables are expanded.
+
+						:grep
+
+       :[range]gr[ep][!] pattern
+	      will show results of grep command	 in  the  menu.	  Add  "!"  to
+	      request  inversion  of  search (look for lines that do not match
+	      pattern).	 Searches among selected files if  any	and  no	 range
+	      given.  Ignores binary files by default.	By default the command
+	      relies on the external "grep" utility, which can	be  customized
+	      by altering value of the 'grepprg' option.
+
+       :[range]gr[ep][!] -opt...
+	      same  as :grep above, but user defines all grep arguments, which
+	      are not escaped.	Searches among selected files if any.
+
+       :[range]gr[ep][!]
+	      repeats last :grep command.  "!" of this command inverts "!"  in
+	      repeated command.
+
+						:help
+
+       :h[elp]
+	      show the help file.
+
+       :h[elp] argument
+	      is the same as using ':h argument' in vim.  Use vifm-<something>
+	      to get help on vifm (tab completion works).  This	 form  of  the
+	      command doesn't work when 'vimhelp' option is off.
+
+						:highlight
+
+       :hi[ghlight]
+	      display  information  about  all	highlight groups active at the
+	      moment.
+
+       :hi[ghlight] clear
+	      reset all highlighting to builtin defaults and removed all file-
+	      name-specific rules.
+
+       :hi[ghlight] clear ( {pat1,pat2,...} | /regexp/ )
+	      removes specified rule.
+
+       :hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/ )
+	      display  information  on given highlight group or file name pat-
+	      tern of color scheme used in the active view.
+
+       :hi[ghlight]  (	group-name  |	{pat1,pat2,...}	  |   /regexp/[iI]   )
+       cterm=style | ctermfg=color | ctermbg=color
+	      set   style  (cterm),  foreground	 (ctermfg)  or/and  background
+	      (ctermbg) parameters of highlight group or file name pattern for
+	      color scheme used in the active view.
+
+       All style values as well as color names are case insensitive.
+
+       Available style values (some of them can be combined):
+	- bold
+	- underline
+	- reverse or inverse
+	- standout
+	- italic (on unsupported systems becomes reverse)
+	- none
+
+       Available group-name values:
+	- Win - color of all windows (views, dialogs, menus) and default color
+       for their content (e.g. regular files in views)
+	- AuxWin - color of auxiliary areas of windows
+	- Border - color of vertical parts of the border
+	- TabLine - tab line color
+	- TabLineSel - color of the tip of selected tab
+	- TopLineSel - top line color of the current pane
+	- TopLine - top line color of the other pane
+	- CmdLine - the command line/status bar color
+	- ErrorMsg - color of error messages in the status bar
+	- StatusLine - color of the line above the status bar
+	- JobLine - color of job line that appears above the status line
+	- WildMenu - color of the wild menu items
+	- SuggestBox - color of key suggestion box
+	- CurrLine - line at cursor position in active view
+	- OtherLine - line at cursor position in inactive view
+	- Selected - color of selected files
+	- Directory - color of directories
+	- Link - color of symbolic links in the views
+	- BrokenLink - color of broken symbolic links
+	- Socket - color of sockets
+	- Device - color of block and character devices
+	- Executable - color of executable files
+	- Fifo - color of fifo pipes
+	- CmpMismatch - color of mismatched files in  side-by-side  comparison
+       by path
+	- User1..User9 - 9 colors which can be used via %* 'statusline' macro
+
+       Available colors:
+	- -1 or default or none - default or transparent
+	- black	  and lightblack
+	- red	  and lightred
+	- green	  and lightgreen
+	- yellow  and lightyellow
+	- blue	  and lightblue
+	- magenta and lightmagenta
+	- cyan	  and lightcyan
+	- white	  and lightwhite
+	- 0-255 - corresponding colors from 256-color palette
+
+       Light  versions	of  colors are regular colors with bold attribute set.
+       So order of arguments of :highlight command is important and it's  bet-
+       ter  to	put  "cterm" in front of others to prevent it from overwriting
+       attributes set by "ctermfg" or "ctermbg" arguments.
+
+       For convenience of color scheme authors xterm-like names for 256	 color
+       palette	  is	also   supported.    The   mapping   is	  taken	  from
+       http://vim.wikia.com/wiki/Xterm256_color_names_for_console_Vim	Dupli-
+       cated  entries were altered by adding an underscore followed by numeri-
+       cal suffix.
+
+	 0 Black		  86 Aquamarine1	   172 Orange3
+	 1 Red			  87 DarkSlateGray2	   173 LightSalmon3_2
+	 2 Green		  88 DarkRed_2		   174 LightPink3
+	 3 Yellow		  89 DeepPink4_2	   175 Pink3
+	 4 Blue			  90 DarkMagenta	   176 Plum3
+	 5 Magenta		  91 DarkMagenta_2	   177 Violet
+	 6 Cyan			  92 DarkViolet		   178 Gold3_2
+	 7 White		  93 Purple		   179 LightGoldenrod3
+	 8 LightBlack		  94 Orange4_2		   180 Tan
+	 9 LightRed		  95 LightPink4		   181 MistyRose3
+	10 LightGreen		  96 Plum4		   182 Thistle3
+	11 LightYellow		  97 MediumPurple3	   183 Plum2
+	12 LightBlue		  98 MediumPurple3_2	   184 Yellow3_2
+	13 LightMagenta		  99 SlateBlue1		   185 Khaki3
+	14 LightCyan		 100 Yellow4		   186 LightGoldenrod2
+	15 LightWhite		 101 Wheat4		   187 LightYellow3
+	16 Grey0		 102 Grey53		   188 Grey84
+	17 NavyBlue		 103 LightSlateGrey	   189 LightSteelBlue1
+	18 DarkBlue		 104 MediumPurple	   190 Yellow2
+	19 Blue3		 105 LightSlateBlue	   191 DarkOliveGreen1
+	20 Blue3_2		  106  Yellow4_2	      192  DarkOliveG-
+       reen1_2
+	21 Blue1		 107 DarkOliveGreen3	   193 DarkSeaGreen1_2
+	22 DarkGreen		 108 DarkSeaGreen	   194 Honeydew2
+	23 DeepSkyBlue4		 109 LightSkyBlue3	   195 LightCyan1
+	24 DeepSkyBlue4_2	 110 LightSkyBlue3_2	   196 Red1
+	25 DeepSkyBlue4_3	 111 SkyBlue2		   197 DeepPink2
+	26 DodgerBlue3		 112 Chartreuse2_2	   198 DeepPink1
+	27 DodgerBlue2		 113 DarkOliveGreen3_2	   199 DeepPink1_2
+	28 Green4		 114 PaleGreen3_2	   200 Magenta2_2
+	29 SpringGreen4		 115 DarkSeaGreen3	   201 Magenta1
+	30 Turquoise4		 116 DarkSlateGray3	   202 OrangeRed1
+	31 DeepSkyBlue3		 117 SkyBlue1		   203 IndianRed1
+	32 DeepSkyBlue3_2	 118 Chartreuse1	   204 IndianRed1_2
+	33 DodgerBlue1		 119 LightGreen_2	   205 HotPink
+	34 Green3		 120 LightGreen_3	   206 HotPink_2
+	35 SpringGreen3		 121 PaleGreen1		   207 MediumOrchid1_2
+	36 DarkCyan		 122 Aquamarine1_2	   208 DarkOrange
+	37 LightSeaGreen	 123 DarkSlateGray1	   209 Salmon1
+	38 DeepSkyBlue2		 124 Red3		   210 LightCoral
+	39 DeepSkyBlue1		 125 DeepPink4_3	   211 PaleVioletRed1
+	40 Green3_2		 126 MediumVioletRed	   212 Orchid2
+	41 SpringGreen3_2	 127 Magenta3		   213 Orchid1
+	42 SpringGreen2		 128 DarkViolet_2	   214 Orange1
+	43 Cyan3		 129 Purple_2		   215 SandyBrown
+	44 DarkTurquoise	 130 DarkOrange3	   216 LightSalmon1
+	45 Turquoise2		 131 IndianRed		   217 LightPink1
+	46 Green1		 132 HotPink3		   218 Pink1
+	47 SpringGreen2_2	 133 MediumOrchid3	   219 Plum1
+	48 SpringGreen1		 134 MediumOrchid	   220 Gold1
+	49  MediumSpringGreen	   135	MediumPurple2	      221 LightGolden-
+       rod2_2
+	50 Cyan2		 136  DarkGoldenrod	     222  LightGolden-
+       rod2_3
+	51 Cyan1		 137 LightSalmon3	   223 NavajoWhite1
+	52 DarkRed		 138 RosyBrown		   224 MistyRose1
+	53 DeepPink4		 139 Grey63		   225 Thistle1
+	54 Purple4		 140 MediumPurple2_2	   226 Yellow1
+	55 Purple4_2		 141 MediumPurple1	   227 LightGoldenrod1
+	56 Purple3		 142 Gold3		   228 Khaki1
+	57 BlueViolet		 143 DarkKhaki		   229 Wheat1
+	58 Orange4		 144 NavajoWhite3	   230 Cornsilk1
+	59 Grey37		 145 Grey69		   231 Grey100
+	60 MediumPurple4	 146 LightSteelBlue3	   232 Grey3
+	61 SlateBlue3		 147 LightSteelBlue	   233 Grey7
+	62 SlateBlue3_2		 148 Yellow3		   234 Grey11
+	63 RoyalBlue1		 149 DarkOliveGreen3_3	   235 Grey15
+	64 Chartreuse4		 150 DarkSeaGreen3_2	   236 Grey19
+	65 DarkSeaGreen4	 151 DarkSeaGreen2	   237 Grey23
+	66 PaleTurquoise4	 152 LightCyan3		   238 Grey27
+	67 SteelBlue		 153 LightSkyBlue1	   239 Grey30
+	68 SteelBlue3		 154 GreenYellow	   240 Grey35
+	69 CornflowerBlue	 155 DarkOliveGreen2	   241 Grey39
+	70 Chartreuse3		 156 PaleGreen1_2	   242 Grey42
+	71 DarkSeaGreen4_2	 157 DarkSeaGreen2_2	   243 Grey46
+	72 CadetBlue		 158 DarkSeaGreen1	   244 Grey50
+	73 CadetBlue_2		 159 PaleTurquoise1	   245 Grey54
+	74 SkyBlue3		 160 Red3_2		   246 Grey58
+	75 SteelBlue1		 161 DeepPink3		   247 Grey62
+	76 Chartreuse3_2	 162 DeepPink3_2	   248 Grey66
+	77 PaleGreen3		 163 Magenta3_2		   249 Grey70
+	78 SeaGreen3		 164 Magenta3_3		   250 Grey74
+	79 Aquamarine3		 165 Magenta2		   251 Grey78
+	80 MediumTurquoise	 166 DarkOrange3_2	   252 Grey82
+	81 SteelBlue1_2		 167 IndianRed_2	   253 Grey85
+	82 Chartreuse2		 168 HotPink3_2		   254 Grey89
+	83 SeaGreen2		 169 HotPink2		   255 Grey93
+	84 SeaGreen1		 170 Orchid
+	85 SeaGreen1_2		 171 MediumOrchid1
+
+       There  are  two	colors	(foreground  and background) and only one bold
+       attribute.   Thus  single  bold	attribute  affects  both  colors  when
+       "reverse"  attribute  is used in vifm run inside terminal emulator.  At
+       the same time linux native console can handle  boldness	of  foreground
+       and  background colors independently, but for consistency with terminal
+       emulators this is available only implicitly by using light versions  of
+       colors.	This behaviour might be changed in the future.
+
+       Although	 vifm  supports 256 colors in a sense they are supported by UI
+       drawing library, whether you will be able to use	 all  of  them	highly
+       depends	on your terminal.  To set up terminal properly, make sure that
+       $TERM in the environment you run vifm is set to name of 256-color  ter-
+       minal   (on   *nixes  it	 can  also  be	set  via  X  resources),  e.g.
+       xterm-256color.	One can find list of available terminal names by list-
+       ing  /usr/lib/terminfo/.	  Number  of colors supported by terminal with
+       current settings can be checked via "tput colors" command.
+
+       Here is the hierarchy of highlight groups, which you need to  know  for
+       using transparency:
+	 JobLine
+	 SuggestBox
+	 StatusLine
+	   WildMenu
+	   User1..User9
+	 Border
+	 CmdLine
+	   ErrorMsg
+	 Win
+	   AuxWin
+	     File name specific highlights
+	       Directory
+	       Link
+	       BrokenLink
+	       Socket
+	       Device
+	       Fifo
+	       Executable
+		 Selected
+		   CurrLine
+		   OtherLine
+	 TopLine
+	   TopLineSel
+	 TabLine
+	   TabLineSel
+
+       "none"  means  default terminal color for highlight groups at the first
+       level of the hierarchy and transparency for all others.
+
+       Here file name specific highlights mean those configured via globs ({})
+       or  regular  expressions (//).  At most one of them is applied per file
+       entry, namely the first that matches file name, hence order  of	:high-
+       light commands might be important in certain cases.
+
+						:history
+
+       :his[tory]
+	      creates a pop-up menu of directories visited.
+
+       :his[tory] x
+	      x can be:
+	      d[ir]	or . show directory history.
+	      c[md]	or : show command line history.
+	      s[earch]	or / show search history and search forward on l key.
+	      f[search] or / show search history and search forward on l key.
+	      b[search] or ? show search history and search backward on l key.
+	      i[nput]	or @ show prompt history (e.g. on one file renaming).
+	      fi[lter]	 or  = show filter history (see description of the "="
+	      normal mode command).
+
+						:histnext
+
+       :histnext
+	      same as <c-i>.  The main use case for this command  is  to  work
+	      around  the  common pain point of <tab> and <c-i> being the same
+	      ASCII character: one could alter the terminal emulator  settings
+	      to  emit,	 for example, the `F1` keycode when Ctrl-I is pressed,
+	      then `:noremap <f1> :histnext<cr>` in vifm, add "t" flag to  the
+	      'cpoptions',  and	 thus  have  both  <c-i>  and <tab> working as
+	      expected.
+
+						:histprev
+
+       :histprev
+	      same as <c-o>.
+
+						:if
+
+       :if {expr1}
+	      starts conditional block.	  Commands  are	 executed  until  next
+	      matching	:elseif,  :else or :endif command if {expr1} evaluates
+	      to non-zero, otherwise they are ignored.	See also help on :else
+	      and :endif commands.
+
+	      Example:
+
+		if $TERM == 'screen.linux'
+		    highlight CurrLine ctermfg=lightwhite ctermbg=lightblack
+		elseif $TERM == 'tmux'
+		    highlight CurrLine cterm=reverse ctermfg=black ctermbg=white
+		else
+		    highlight CurrLine cterm=bold,reverse ctermfg=black ctermbg=white
+		endif
+
+						:invert
+
+       :invert [f]
+	      invert file name filter.
+
+       :invert? [f]
+	      show current filter state.
+
+       :invert s
+	      invert selection.
+
+       :invert o
+	      invert sorting order of the primary sorting key.
+
+       :invert? o
+	      show sorting order of the primary sorting key.
+
+						:jobs
+
+       :jobs  shows menu of current backgrounded processes.
+
+						:let
+
+       :let $ENV_VAR = <expr>
+	      sets  environment	 variable.  Warning: setting environment vari-
+	      able to an empty string on Windows removes it.
+
+       :let $ENV_VAR .= <expr>
+	      append value to environment variable.
+
+       :let &[l:|g:]opt = <expr>
+	      sets option value.
+
+       :let &[l:|g:]opt .= <expr>
+	      append value to string option.
+
+       :let &[l:|g:]opt += <expr>
+	      increasing option value, adding sub-values.
+
+       :let &[l:|g:]opt -= <expr>
+	      decreasing option value, removing sub-values.
+
+       Where <expr> could be a single-quoted string, double-quoted string,  an
+       environment  variable,  function call or a concatanation of any of them
+       in any order using the '.' operator.  Any whitespace is ignored.
+
+						:locate
+
+       :locate filename
+	      use "locate" command to create a menu of filenames.  Selecting a
+	      file  from the menu will reload the current file list in vifm to
+	      show the selected file.  By default the command  relies  on  the
+	      external	"locate"  utility  (it's  assumed that its database is
+	      already built), which can be customized by altering value of the
+	      'locateprg' option.
+
+       :locate
+	      repeats last :locate command.
+
+						:ls
+
+       :ls    lists windows of active terminal multiplexer (only when terminal
+	      multiplexer is used).  This is achieved by issuing  proper  com-
+	      mand  for active terminal multiplexer, thus the list is not han-
+	      dled by vifm.
+
+						:lstrash
+
+       :lstrash
+	      displays a menu with list of files in trash.   Each  element  of
+	      the  list	 is original path of a deleted file, thus the list can
+	      contain duplicates.
+
+						:mark
+
+       :[range]ma[rk][?] x [/full/path] [filename]
+	      Set mark x (a-zA-Z0-9) at /full/path and filename.   By  default
+	      current  directory  is being used.  If no filename was given and
+	      /full/path is current directory then last	 file  in  [range]  is
+	      used.  Using of macros is allowed.  Question mark will stop com-
+	      mand from overwriting existing marks.
+
+						:marks
+
+       :marks create a pop-up menu of marks.
+
+       :marks list ...
+	      display the contents of the marks that are mentioned in list.
+
+						:media
+
+       :media only for *nix
+	      display media management menu.  See also 'mediaprg' option.
+
+						:messages
+
+       :mes[sages]
+	      shows previously given messages (up to 50).
+
+						:mkdir
+
+       :[line]mkdir[!] dir ...
+	      create directories at specified paths.  The [line] can  be  used
+	      to  pick node in a tree-view.  "!" means make parent directories
+	      as needed.  Macros are expanded.
+
+						:move
+
+       :[range]m[ove][!?][ &]
+	      move files to directory of other view.   With  "?"  prompts  for
+	      destination file names in an editor.  "!" forces overwrite.
+
+       :[range]m[ove][!] path[ &]
+	      move  files  to  directory  specified with the path (absolute or
+	      relative to directory of other view).  "!" forces overwrite.
+
+       :[range]m[ove][!] name1 name2...[ &]
+	      move files to directory of other view giving each	 next  file  a
+	      corresponding  name  from	 the  argument list.  "!" forces over-
+	      write.
+
+						:nohlsearch
+
+       :noh[lsearch]
+	      clear selection in current pane.
+
+						:normal
+
+       :norm[al][!] commands
+	      execute normal mode commands.  If "!" is used, user defined map-
+	      pings  are  ignored.   Unfinished	 last command is aborted as if
+	      <esc> or <c-c> was typed.	 A ":" should be  completed  as	 well.
+	      Commands	can't  start  with  a space, so put a count of 1 (one)
+	      before it.
+
+						:only
+
+       :on[ly]
+	      switch to a one window view.
+
+						:popd
+
+       :popd  remove pane directories from stack.
+
+						:pushd
+
+       :pushd[!] /curr/dir [/other/dir]
+	      add pane directories to stack and	 process  arguments  like  :cd
+	      command.
+
+       :pushd exchange the top two items of the directory stack.
+
+						:put
+
+       :[line]pu[t][!] [reg] [ &]
+	      puts  files  from specified register (" by default) into current
+	      directory.  The [line] can be used to pick node in a  tree-view.
+	      "!"  moves  files	 "!"  moves files from their original location
+	      instead of copying them.	During this operation no  confirmation
+	      dialogs will be shown, all checks are performed beforehand.
+
+						:pwd
+
+       :pw[d] show the present working directory.
+
+						:qall
+
+       :qa[ll][!]
+	      exit  vifm (add ! to skip saving changes and checking for active
+	      backgrounded commands).
+
+						:quit
+
+       :q[uit][!]
+	      if there is more than one tab, close the current one,  otherwise
+	      exit  vifm (add ! to skip saving changes and checking for active
+	      backgrounded commands).
+
+						:redraw
+
+       :redr[aw]
+	      redraw the screen immediately.
+
+						:registers
+
+       :reg[isters]
+	      display menu with registers content.
+
+       :reg[isters] list ...
+	      display the contents of the numbered and	named  registers  that
+	      are  mentioned in list (for example "az to display "", "a and "z
+	      content).
+
+						:regular
+
+       :regular
+
+       switch to regular view leaving custom view.
+						       :rename
+
+       :[range]rename[!]
+	      rename files using vi to edit  names.  !	means  go  recursively
+	      through directories.
+
+       :[range]rename name1 name2...
+	      rename each of selected files to a corresponding name.
+
+						:restart
+
+       :restart
+	      free  a  lot  of	things	(histories,  commands,	etc.),	reread
+	      vifminfo and vifmrc files and run startup commands passed in the
+	      argument list, thus losing all unsaved changes (e.g. recent his-
+	      tory or keys mapped in current session).
+
+						:restore
+
+       :[range]restore
+	      restore file from trash directory, doesn't work outside  one  of
+	      trash directories.  See "Trash directory" section below.
+
+						:rlink
+
+       :[range]rlink[!?]
+	      create  relative	symbolic  links to files in directory of other
+	      view.  With "?" prompts for destination file names in an editor.
+	      "!" forces overwrite.
+
+       :[range]rlink[!] path
+	      create  relative	symbolic links of files in directory specified
+	      with the path (absolute or relative to directory of other view).
+	      "!" forces overwrite.
+
+       :[range]rlink[!] name1 name2...
+	      create  relative	symbolic  links of files in directory of other
+	      view giving each next link a corresponding name from  the	 argu-
+	      ment list.  "!" forces overwrite.
+
+						:screen
+
+       :screen
+	      toggle whether to use the terminal multiplexer or not.
+	      A	 terminal  multiplexer uses pseudo terminals to allow multiple
+	      windows to be used in the console or in a single xterm.	Start-
+	      ing  vifm	 from  terminal	 multiplexer  with appropriate support
+	      turned on will cause vifm to open	 a  new	 terminal  multiplexer
+	      window for each new file edited or program launched from vifm.
+	      This  requires  screen  version 3.9.9 or newer for the screen -X
+	      argument or tmux (1.8 version or newer is recommended).
+
+       :screen!
+	      enable integration with terminal multiplexers.
+
+       :screen?
+	      display  whether	integration  with  terminal  multiplexers   is
+	      enabled.
+
+       Note:  the  command  is called screen for historical reasons (when tmux
+       wasn't yet supported) and might be changed in future releases,  or  get
+       an alias.
+
+						:select
+
+       :[range]select
+	      select  files  in	 the  given range (current file if no range is
+	      given).
+
+       :select {pattern}
+	      select files that match specified pattern.   Possible  {pattern}
+	      forms are described in "Patterns" section below.	Trailing slash
+	      for directories is taken into account, so `:select! */ |	invert
+	      s` selects only files.
+
+       :select //[iI]
+	      same as item above, but reuses last search pattern.
+
+       :select !{external command}
+	      select  files from the list supplied by external command.	 Files
+	      are matched by full paths, relative paths are converted to abso-
+	      lute ones beforehand.
+
+       :[range]select! [{pattern}]
+	      same  as above, but resets previously selected items before pro-
+	      ceeding.
+
+						:set
+
+       :se[t] display all options that differ from their default value.
+
+       :se[t] all
+	      display all options.
+
+       :se[t] opt1=val1 opt2='val2' opt3="val3" ...
+	      sets given options.  For local options both values are set.
+	      You can use following syntax:
+	       - for all options - option, option? and option&
+	       - for boolean options - nooption, invoption and option!
+	       - for integer options - option=x, option+=x and option-=x
+	       - for string options - option=x and option+=x
+	       - for string list options - option=x, option+=x and option-=x
+	       - for enumeration options - option=x, option+=x and option-=x
+	       - for set options - option=x, option+=x and option-=x
+	       - for charset options  -	 option=x,  option+=x,	option-=x  and
+	      option^=x
+
+	      the meaning:
+	       - option - turn option on (for boolean) or print its value (for
+	      all others)
+	       - nooption - turn option off
+	       - invoption - invert option state
+	       - option! - invert option state
+	       - option? - print option value
+	       - option& - reset option to its default value
+	       - option=x or option:x - set option to x
+	       - option+=x - add/append x to option
+	       - option-=x - remove (or subtract) x from option
+	       - option^=x - toggle x presence among values of the option
+
+	      Option name can be prepended  and	 appended  by  any  number  of
+	      whitespace characters.
+
+						:setglobal
+
+       :setg[lobal]
+	      display all global options that differ from their default value.
+
+       :setg[lobal] all
+	      display all global options.
+
+       :setg[lobal] opt1=val1 opt2='val2' opt3="val3" ...
+	      same  as	:set, but changes/prints only global options or global
+	      values of local options.	Changes to the	latter	might  be  not
+	      visible until directory is changed.
+
+						:setlocal
+
+       :setl[ocal]
+	      display all local options that differ from their default value.
+
+       :setl[ocal] all
+	      display all local options.
+
+       :setl[ocal] opt1=val1 opt2='val2' opt3="val3" ...
+	      same  as	:set,  but  changes/prints  only local values of local
+	      options.
+
+						:shell
+
+       :sh[ell][!]
+	      start a shell in current	directory.   "!"  suppresses  spawning
+	      dedicated	 window	 of terminal multiplexer for a shell.  To make
+	      vifm adaptive to environment it uses  $SHELL  if	it's  defined,
+	      otherwise 'shell' value is used.
+
+
+						:siblnext
+
+       :[count]siblnext[!]
+
+	      change  directory to [count]th next sibling directory after cur-
+	      rent path using value of global sort  option  of	current	 pane.
+	      "!" enables wrapping.
+
+	      For  example,  say, you're at /boot and root listing starts like
+	      this:
+
+		  bin/
+		  boot/
+		  dev/
+		  ...
+
+	      Issuing :siblnext will navigate to /dev.
+
+
+						:siblprev
+
+       :[count]siblprev[!]
+	      same as :siblnext, but in the opposite direction.
+
+						:sort
+
+       :sor[t]
+	      display dialog with different  sorting  methods,	when  one  can
+	      select primary sorting key.  When 'viewcolumns' options is empty
+	      and 'lsview' is off, changing  primary  sorting  key  will  also
+	      affect  view  look  (in particular the second column of the view
+	      will be changed).
+
+						:source
+
+       :so[urce] file
+	      read command-line commands from the file.
+
+						:split
+
+       :sp[lit]
+	      switch to a two window horizontal view.
+
+       :sp[lit]!
+	      toggle horizontal window splitting.
+
+       :sp[lit] path
+	      splits the window horizontally to show  both  file  directories.
+	      Also changes other pane to path (absolute or relative to current
+	      directory of active pane).
+
+						:substitute
+
+       :[range]s[ubstitute]/pattern/string/[flags]
+	      for each file in range replace a match of pattern with string.
+
+       String can contain \0...\9 to link to capture groups (\0 -  all	match,
+       \1 - first group, etc.).
+
+       Pattern is stored in search history.
+
+       Available flags:
+
+	 - i  -	 ignore case (the 'ignorecase' and 'smartcase' options are not
+	   used)
+
+	 - I - don't ignore case (the 'ignorecase' and 'smartcase' options are
+	   not used)
+
+	 - g - substitute all matches in each file name (each g toggles this)
+
+       :[range]s[ubstitute]/pattern
+	      substitute pattern with an empty string.
+
+       :[range]s[ubstitute]//string/[flags]
+	      use last pattern from search history.
+
+       :[range]s[ubstitute]
+	      repeat previous substitution command.
+
+						:sync
+
+       :sync [relative path]
+	      change  the  other pane to the current pane directory or to some
+	      path  relative  to  the  current	directory.   Using  macros  is
+	      allowed.
+
+       :sync! change the other pane to the current pane directory and synchro-
+	      nize cursor position.  If current pane displays custom  list  of
+	      files,  position	before	entering it is used (current one might
+	      not make any sense).
+
+
+       :sync! [location | cursorpos | localopts | filters | filelist | tree  |
+       all]...
+	      change  enumerated  properties of the other pane to match corre-
+	      sponding properties of the current  pane.	  Arguments  have  the
+	      following meanings:
+
+		- location - current directory of the pane;
+
+		- cursorpos  -	cursor	position  (doesn't  make sense without
+		  "location");
+
+		- localopts - all local options;
+
+		- filters - all filters;
+
+		- filelist - list of files for	custom	view  (implies	"loca-
+		  tion");
+
+		- tree - tree structure for tree view (implies "location");
+
+		- all - all of the above.
+
+						:tabclose
+
+       :tabc[lose]
+	      close  current  tab,  unless  it's  the only one open at current
+	      scope.
+
+						:tabmove
+
+       :tabm[ove] [N]
+	      without the argument or with `$` as the  argument,  current  tab
+	      becomes  the  last tab.  With the argument, current tab is moved
+	      after the tab with the specified number.	Argument of `0`	 moves
+	      current tab to the first position.
+
+						:tabname
+
+       :tabname [name]
+	      set,  update or reset (when no argument is provided) name of the
+	      current tab.
+
+						:tabnew
+
+       :tabnew [path]
+	      create new tab.  Accepts optional path for the new tab.	Macros
+	      and environment variables are expanded.
+
+						:tabnext
+
+       :tabn[ext]
+	      switch to the next tab (wrapping around).
+
+       :tabn[ext] {n}
+	      go to the tab number {n}.	 Tab numeration starts with 1.
+
+						:tabprevious
+
+       :tabp[revious]
+	      switch to the previous tab (wrapping around).
+
+       :tabp[revious] {n}
+	      go  to  the {n}-th previous tab.	Note that :tabnext handles its
+	      argument differently.
+
+						:touch
+
+       :[line]touch file...
+	      create files at specified paths.	 Aborts	 on  errors.   Doesn't
+	      update  time  of existing files.	The [line] can be used to pick
+	      node in a tree-view.  Macros are expanded.
+
+						:tr
+
+       :[range]tr/pattern/string/
+	      for each file in range transliterate the characters which appear
+	      in  pattern  to  the  corresponding  character  in string.  When
+	      string is shorter than pattern, it's padded with its last	 char-
+	      acter.
+
+						:trashes
+
+       :trashes
+	      lists all valid trash directories in a menu.  Only non-empty and
+	      writable trash directories are shown.  This is exactly the  list
+	      of directories that are cleared when :empty command is executed.
+
+       :trashes?
+	      same  as	:trashes,  but also displays size of each trash direc-
+	      tory.
+
+						:tree
+
+       :tree  turn pane into tree view with current  directory	as  its	 root.
+	      The  tree	 view  is  implemented on top of a custom view, but is
+	      automatically kept in sync with file system state and  considers
+	      all  the	filters.   Thus	 the structure corresponds to what one
+	      would see on visiting the directories manually.	As  a  special
+	      case  for	 trees	built  out of custom view file-system tracking
+	      isn't performed.
+
+	      To leave tree view go up from its root or use gh at any level of
+	      the  tree.   Any command that changes directory will also do, in
+	      particular, `:cd ..`.
+
+	      Tree structure is incompatible with alternative representations,
+	      so values of 'lsview' and 'millerview' options are ignored.
+
+       :tree! toggle current view in and out of tree mode.
+
+						:undolist
+
+       :undol[ist]
+	      display list of latest changes.  Use "!" to see actual commands.
+
+						:unlet
+
+       :unl[et][!] $ENV_VAR1 $ENV_VAR2 ...
+	      remove  environment variables. Add ! to omit displaying of warn-
+	      ings about nonexistent variables.
+
+						:unselect
+
+       :[range]unselect
+	      unselect files in the given range (current file if no  range  is
+	      given).
+
+       :unselect {pattern}
+	      unselect files that match specified pattern.  Possible {pattern}
+	      forms are described in "Patterns" section below.	Trailing slash
+	      for  directories	is taken into account, so `:unselect */` unse-
+	      lects directories.
+
+       :unselect !{external command}
+	      unselect files from  the	list  supplied	by  external  command.
+	      Files are matched by full paths, relative paths are converted to
+	      absolute ones beforehand.
+
+       :unselect //[iI]
+	      same as item above, but reuses last search pattern.
+
+						:version
+
+       :ve[rsion]
+	      show menu with version information.
+
+						:vifm
+
+       :vifm  same as :version.
+
+						:view
+
+       :vie[w]
+	      toggle on and off the quick file	view.	See  also  'quickview'
+	      option.
+
+       :vie[w]!
+	      turn on quick file view if it's off.
+
+						:volumes
+
+       :volumes
+	      only for MS-Windows
+	      display  menu  with volume list.	Hitting l (or Enter) key opens
+	      appropriate volume in the current pane.
+
+						:vsplit
+
+       :vs[plit]
+	      switch to a two window vertical view.
+
+       :vs[plit]!
+	      toggle window vertical splitting.
+
+       :vs[plit] path
+	      split the window vertically to show both file directories.   And
+	      changes  other  pane  to	path  (absolute or relative to current
+	      directory of active pane).
+
+						:wincmd
+
+       :[count]winc[md] {arg}
+	      same as running Ctrl-W [count] {arg}.
+
+						:windo
+
+       :windo [command...]
+	      execute command for each pane (same as :winrun % command).
+
+						:winrun
+
+       :winrun type [command...]
+	      execute command for pane(s), which is determined by  type	 argu-
+	      ment:
+		- ^ - top-left pane
+		- $ - bottom-right pane
+		- % - all panes
+		- . - current pane
+		- , - other pane
+
+						:write
+
+       :w[rite]
+	      write vifminfo file.
+
+						:wq
+
+       :wq[!] same  as	:quit,	but ! only disables check of backgrounded com-
+	      mands.					       :wqall
+
+       :wqa[ll][!]
+	      same as :qall, but ! only disables check	of  backgrounded  com-
+	      mands.
+
+						:xall
+
+       :xa[ll][!]
+	      same as :qall.
+
+						:xit
+
+       :x[it][!]
+	      same as :quit.
+
+						:yank
+
+       :[range]y[ank] [reg] [count]
+	      will yank files to the reg register.
+
+						:map lhs rhs
+
+       :map lhs rhs
+	      map lhs key sequence to rhs in normal and visual modes.
+
+       :map! lhs rhs
+	      map lhs key sequence to rhs in command line mode.
+
+
+					       :cmap  :dmap  :mmap :nmap :qmap
+       :vmap
+
+       :cm[ap] lhs rhs
+	      map lhs to rhs in command line mode.
+
+       :dm[ap] lhs rhs
+	      map lhs to rhs in dialog modes.
+
+       :mm[ap] lhs rhs
+	      map lhs to rhs in menu mode.
+
+       :nm[ap] lhs rhs
+	      map lhs to rhs in normal mode.
+
+       :qm[ap] lhs rhs
+	      map lhs to rhs in view mode.
+
+       :vm[ap] lhs rhs
+	      map lhs to rhs in visual mode.
+
+
+						:*map
+
+       :cm[ap]
+	      list all maps in command line mode.
+
+       :dm[ap]
+	      list all maps in dialog modes.
+
+       :mm[ap]
+	      list all maps in menu mode.
+
+       :nm[ap]
+	      list all maps in normal mode.
+
+       :qm[ap]
+	      list all maps in view mode.
+
+       :vm[ap]
+	      list all maps in visual mode.
+
+						:*map beginning
+
+       :cm[ap] beginning
+	      list all maps in command line mode that start  with  the	begin-
+	      ning.
+
+       :dm[ap] beginning
+	      list all maps in dialog modes that start with the beginning.
+
+       :mm[ap] beginning
+	      list all maps in menu mode that start with the beginning.
+
+       :nm[ap] beginning
+	      list all maps in normal mode that start with the beginning.
+
+       :qm[ap] beginning
+	      list all maps in view mode that start with the beginning.
+
+       :vm[ap] beginning
+	      list all maps in visual mode that start with the beginning.
+
+						:noremap
+
+       :no[remap] lhs rhs
+	      map the key sequence lhs to rhs for normal and visual modes, but
+	      disallow mapping of rhs.
+
+       :no[remap]! lhs rhs
+	      map the key sequence lhs to rhs for command line mode, but  dis-
+	      allow mapping of rhs.
+
+			:cnoremap   :dnoremap  :mnoremap  :nnoremap  :qnoremap
+       :vnoremap
+
+       :cno[remap] lhs rhs
+	      map the key sequence lhs to rhs for command line mode, but  dis-
+	      allow mapping of rhs.
+
+       :dn[oremap] lhs rhs
+	      map  the	key sequence lhs to rhs for dialog modes, but disallow
+	      mapping of rhs.
+
+       :mn[oremap] lhs rhs
+	      map the key sequence lhs to rhs for menu mode, but disallow map-
+	      ping of rhs.
+
+       :nn[oremap] lhs rhs
+	      map  the	key  sequence lhs to rhs for normal mode, but disallow
+	      mapping of rhs.
+
+       :qn[oremap] lhs rhs
+	      map the key sequence lhs to rhs for view mode, but disallow map-
+	      ping of rhs.
+
+       :vn[oremap] lhs rhs
+	      map  the	key  sequence lhs to rhs for visual mode, but disallow
+	      mapping of rhs.
+
+						:unmap
+
+       :unm[ap] lhs
+	      remove the mapping of lhs from normal and visual modes.
+
+       :unm[ap]! lhs
+	      remove the mapping of lhs from command line mode.
+
+				   :cunmap  :dunmap  :munmap  :nunmap  :qunmap
+       :vunmap
+
+       :cu[nmap] lhs
+	      remove the mapping of lhs from command line mode.
+
+       :du[nmap] lhs
+	      remove the mapping of lhs from dialog modes.
+
+       :mu[nmap] lhs
+	      remove the mapping of lhs from menu mode.
+
+       :nun[map] lhs
+	      remove the mapping of lhs from normal mode.
+
+       :qun[map] lhs
+	      remove the mapping of lhs from view mode.
+
+       :vu[nmap] lhs
+	      remove the mapping of lhs from visual mode.
+
+Ranges
+       The ranges implemented include:
+	 2,3 - from second to third file in the list (including it)
+	 % - the entire directory.
+	 . - the current position in the filelist.
+	 $ - the end of the filelist.
+	 't - the mark position t.
+
+       Examples:
+
+	 :%delete
+
+       would delete all files in the directory.
+
+	 :2,4delete
+
+       would delete the files in the list positions 2 through 4.
+
+	 :.,$delete
+
+       would  delete  the  files  from	the current position to the end of the
+       filelist.
+
+	 :3delete4
+
+       would delete the files in the list positions 3, 4, 5, 6.
+
+       If a backward range is given :4,2delete - an query message is given and
+       user can chose what to do next.
+
+       The builtin commands that accept a range are :d[elete] and :y[ank].
+
+Command macros
+       The command macros may be used in user commands.
+
+       %a     User  arguments.	 When  user arguments contain macros, they are
+	      expanded before preforming substitution of %a.
+
+       %c %"c The current file under the cursor.
+
+       %C %"C The current file under the cursor in the other directory.
+
+       %f %"f All of the selected files.
+
+       %F %"F All of the selected files in the other directory list.
+
+       %b %"b Same as %f %F.
+
+       %d %"d Full path to current directory.
+
+       %D %"D Full path to other file list directory.
+
+       %rx %"rx
+	      Full paths to files in the register {x}.	 In  case  of  invalid
+	      symbol in place of {x}, it's processed with the rest of the line
+	      and default register is used.
+
+       %m     Show command output in a menu.
+
+       %M     Same as %m, but l (or Enter) key is handled like for :locate and
+	      :find commands.
+
+       %u     Process  command output as list of paths and compose custom view
+	      out of it.
+
+       %U     Same as %u, but implies less list updates inside vifm, which  is
+	      absence of sorting at the moment.
+
+       %Iu    same  as	%u, but gives up terminal before running external com-
+	      mand.
+
+       %IU    same as %U, but gives up terminal before running	external  com-
+	      mand.
+
+       %S     Show command output in the status bar.
+
+       %q     redirect	command	 output	 to  quick view, which is activated if
+	      disabled.
+
+       %s     Execute command in split window of active	 terminal  multiplexer
+	      (ignored if not running inside one).
+
+       %n     Forbid using of terminal multiplexer to run the command.
+
+       %i     Completely ignore command output.
+
+
+       %pc    Marks end of the main command and beginning of the clear command
+	      for graphical preview, which is invoked on closing preview of  a
+	      file.
+
+       The following dimensions and coordinates are in characters:
+
+       %px    x coordinate of top-left corner of preview area.
+
+       %py    y coordinate of top-left corner of preview area.
+
+       %pw    width of preview area.
+
+       %ph    height of preview area.
+
+
+       Use %% if you need to put a percent sign in your command.
+
+       Note  that %m, %M, %s, %S, %i, %u and %U macros are mutually exclusive.
+       Only the last one of them on the command will take effect.
+
+       You can use file name modifiers after %c, %C, %f, %F,  %b,  %d  and  %D
+       macros.	Supported modifiers are:
+
+	 - :p		- full path
+
+	 - :u		  -   UNC   name   of	path   (e.g.   "\\server"   in
+	   "\\server\share"), Windows only.  Expands to current computer  name
+	   for not UNC paths.
+
+	 - :~		- relative to the home directory
+
+	 - :.		- relative to current directory
+
+	 - :h		- head of the file name
+
+	 - :t		- tail of the file name
+
+	 - :r		- root of the file name (without last extension)
+
+	 - :e		- extension of the file name (last one)
+
+	 - :s?pat?sub?	 -  substitute	the  first occurrence of pat with sub.
+	   You can use any character for '?', but it must not occur in pat  or
+	   sub.
+
+	 - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with
+	   sub.
+
+       See ':h filename-modifiers' in Vim's  documentation  for	 the  detailed
+       description.
+
+       Using  %x means expand corresponding macro escaping all characters that
+       have special meaning.  And %"x means using of double quotes and	escape
+       only  backslash	and  double  quote characters, which is more useful on
+       Windows systems.
+
+       Position and quantity (if there is any) of %m, %M, %S or %s  macros  in
+       the command is unimportant.  All their occurrences are removed from the
+       resulting command.
+
+       %c and %f macros are expanded to file names only, when %C  and  %F  are
+       expanded to full paths.	%f and %F follow this in %b too.
+
+       :com move mv %f %D
+	      set  the	:move command to move all of the files selected in the
+	      current directory to the other directory.
+
+       The %a macro is replaced with any arguments given to an alias  command.
+       All arguments are considered optional.
+	      :com  lsl !!ls -l %a - set the lsl command to execute ls -l with
+	      or without an argument.
+
+       :lsl<Enter>
+	      will list the directory contents of the current directory.
+
+       :lsl filename<Enter>
+	      will list only the given filename.
+
+       The macros can also be used in directly executing commands.   ":!mv  %f
+       %D" would move the current directory selected files to the other direc-
+       tory.
+
+       Appending & to the end of a command causes it to	 be  executed  in  the
+       background.   Typically	you want to run two kinds of external commands
+       in the background:
+
+	 - GUI applications that doesn't fork thus block vifm (:!sxiv %f &);
+
+	 - console tools that do not work with terminal (:!mv %f %D &).
+
+       You don't want to run terminal commands, which require  terminal	 input
+       or output something in background because they will mess up vifm's TUI.
+       Anyway, if you did run such a command, you can use Ctrl-L key to update
+       vifm's TUI.
+
+       Rewriting  the example command with macros given above with background-
+       ing:
+
+       %m, %M, %s, %S, %u and %U macros cannot	be  combined  with  background
+       mark (" &") as it doesn't make much sense.
+
+Command backgrounding
+       Copy  and move operation can take a lot of time to proceed.  That's why
+       vifm supports backgrounding of this  two	 operations.   To  run	:copy,
+       :move  or :delete command in the background just add " &" at the end of
+       a command.
+
+       For each background operation a new thread is created.	Currently  job
+       cannot be stopped or paused.
+
+       You  can	 see  if  command  is  still running in the :jobs menu.	 Back-
+       grounded commands have progress instead	of  process  id	 at  the  line
+       beginning.
+
+       Background operations cannot be undone.
+
+Cancellation
+       Note that cancellation works somewhat different on Windows platform due
+       to different mechanism of break signal  propagation.   One  also	 might
+       need to use Ctrl-Break shortcut instead of Ctrl-C.
+
+       There are two types of operations that can be cancelled:
+
+	 - file system operations;
+
+	 - mounting  with  FUSE	 (but  not  unmounting as it can cause loss of
+	   data);
+
+	 - calls of external applications.
+
+       Note that vifm never terminates applications, it	 sends	SIGINT	signal
+       and lets the application quit normally.
+
+       When one of set of operations is cancelled (e.g. copying of 5th file of
+       10 files), further operations are cancelled too.	  In  this  case  undo
+       history will contain only actually performed operations.
+
+       Cancelled  operations are indicated by "(cancelled)" suffix appended to
+       information message on statusbar.
+
+       File system operations
+
+       Currently the following commands	 can  be  cancelled:  :alink,  :chmod,
+       :chown,	:clone,	 :copy,	 :delete,  :mkdir,  :move,  :restore,  :rlink,
+       :touch.	File putting (on p/P key) can be cancelled as well.  It's  not
+       hard to see that these are mainly long-running operations.
+
+       Cancelling  commands when they are repeated for undo/redo operations is
+       allowed for convenience, but is not recommended	as  further  undo/redo
+       operations  might  get  blocked	by side-effects of partially cancelled
+       group of operations.
+
+       These commands can't be cancelled: :empty, :rename, :substitute, :tr.
+
+       Mounting with FUSE
+
+       It's not considered to be an error, so only notification on the	status
+       bar is shown.
+
+       External application calls
+
+       Each  of	 this  operations  can	be  cancelled: :apropos, :find, :grep,
+       :locate.
+
+Patterns
+       :highlight, :filetype, :filextype, :fileviewer commands and  'classify'
+       option  support globs, regular expressions and mime types to match file
+       names or their paths.
+
+       There are six possible ways to write a single pattern:
+
+	 1. [!]{comma-separated-name-globs}
+
+	 2. [!]{{comma-separated-path-globs}}
+
+	 3. [!]/name-regular-expression/[iI]
+
+	 4. [!]//path-regular-expression//[iI]
+
+	 5. [!]<comma-separated-mime-type-globs>
+
+	 6. undecorated-pattern
+
+       Flags of regular expressions mean the following:
+	 - "i" makes filter case insensitive;
+	 - "I" makes filter case sensitive.  They  can	be  repeated  multiple
+       times,  but  the later one takes precedence (e.g.  "iiiI" is equivalent
+       to "I" and "IiIi" is the same as "i").
+
+       To combine several patterns (AND them), make sure you're using  one  of
+       the first five forms and write patterns one after another, like this:
+	 <text/plain>{*.vifm}
+       Mind that if you make a mistake the whole string will be treated as the
+       sixth form.
+
+       :filetype, :filextype and :fileviewer commands  accept  comma-separated
+       list of patterns instead of a single pattern, thus effectively handling
+       OR operation on them:
+	 <text/plain>{*.vifm},<application/pdf>{*.pdf}
+
+       Five first forms can include leading exclamation mark that negates pat-
+       tern matching.
+
+       The  last  form is implicitly refers to one of others.  :highlight does
+       not accept undecorated form, while :filetype, :filextype,  :fileviewer,
+       :select, :unselect and 'classify' treat it as list of name globs.
+
+       Regular	expression  patterns  are  case	 insensitive  by  default, see
+       description of commands, which might override default behaviour.
+
+       "Globs" section below provides short overview of globs and some	impor-
+       tant points that one needs to know about them.
+
+       Mime  type  matching is essentially globs matching applied to mime type
+       of a file instead of its name/path.  Note: mime types  aren't  detected
+       on Windows.
+
+Globs
+       Globs are always case insensitive as it makes sense in general case.
+
+       *, ?, [ and ] are treated as special symbols in the pattern.  E.g.
+
+	 :filetype * less %c
+
+       matches all files.  One can use character classes for escaping, so
+
+	 :filetype [*] less %c
+
+       matches	only  one file name, the one which contains only asterisk sym-
+       bol.
+
+       * means any number of any characters  (possibly	an  empty  substring),
+       with one exception: asterisk at the pattern beginning doesn't match dot
+       in the first position.  E.g.
+
+	 :fileviewer *.zip,*.jar zip -sf %c
+
+       associates using of zip program to preview all files with  zip  or  jar
+       extensions as listing of their content.
+
+       ? means any character at this position.	E.g.
+
+	 :fileviewer ?.out file %c
+
+       calls  file  tool  for all files which has exactly one character before
+       their extension (e.g. a.out, b.out).
+
+       Square brackets designate character class, which means that whole char-
+       acter  class matches against any of characters listed in it.  For exam-
+       ple
+
+	 :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c
+
+       makes vifm call highlight program to colorize source and	 header	 files
+       in C language for a 256-color terminal.	Equal command would be
+
+	 :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c
+
+
+       Inside  square brackets ^ or ! can be used for symbol class negotiation
+       and the - symbol to set a range. ^ and ! should appear right after  the
+       opening square bracket.	For example
+
+	 :filetype *.[!d]/ inspect_dir
+
+       associates  inspect_dir	as additional handler for all directories that
+       have one character extension unless it's "d" letter.  And
+
+	 :filetype [0-9].jpg sxiv
+
+       associates sxiv picture viewer only for JPEG-files that contain	single
+       digit in their name.
+
+:set options
+       Local options
+	      These are kind of options that are local to a specific view.  So
+	      you can set ascending sorting order for left pane and descending
+	      order for right pane.
+
+	      In  addition  to being local to views, each such option also has
+	      two values:
+
+		- local to current directory (value  associated	 with  current
+		  location);
+
+		- global  to  current  directory  (value  associated  with the
+		  pane).
+
+	      The idea is that current	directory  can	be  made  a  temporary
+	      exception	 to regular configuration of the view, until directory
+	      change.  Use :setlocal for that.	:setglobal changes view	 value
+	      not  affecting  settings	until  directory change.  :set applies
+	      changes immediately to all values.
+
+
+       'aproposprg'
+	      type: string
+	      default: "apropos %a"
+	      Specifies format for an external command to be  invoked  by  the
+	      :apropos command.	 The format supports expanding of macros, spe-
+	      cific for a particular *prg option, and %% sequence for  insert-
+	      ing  percent  sign literally.  This option should include the %a
+	      macro to specify placement of arguments passed to	 the  :apropos
+	      command.	 If the macro is not used, it will be implicitly added
+	      after a space to the value of this option.
+
+       'autochpos'
+	      type: boolean
+	      default: true
+	      When disabled vifm will set cursor to the first line in the view
+	      after  :cd and :pushd commands instead of saved cursor position.
+	      Disabling this will also make vifm clear information about  cur-
+	      sor position in the view history on :cd and :pushd commands (and
+	      on startup if 'autochpos' is disabled in the vifmrc).  l key  in
+	      the  ":history ." and ":trashes" menus are treated like :cd com-
+	      mand.  This option also affects marks so that  navigating	 to  a
+	      mark doesn't restore cursor position.
+
+	      When this option is enabled, more fine grained control over cur-
+	      sor position is available via 'histcursor' option.
+
+       'columns' 'co'
+	      type: integer
+	      default: terminal width on startup
+	      Terminal width in characters.
+
+       'caseoptions'
+	      type: charset
+	      default: ""
+	      This option gives additional control over	 case  sensitivity  by
+	      allowing	overriding  default behaviour to either always be case
+	      sensitive or always be case insensitive.	Possible  values  form
+	      pairs  of	 lower	and upper case letters that configure specific
+	      aspect of behaviour:
+		p - always ignore case of paths during completion.
+		P - always match case of paths during completion.
+		g - always ignore case of characters for f/F/;/,.
+		G - always match case of characters for f/F/;/,.
+
+	      At most one item of each pair takes affect, if both or more  are
+	      present,	only  the  last one matters.  When none of pair's ele-
+	      ments are present, the behaviour is default (depends on  operat-
+	      ing system for path completion and on values of 'ignorecase' and
+	      'smartcase' options for file navigation).
+
+       'cdpath' 'cd'
+	      type: string list
+	      default: value of $CDPATH with commas instead of colons
+	      Specifies locations to check on changing directory with relative
+	      path  that  doesn't  start  with "./" or "../".  When non-empty,
+	      current directory is examined after directories  listed  in  the
+	      option.
+
+	      This option doesn't affect completion of :cd command.
+
+	      Example:
+
+		set cdpath=~
+
+	      This  way	 ":cd  bin"  will  switch to "~/bin" even if directory
+	      named "bin" exists in current directory, while ":cd ./bin"  com-
+	      mand will ignore value of 'cdpath'.
+
+       'chaselinks'
+	      type: boolean
+	      default: false
+	      When  enabled path of view is always resolved to real path (with
+	      all symbolic links expanded).
+
+       'classify'
+	      type: string list
+	      default: ":dir:/"
+	      Specifies file name prefixes and suffixes depending on file type
+	      or name.	The format is either of:
+		- [{prefix}]:{filetype}:[{suffix}]
+		- [{prefix}]::{pattern}::[{suffix}]
+	      Possible	{pattern}  forms  are  described in "Patterns" section
+	      above.
+
+	      Priority rules:
+		- file name patterns have priority over type patterns
+		- file name patterns are matched  in  left-to-right  order  of
+	      their appearance in this option
+
+	      Either {prefix} or {suffix} or both can be omitted (which is the
+	      default for all unspecified file types), this means empty	 {pre-
+	      fix}  and/or  {suffix}.  {prefix} and {suffix} should consist of
+	      at most eight characters.	 Elements  are	separated  by  commas.
+	      Neither  prefixes	 nor  suffixes are part of file names, so they
+	      don't affect commands which operate on file names	 in  any  way.
+	      Comma  (',')  character can be inserted by doubling it.  List of
+	      file type names can be found in the  description	of  filetype()
+	      function.
+
+       'confirm' 'cf'
+	      type: set
+	      default: delete,permdelete
+	      Defines which operations require confirmation:
+	       - delete	    - moving files to trash (on d or :delete);
+	       -  permdelete  -	 permanent deletion of files (on D or :delete!
+	      command or on undo/redo operation).
+
+       'cpoptions' 'cpo'
+	      type: charset
+	      default: "fst"
+	      Contains	a  sequence  of	 single-character  flags.   Each  flag
+	      enables behaviour of older versions of vifm.  Flags:
+	       -  f  -	when  included, running :filter command results in not
+	      inverted (matching files	are  filtered  out)  and  :filter!  in
+	      inverted (matching files are left) filter, when omitted, meaning
+	      of the exclamation mark changes to the opposite;
+	       - s - when included, yy, dd and DD normal mode commands act  on
+	      selection, otherwise they operate on current file only;
+	       -  t  - when included, <tab> (thus <c-i>) behave as <space> and
+	      switches active pane, otherwise <tab> and <c-i>  go  forward  in
+	      the view history.	 It's possible to make both <tab> and <c-i> to
+	      work as expected by setting up the terminal  to  emit  a	custom
+	      sequence when <c-i> is pressed; see :histnext for details.
+
+       'cvoptions'
+	      type: set
+	      default:
+	      Specifies	 whether entering/leaving custom views triggers events
+	      that normally happen on entering/leaving directories:
+	       - autocmds    - trigger autocommands on entering/leaving custom
+	      views;
+	       -  localopts   - reset local options on entering/leaving custom
+	      views;
+	       - localfilter - reset local filter on  entering/leaving	custom
+	      views.
+
+       'deleteprg'
+	      type: string
+	      default: ""
+	      Specifies	 program to run on files that are permanently removed.
+	      When empty, files are removed as usual, otherwise	 this  command
+	      is  invoked  on each file by appending its name.	If the command
+	      doesn't remove files, they will remain on the file system.
+
+       'dirsize'
+	      type: enumeration
+	      default: size
+	      Controls how size of directories is  displayed  in  file	views.
+	      The following values are possible:
+	       -  size	 - size of directory (i.e., size used to store list of
+	      files)
+	       - nitems - number of entries in the directory (excluding .  and
+	      ..)
+
+	      Size  obtained via ga/gA overwrites this setting so seeing count
+	      of files and occasionally size of directories is possible.
+
+       'dotdirs'
+	      type: set
+	      default: nonrootparent
+	      Controls displaying of dot directories.	The  following	values
+	      are possible:
+	       - rootparent    - show "../" in root directory of file system
+	       -  nonrootparent	 -  show "../" in non-root directories of file
+	      system
+
+	      Note that empty directories always contain "../"	entry  regard-
+	      less of value of this option.  "../" disappears at the moment at
+	      least one file is created.
+
+       'dotfiles'
+	      type: boolean
+	      default: false
+	      Whether dot files are shown in the view.	Can be controlled with
+	      z* bindings.
+
+       'fastrun'
+	      type: boolean
+	      default: false
+	      With  this  option  turned on you can run partially entered com-
+	      mands with unambiguous beginning using :! (e.g. :!Te instead  of
+	      :!Terminal or :!Te<tab>).
+
+       'fillchars' 'fcs'
+	      type: string list
+	      default: ""
+	      Sets characters used to fill borders.
+
+		item	     default	used for
+		vborder:c     '	 '	  left, middle and right vertical bor-
+	      ders
+
+	      If value is omitted, its default value is used.  Example:
+
+		set fillchars=vborder:.
+
+       'findprg'
+	      type: string
+	      default: "find %s %a -print , -type d \( ! -readable -o !	 -exe-
+	      cutable \) -prune"
+	      Specifies	 format	 for  an external command to be invoked by the
+	      :find command.  The format supports expanding  of	 macros,  spe-
+	      cific  for a particular *prg option, and %% sequence for insert-
+	      ing percent sign literally.  This option should include  the  %s
+	      macro  to specify placement of list of paths to search in and %a
+	      or %A macro to specify placement	of  arguments  passed  to  the
+	      :find command.  If some of the macros are not used, they will be
+	      implicitly added after a space to the value of the option in the
+	      following	 order:	 %s, %a.  Note that when neither %a nor %A are
+	      specified, it's %a which is added implicitly.
+
+	      The macros can slightly change their meaning depending on	 :find
+	      command  arguments.  When the first argument points to an exist-
+	      ing directory, %s is assigned all arguments and %a/%A  are  left
+	      empty.   Otherwise,  %s  is assigned a dot (".") meaning current
+	      directory or list of selected file names,	 if  any.   %a/%A  are
+	      assigned arguments when first argument starts with a dash ("-"),
+	      otherwise %a gets an escaped version of arguments, prepended  by
+	      "-name" (on *nix) or "-iname" (on Windows) predicate.
+
+	      %a  and  %A macros contain almost the same value, the difference
+	      is that %a can be escaped and %A is never escaped.  %A is to  be
+	      used  mainly  on Windows, where shell escaping is a mess and can
+	      break command execution.
+
+	      Optional %u or %U macro could be used (if both specified	%U  is
+	      chosen)  to  force redirection to custom or unsorted custom view
+	      respectively.
+
+	      Starting from Windows Server 2003 a where command is  available,
+	      one can configure vifm to use it in the following way:
+
+		set findprg="where /R %s %A"
+
+	      As  the  syntax of this command is rather limited, one can't use
+	      :find command with selection of more than one item in this case.
+	      The  command  looks  for files only completely ignoring directo-
+	      ries.
+
+	      When using find port on Windows,	another	 option	 is  to	 setup
+	      'findprg' like this:
+
+		set findprg="find %s %a"
+
+       'followlinks'
+	      type: boolean
+	      default: true
+	      Follow  links  on	 l  or Enter.  That is navigate to destination
+	      file instead of treating the link as if  it  were	 target	 file.
+	      Doesn't  affects	links to directories, which are always entered
+	      (use gf key for directories).
+
+       'fusehome'
+	      type: string
+	      default: "($XDG_DATA_HOME/.local/share | $VIFM)/fuse/"
+	      Directory to be used as a root dir for FUSE  mounts.   Value  of
+	      the   option   can   contain   environment  variables  (in  form
+	      "$envname"), which will be expanded (prepend it with a slash  to
+	      prevent  expansion).   The  value	 should	 expand to an absolute
+	      path.
+
+	      If you change this option,  vifm	won't  remount	anything.   It
+	      affects future mounts only.  See "Automatic FUSE mounts" section
+	      below for more information.
+
+       'gdefault' 'gd'
+	      type: boolean
+	      default: false
+	      When on, 'g' flag is on for :substitute by default.
+
+       'grepprg'
+	      type: string
+	      default: "grep -n -H -I -r %i %a %s"
+	      Specifies format for an external command to be  invoked  by  the
+	      :grep  command.	The  format supports expanding of macros, spe-
+	      cific for a particular *prg option, and %% sequence for  insert-
+	      ing  percent  sign literally.  This option should include the %i
+	      macro to specify placement of  "-v"  string  when	 inversion  of
+	      results  is  requested,  %a  or %A macro to specify placement of
+	      arguments passed to the :grep command and the %s macro to	 spec-
+	      ify  placement  of  list	of files to search in.	If some of the
+	      macros are not used, they will be implicitly added after a space
+	      to the value of the 'grepprg' option in the following order: %i,
+	      %a, %s.  Note that when neither %a nor %A are specified, it's %a
+	      which is added implicitly.
+
+	      Optional	%u  or %U macro could be used (if both specified %U is
+	      chosen) to force redirection to custom or unsorted  custom  view
+	      respectively.
+
+	      See  'findprg'  option  for description of difference between %a
+	      and %A.
+
+	      Example of setup to use ack (http://beyondgrep.com/) instead  of
+	      grep:
+
+		set grepprg='ack -H -r %i %a %s'
+
+	      or   The	 Silver	 Searcher  (https://github.com/ggreer/the_sil-
+	      ver_searcher):
+
+		set grepprg='ag --line-numbers %i %a %s'
+
+
+
+       'histcursor'
+	      type: set
+	      default: startup,dirmark,direnter
+	      Defines situations when cursor  should  be  moved	 according  to
+	      directory history:
+	       - startup  - on loading file lists during startup
+	       -  dirmark   -  after navigating to a mark that doesn't specify
+	      file
+	       - direnter - on opening directory from a file list
+
+	      This option has no effect when 'autochpos' is disabled.
+
+	      Note that the list is not exhaustive and there are other	situa-
+	      tions when cursor is positioned automatically.
+
+       'history' 'hi'
+	      type: integer
+	      default: 15
+	      Maximum number of stored items in all histories.
+
+       'hlsearch' 'hls'
+	      type: boolean
+	      default: true
+	      Highlight all matches of search pattern.
+
+       'iec'  type: boolean
+	      default: false
+	      Use  KiB,	 MiB,  ... suffixes instead of K, M, ... when printing
+	      size in human-friendly format.
+
+       'ignorecase' 'ic'
+	      type: boolean
+	      default: false
+	      Ignore case in search patterns (:substitute, / and  ?  commands)
+	      and  characters  after f and F commands.	It doesn't affect file
+	      filtering.
+
+       'incsearch' 'is'
+	      type: boolean
+	      default: false
+	      When this option is set, search and view update for local filter
+	      is  be performed starting from initial cursor position each time
+	      search pattern is changed.
+
+       'iooptions'
+	      type: set
+	      default:
+	      Controls details of file operations.  The following  values  are
+	      available:
+	       -  fastfilecloning - perform fast file cloning (copy-on-write),
+	      when available
+				   (available on Linux and btrfs file system).
+
+       'laststatus' 'ls'
+	      type: boolean
+	      default: true
+	      Controls if status bar is visible.
+
+       'lines'
+	      type: integer
+	      default: terminal height on startup
+	      Terminal height in lines.
+
+       'locateprg'
+	      type: string
+	      default: "locate %a"
+	      Specifies format for an external command to be  invoked  by  the
+	      :locate  command.	 The format supports expanding of macros, spe-
+	      cific for a particular *prg option, and %% sequence for  insert-
+	      ing  percent  sign literally.  This option should include the %a
+	      macro to specify placement of arguments passed  to  the  :locate
+	      command.	 If the macro is not used, it will be implicitly added
+	      after a space to the value of this option.
+
+	      Optional %u or %U macro could be used (if both specified	%U  is
+	      chosen)  to  force redirection to custom or unsorted custom view
+	      respectively.
+
+       'mediaprg'
+	      type: string
+	      default: path to bundled script that supports udevil and udisks
+	      {only for *nix}
+	      Specifies command to be used to manage media devices.   Used  by
+	      :media command.
+
+	      The command can be passed the following parameters:
+	       - list		-- list media
+	       - mount {device} -- mount a device
+	       - unmount {path} -- unmount given mount point
+
+	      The  output  of  `list`  subcommand is parsed in search of lines
+	      that start with one of the following prefixes:
+	       - device=      - specifies device path (e.g., "/dev/sde")
+	       - label=	      - specifies optional device label (e.g., "Memory
+	      card")
+	       -  mount-point=	-  specifies  a	 mount point (can be absent or
+	      appear more than once)
+
+	      All other lines are ignored.  Each `device=` starts a  new  sec-
+	      tion describing a device which should include two other possible
+	      prefixes.
+
+	      `list` subcommand is assumed  to	always	succeed,  while	 error
+	      stream  and  exit	 code  of  `mount` and `unmount` is taken into
+	      account to determine whether operation  was  performed  success-
+	      fully.
+
+       'lsoptions'
+	      type: string list
+	      default: ""
+	      scope: local
+
+	      Configures ls-like view.
+
+		item	      used for
+		transposed     filling	view  grid  by	columns rather than by
+	      lines
+
+
+       'lsview'
+	      type: boolean
+	      default: false
+	      scope: local
+	      When this option is set, directory view  will  be	 displayed  in
+	      multiple	columns	 with  file names similar to output of `ls -x`
+	      command.	See "ls-like view" section below for  format  descrip-
+	      tion.  This option has no effect if 'millerview' is on.
+
+       'milleroptions'
+	      type: string list
+	      default: "lsize:1,csize:1,rsize:1"
+	      scope: local
+
+	      Configures miller view.
+
+		item	      default  used for
+		lsize:num     0	       left column
+		csize:num     1	       center column (can't be disabled)
+		rsize:num     0	       right column
+
+	      *size  specifies	ratios of columns.  Each ratio is in the range
+	      from 0 to 100 and values are adjusted to fit the	limits.	  Zero
+	      disables a column, but central (main) column can't be disabled.
+
+	      Example  of  two-column mode which is useful in combination with
+	      :view command:
+
+		set milleroptions=lsize:1,csize:2
+
+
+       'millerview'
+	      type: boolean
+	      default: false
+	      scope: local
+	      When this option is set, directory view  will  be	 displayed  in
+	      multiple cascading columns.  Ignores 'lsview'.
+
+       'mintimeoutlen'
+	      type: integer
+	      default: 150
+	      The  fracture  of	 'timeoutlen'  in  milliseconds that is waited
+	      between subsequent input polls, which affects various  asynchro-
+	      nous  operations	(detecting  changes  made by external applica-
+	      tions, monitoring background jobs, redrawing UI).	 There are  no
+	      strict guarantees, however the higher this value is, the less is
+	      CPU load in idle mode.
+
+       'number' 'nu'
+	      type: boolean
+	      default: false
+	      scope: local
+	      Print line number in front  of  each  file  name	when  'lsview'
+	      option  is  turned  off.	 Use 'numberwidth' to control width of
+	      line number.  Also see 'relativenumber'.
+
+       'numberwidth' 'nuw'
+	      type: integer
+	      default: 4
+	      scope: local
+	      Minimal number of characters for line number field.
+
+       'previewprg'
+	      type: string
+	      default: ""
+	      scope: local
+
+	      External command to be used instead of preview programs  config-
+	      ured via :fileviewer command.
+
+	      Example:
+
+		" always show git log in preview of files inside some repository
+		au DirEnter '~/git-repo/**/*' setl previewprg='git log --color -- %c 2>&1'
+
+       'quickview'
+	      type: boolean
+	      default: false
+	      Whether quick view (:view) is currently active or not.
+
+       'relativenumber' 'rnu'
+	      type: boolean
+	      default: false
+	      scope: local
+	      Print  relative  line  number  in	 front	of each file name when
+	      'lsview' option is turned off.   Use  'numberwidth'  to  control
+	      width  of	 line  number.	 Various  combinations of 'number' and
+	      'relativenumber' lead to such results:
+
+				      nonumber		     number
+
+		  norelativenumber   | first		    |	1 first
+				     | second		    |	2 second
+				     | third		    |	3 third
+
+		    relativenumber   |	 1 first	    |	1 first
+				     |	 0 second	    |2	  second
+				     |	 1 third	    |	1 third
+
+
+       'rulerformat' 'ruf'
+	      type: string
+	      default: "%l/%S "
+	      Determines the content of the ruler.  Its minimal	 width	is  13
+	      characters  and  it's  right aligned.  Following macros are sup-
+	      ported:
+	       %=  - separation point between left and right aligned halves of
+	      the line
+	       %l  - file number
+	       %L   -  total  number  of files in view (including filtered out
+	      ones)
+	       %x  - number of files excluded by filters
+	       %0- - old name for %x macro
+	       %S  - number of displayed files
+	       %=  - separation point between left and right align items
+	       %%  - percent sign
+	       %[  - designates beginning of an optional block
+	       %]  - designates end of an optional block
+
+	      Percent sign can be followed by optional	minimum	 field	width.
+	      Add '-' before minimum field width if you want field to be right
+	      aligned.
+
+	      Example:
+
+		set rulerformat='%2l-%S%[ +%x%]'
+
+       'runexec'
+	      type: boolean
+	      default: false
+	      Run executable file on Enter or l.
+
+       'scrollbind' 'scb'
+	      type: boolean
+	      default: false
+	      When this option is set, vifm will try  to  keep	difference  of
+	      scrolling positions of two windows constant.
+
+       'scrolloff' 'so'
+	      type: integer
+	      default: 0
+	      Minimal  number of screen lines to keep above and below the cur-
+	      sor.  If you want cursor line to always be in the middle of  the
+	      view (except at the beginning or end of the file list), set this
+	      option to some large value (e.g. 999).
+
+       'shell' 'sh'
+	      type: string
+	      default: $SHELL or "/bin/sh" or "cmd" (on MS-Windows)
+	      Full path to the shell to use to run external commands.  On *nix
+	      a shell argument can be supplied.
+
+       'shortmess' 'shm'
+	      type: charset
+	      default: "p"
+	      Contains	a  sequence  of	 single-character  flags.   Each  flag
+	      enables shortening of some message displayed by vifm in the TUI.
+	      Flags:
+	       -  M  - shorten titles in windows of terminal multiplexers cre-
+	      ated by vifm down to file name instead of using full path.
+	       - T - truncate status-bar messages in the middle	 if  they  are
+	      too  long	 to fit on the command line.  "..." will appear in the
+	      middle.
+	       - p - use tilde shortening in view titles.
+
+
+       'showtabline' 'stal'
+	      type: enumeration
+	      default: multiple
+	      Specifies when tab line should be displayed.  Possible values:
+	       - never	  - never display tab line
+	       - multiple - show tab line only when there  are	at  least  two
+	      tabs
+	       - always	  - display tab line always
+
+	      Alternatively  0, 1 and 2 Vim-like values	 are also accepted and
+	      correspond to "never", "multiple" and "always" respectively.
+
+
+       'sizefmt'
+	      type: string list
+	      default: "units:iec"
+	      Configures the way size is formatted in human-friendly way.
+
+		  item		value	      meaning
+		  units:	iec	      Use 1024 byte units (K  or  KiB,
+	      etc.).
+					      See 'iec' option.
+				si	      Use 1000 byte units (KB, etc.).
+		  precision:	i > 0	      How many fraction digits to con-
+	      sider.
+				{not set}     Precision of 1 for integer  part
+	      < 10,
+					      0 otherwise (provides old behav-
+	      iour).
+
+	      Numbers are rounded from zero.  Trailing zeros are dropped.
+
+	      Example:
+
+		set sizefmt=units:iec,precision:2
+
+
+       'slowfs'
+	      type: string list
+	      default: ""
+	      only for *nix
+	      A list of mounter fs name beginnings (first column in  /etc/mtab
+	      or  /proc/mounts) or paths prefixes for fs/directories that work
+	      too slow for you.	 This option can be used  to  stop  vifm  from
+	      making  some  requests  to particular kinds of file systems that
+	      can slow down file browsing.  Currently this means  don't	 check
+	      if directory has changed, skip check if target of symbolic links
+	      exists, assume that link target located  on  slow	 fs  to	 be  a
+	      directory	 (allows  entering directories and navigating to files
+	      via gf).	If you set the option to "*", it means all the systems
+	      are  considered  slow  (useful  for cygwin, where all the checks
+	      might render vifm very slow if there are network mounts).
+
+	      Example for autofs root /mnt/autofs:
+
+		set slowfs+=/mnt/autofs
+
+       'smartcase' 'scs'
+	      type: boolean
+	      default: false
+	      Overrides the ignorecase option if the search  pattern  contains
+	      at  least	 one  upper case character.  Only used when ignorecase
+	      option is enabled.  It doesn't affect file filtering.
+
+       'sort' type: string list
+	      default: +name on *nix and +iname on Windows
+	      scope: local
+	      Sets list of sorting keys (first item is primary key, second  is
+	      secondary key, etc.):
+		 [+-]ext     - extension of files and directories
+		 [+-]fileext - extension of files only
+		 [+-]name    - name (including extension)
+		 [+-]iname   - name (including extension, ignores case)
+		 [+-]type		  -		 file		  type
+	      (dir/reg/exe/link/char/block/sock/fifo)
+		 [+-]dir     - directory grouping (directory < file)
+		 [+-]gid     - group id (*nix only)
+		 [+-]gname   - group name (*nix only)
+		 [+-]mode    - file type derived from its mode (*nix only)
+		 [+-]perms   - permissions string (*nix only)
+		 [+-]uid     - owner id (*nix only)
+		 [+-]uname   - owner name (*nix only)
+		 [+-]nlinks  - number of hard links (*nix only)
+		 [+-]inode   - inode number (*nix only)
+		 [+-]size    - size
+		 [+-]nitems  - number of items in a directory (zero for files)
+		 [+-]groups  - groups extracted via regexps from 'sortgroups'
+		 [+-]target  - symbolic link  target  (empty  for  other  file
+	      types)
+		 [+-]atime   - time accessed (e.g. read, executed)
+		 [+-]ctime   - time changed (changes in metadata, e.g. mode)
+		 [+-]mtime   - time modified (when file contents is changed)
+
+	      Note:  look  for st_atime, st_ctime and st_mtime in "man 2 stat"
+	      for more information on time keys.
+
+	      '+' means ascending sort for this key, and '-' means  descending
+	      sort.
+
+	      "dir"  key  is  somewhat	similar	 in this regard but it's added
+	      implicitly: when "dir" is not specified, sorting behaves	as  if
+	      it was the first key in the list.	 That's why if one wants sort-
+	      ing algorithm to mix directories	and  files,  "dir"  should  be
+	      appended to sorting option, for example like this:
+
+		set sort+=dir
+
+	      or
+
+		set sort=-size,dir
+
+	      Value  of	 the  option is checked to include dir key and default
+	      sorting key (name on *nix, iname on Windows).  Here is what hap-
+	      pens if one of them is missing:
+
+		- type key is added at the beginning;
+
+		- default key is added at the end;
+
+	      all other keys are left untouched (at most they are moved).
+
+	      This option also changes view columns according to primary sort-
+	      ing key set, unless 'viewcolumns' option is not empty.
+
+       'sortnumbers'
+	      type: boolean
+	      default: false
+	      scope: local
+	      Natural sort of (version) numbers within text.
+
+       'sortgroups'
+	      type: string
+	      default: ""
+	      scope: local
+	      Sets comma-separated list of  regular  expressions  to  use  for
+	      group  sorting,  double comma is literal comma.  Each expression
+	      should contain at least one group or its value will  be  consid-
+	      ered  to	be  always  empty.   Only  first match of each regular
+	      expression is considered.	 Groups are considered from  right  to
+	      first  similar to 'sort', first group divides list of files into
+	      sub-groups, each of which is sorted by the second group  and  so
+	      on.
+
+	      Example:
+		set sortgroups=-(done|todo).*
+	      this would put files with "-done" in their names above all files
+	      with "-todo".
+
+       'sortorder'
+	      type: enumeration
+	      default: ascending
+	      Sets sort order for primary key: ascending, descending.
+
+       'statusline' 'stl'
+	      type: string
+	      default: ""
+	      Determines the content of the status line (the line right	 above
+	      command-line).   Empty string means use same format like in pre-
+	      vious versions.  Following macros are supported:
+
+	      - %t - file name (considering value of the 'classify' option)
+
+	      - %T - symbolic link target (empty for other filetypes)
+
+	      - %f - file name relative to current directory (considers 'clas-
+		sify')
+
+	      - %A  -  file  attributes	 (permissions on *nix or properties on
+		Windows) %u - user name or uid (if it cannot be resolved)
+
+	      - %g - group name or gid (if it cannot be resolved)
+
+	      - %s - file size in human readable format
+
+	      - %E - size of selected files in human readable format, same  as
+		%s  when no files are selected, except that it will never show
+		size of ../ in visual mode, since it cannot be selected
+
+	      - %d - file modification date (uses 'timefmt' option)
+
+	      - %D - path of the other pane for single-pane layout
+
+	      - %a - amount of free space available at current partition
+
+	      - %z - short tips/tricks/hints that chosen  randomly  after  one
+		minute period
+
+	      - %{<expr>}  - evaluate arbitrary vifm expression '<expr>', e.g.
+		'&sort'
+
+	      - %* - resets or applies one of User1..User9  highlight  groups;
+		reset  happens	when width field is 0 or not specified, one of
+		groups gets picked when width field is in the range from 1  to
+		9
+
+	      - all 'rulerformat' macros
+
+	      Percent  sign  can  be followed by optional minimum field width.
+	      Add '-' before minimum field width if you want field to be right
+	      aligned.
+
+	      On  Windows  file	 properties include the following flags (upper
+	      case means flag is on):
+	       A - archive
+	       H - hidden
+	       I - content isn't indexed
+	       R - readonly
+	       S - system
+	       C - compressed
+	       D - directory
+	       E - encrypted
+	       P - reparse point (e.g. symbolic link)
+	       Z - sparse file
+
+	      Example without colors:
+
+		set statusline="  %t%= %A %10u:%-7g %15s %20d %{&sort} "
+
+	      Example with colors:
+
+	       highlight User1 ctermbg=yellow
+	       highlight User2 ctermbg=blue ctermfg=white cterm=bold
+	       set statusline="%1* %-26t %2* %= %1* %A %2* %7u:%-7g %1* %-5s %2* %d "
+
+
+       'suggestoptions'
+	      type: string list
+	      default:
+	      Controls when, for what and how suggestions are displayed.   The
+	      following values are available:
+	       - normal		 - in normal mode;
+	       - visual		 - in visual mode;
+	       - view		 - in view mode;
+	       - otherpane	 - use other pane to display suggestions, when
+	      available;
+	       - delay[:num]	 - display suggestions after a small delay (to
+	      do not annoy if you just want to type a fast shortcut consisting
+	      of multiple keys),  num  specifies  the  delay  in  ms  (500  by
+	      default), 'timeoutlen' at most;
+	       - keys		 - include shortcuts (commands and selectors);
+	       - foldsubkeys	 - fold multiple keys with common prefix;
+	       - marks		 - include marks;
+	       -  registers[:num] - include registers, at most num files (5 by
+	      default).
+
+       'syncregs'
+	      type: string
+	      default:
+	      Specifies identifier of group of instances that share  registers
+	      between  each  other.   When several instances of vifm have this
+	      option set to identical value,  they  automatically  synchronize
+	      contents of their registers on operations which use them.
+
+       'syscalls'
+	      type: boolean
+	      default: false
+	      When  disabled,  vifm will rely on external applications to per-
+	      form file-system operations, otherwise  system  calls  are  used
+	      instead  (much  faster  and  supports  progress  tracking).  The
+	      option should eventually be removed.  Mostly  *nix-like  systems
+	      are affected.
+
+       'tabscope'
+	      type: enumeration
+	      default: global
+	      Picks  style  of tabs, which defines what a single tab contains.
+	      Possible values:
+	       - global - tab describes complete UI of two views and how  they
+	      are arranged
+	       -  pane	  -  tab is located "inside" a pane and manages it and
+	      quick view
+
+       'tabstop' 'ts'
+	      type: integer
+	      default: value from curses library
+	      Number of spaces that a Tab in the file counts for.
+
+       'timefmt'
+	      type: string
+	      default: "%m/%d %H:%M"
+	      Format of time in file list.  See "man 1 date" or "man  3	 strf-
+	      time" for details.
+
+       'timeoutlen' 'tm'
+	      type: integer
+	      default: 1000
+	      The time in milliseconds that is waited for a mapped key in case
+	      of already typed key sequence is ambiguous.
+
+       'title'
+	      type: boolean
+	      default: true when title can be restored, false otherwise
+	      When enabled title of the	 terminal  or  terminal	 multiplexer's
+	      window is updated according to current location.
+
+       'trash'
+	      type: boolean
+	      default: true
+	      Use trash directory.  See "Trash directory" section below.
+
+       'trashdir'
+	      type: string
+	      default: on *nix:
+		 "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash"
+		 or if $VIFM/Trash doesn't exist
+		 "%r/.vifm-Trash-%u,$XDG_DATA_HOME/vifm/Trash,%r/.vifm-Trash"
+		       on Windows:
+		 "%r/.vifm-Trash,$XDG_DATA_HOME/vifm/Trash"
+	      List of trash directory path specifications, separated with com-
+	      mas.  Each list item either defines an absolute  path  to	 trash
+	      directory	 or  a	path  relative to a mount point root when list
+	      element starts with "%r/".  Value	 of  the  option  can  contain
+	      environment  variables  (of  form	 "$envname"),  which  will  be
+	      expanded (prepend $ with a slash to prevent  expansion).	 Envi-
+	      ronment variables are expanded when the option is set.
+
+	      On  *nix,	 if  element ends with "%u", the mark is replaced with
+	      real user ID and permissions are set  so	that  only  that  only
+	      owner is able to use it.
+	      Note that even this setup is not completely secure when combined
+	      with "%r/" and it's overall safer to keep files in  home	direc-
+	      tory, but that implies cost of copying files between partitions.
+
+	      When  new file gets cut (deleted) vifm traverses each element of
+	      the option in the order of their appearance and uses first trash
+	      directory	 that  it  was	able  to  create  or  that  is already
+	      writable.
+
+	      Default value tries to use trash directory per mount  point  and
+	      falls back to ~/.vifm/Trash on failure.
+
+	      Will  attempt to create the directory if it does not exist.  See
+	      "Trash directory" section below.
+
+       'tuioptions' 'to'
+	      type: charset
+	      default: "ps"
+	      Each flag configures some aspect of TUI appearance.   The	 flags
+	      are:
+	      p - when included:
+		*  file	 list  inside  a pane gets additional single character
+	      padding on left and right sides;
+		* quick view and view mode get single character padding.
+	      s - when included, left and right borders (side  borders,	 hence
+	      "s" character) are visible.
+	      u	 - use Unicode characters in the TUI (Unicode ellipsis instead
+	      of "...").
+
+       'undolevels' 'ul'
+	      type: integer
+	      default: 100
+	      Maximum number of changes that can be undone.   Note  that  here
+	      single  file  operation  is  used as a unit, not operation, i.e.
+	      deletion of 101 files will exceed default limit.
+
+       'vicmd'
+	      type: string
+	      default: "vim"
+	      The actual command used to start vi.  Ampersand sign at the  end
+	      (regardless  whether  it's preceded by space or not) means back-
+	      grounding of command.
+
+	      Background flag is ignored in certain context where  vifm	 waits
+	      for  the	editor	to  finish.  Such contexts include any command
+	      that spawns editor to change list of file names  or  a  command,
+	      with  :rename  being one example.	 `-f` is also appended to pre-
+	      vent forking in such cases, so the command needs to  handle  the
+	      flag.
+
+	      Additionally  `+{num}` and `+'call cursor()'` arguments are used
+	      to position cursor when location is known.
+
+       'viewcolumns'
+	      type: string
+	      default: ""
+	      scope: local
+	      Format string containing list of columns in the view.  When this
+	      option  is  empty, view columns to show are chosen automatically
+	      using sorting keys (see 'sort') as a base.  Value of this option
+	      is  ignored if 'lsview' is set.  See "Column view" section below
+	      for format description.
+
+	      An example of setting the options for both  panes	 (note	:windo
+	      command):
+
+		windo set viewcolumns=-{name}..,6{size},11{perms}
+
+       'vixcmd'
+	      type: string
+	      default: value of 'vicmd'
+	      Same as 'vicmd', but takes precedence over it when running in X.
+
+       'vifminfo'
+	      type: set
+	      default: bookmarks,bmarks
+	      Controls what will be saved in the $VIFM/vifminfo file.
+
+		 bmarks	   - named bookmarks
+		 bookmarks - marks, except special ones like '< and '>
+		 tui	    -  state of the user interface (sorting, number of
+	      windows, quick
+			     view state, active view)
+		 dhistory  - directory history
+		 state	   - file name and dot filters and terminal multiplex-
+	      ers integration
+			     state
+		 cs	   - primary color scheme
+		 savedirs  - save last visited directory (requires dhistory)
+		 chistory  - command line history
+		 shistory  - search history (/ and ? commands)
+		 phistory  - prompt history
+		 fhistory   -  history of local filter (see description of the
+	      "=" normal mode
+			     command)
+		 dirstack  - directory stack overwrites previous stack, unless
+	      stack of
+			     current session is empty
+		 registers - registers content
+		 options   - all options that can be set with the :set command
+	      (obsolete)
+		 filetypes - associated programs and viewers (obsolete)
+		 commands  - user defined commands (see :command  description)
+	      (obsolete)
+
+       'vimhelp'
+	      type: boolean
+	      default: false
+	      Use vim help format.
+
+       'wildmenu' 'wmnu'
+	      type: boolean
+	      default: false
+	      Controls	whether	 possible  matches of completion will be shown
+	      above the command line.
+
+       'wildstyle'
+	      type: enumeration
+	      default: bar
+	      Picks presentation style of wild menu.  Possible values:
+	       - bar   - one-line with left-to-right cursor
+	       - popup - multi-line with top-to-bottom cursor
+
+       'wordchars'
+	      type: string list
+	      default: "1-8,14-31,33-255" (that is all non-whitespace  charac-
+	      ters)
+	      Specifies	 which	characters in command-line mode should be con-
+	      sidered as part of a word.  Value of the option  is  comma-sepa-
+	      rated  list of ranges.  If both endpoints of a range match, sin-
+	      gle endpoint is enough (e.g. "a" = "a-a").  Both	endpoints  are
+	      inclusive.  There are two accepted forms: character representing
+	      itself or number encoding character according  to	 ASCII	table.
+	      In case of ambiguous characters (dash, comma, digit) use numeric
+	      form.  Accepted characters are in the range from 0 to 255.   Any
+	      Unicode character with code greater than 255 is considered to be
+	      part of a word.
+
+	      The option affects Alt-D, Alt-B and Alt-F, but not Ctrl-W.  This
+	      is intentionally to allow two use cases:
+
+	       - Moving by WORDS and deletion by words.
+	       - Moving by words and deletion by WORDS.
+
+	      To get the latter use the following mapping:
+
+		cnoremap <c-w> <a-b><a-d>
+
+	      Also used for abbreviations.
+
+       'wrap' type: boolean
+	      default: true
+	      Controls whether to wrap text in quick view.
+
+       'wrapscan' 'ws'
+	      type: boolean
+	      default: true
+	      Searches wrap around end of the list.
+
+Mappings
+       Map arguments
+
+       LHS  of	mappings  can  be preceded by arguments which take the form of
+       special sequences:
+
+       <silent>
+	      Postpone UI updates until RHS is completely processed.
+
+       <wait> In case of builtin mapping causing conflict for  a  user-defined
+	      mapping  (e.g.,  `t`  builtin  to	 a  partially typed `ta` user-
+	      defined mapping), ignore the builtin mapping and wait for	 input
+	      indefinitely  as	opposed to default behaviour of triggering the
+	      builtin mapping after a delay defined by 'timeoutlen'.  Example:
+
+		nnoremap <wait> tw :set wrap!<cr>
+		nnoremap <wait> tn :set number!<cr>
+		nnoremap <wait> tr :set relativenumber!<cr>
+
+       Special sequences
+
+       Since it's not easy to enter special characters there are several  spe-
+       cial sequences that can be used in place of them.  They are:
+
+       <cr>   Enter key.
+
+       <esc>  Escape key.
+
+       <space>
+	      Space key.
+
+       <lt>   Less-than character (<).
+
+       <nop>  provides a way to disable a mapping (by mapping it to <nop>).
+
+       <bs>   Backspace key (see key conflict description below).
+
+       <tab> <s-tab>
+	      Tabulation and Shift+Tabulation keys.
+
+       <home> <end>
+	      Home/End.
+
+       <left> <right> <up> <down>
+	      Arrow keys.
+
+       <pageup> <pagedown>
+	      PageUp/PageDown.
+
+       <del> <delete>
+	      Delete  key.   <del>  and	 <delete>  mean	 different  codes, but
+	      <delete> is more common.
+
+       <insert>
+	      Insert key.
+
+       <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_>
+	      Control + some key (see key conflict description below).
+
+       <c-@>  only for *nix
+	      Control + Space.
+
+       <a-a>,<a-b>,...,<a-z>
+	      <m-a>,<m-b>,...,<m-z> Alt + some key.
+
+       <a-c-a>,<a-c-b>,...,<a-c-z>
+	      <m-c-a>,<m-c-b>,...,<m-c-z> only for *nix
+	      Alt + Ctrl + some key.
+
+       <f0> - <f63>
+	      Functional keys.
+
+       <c-f1> - <c-f12>
+	      only for MS-Windows
+	      functional keys with Control key pressed.
+
+       <a-f1> - <a-f12>
+	      only for MS-Windows
+	      functional keys with Alt key pressed.
+
+       <s-f1> - <s-f12>
+	      only for MS-Windows
+	      functional keys with Shift key pressed.
+
+       Note that due to the way terminals process their	 input,	 several  key-
+       board keys might be mapped to single key code, for example:
+
+	 - <cr> and <c-m>;
+
+	 - <tab> and <c-i>;
+
+	 - <c-h> and <bs>;
+
+	 - etc.
+
+       Most  of	 the  time  they are defined consistently and don't cause sur-
+       prises, but <c-h> and <bs> are treated differently in  different	 envi-
+       ronments (although they match each other all the time), that's why they
+       correspond to different keys in vifm.  As a consequence, if you map <c-
+       h>  or <bs> be sure to repeat the mapping with the other one so that it
+       works in all environments.  Alternatively, provide your mapping in  one
+       form and add one of the following:
+
+	 " if mappings with <c-h> in the LHS work
+	 map <c-h> <bs>
+	 " if mappings with <bs> in the LHS work
+	 map <bs> <c-h>
+
+       Whitespace
+
+       vifm  removes  whitespace  characters  at the beginning and end of com-
+       mands.  That's why you may want to use <space> at the  end  of  rhs  in
+       mappings.  For example:
+
+	 cmap <f1> man<space>
+
+       will  put  "man " in line when you hit the <f1> key in the command line
+       mode.
+
+Expression syntax
+       Supported expressions is a subset of what VimL provides.
+
+       Expression syntax summary, from least to most significant:
+
+       expr1	  expr2
+		  expr2 || expr2 ..	  logical OR
+
+       expr2	  expr3
+		  expr3 && expr3 ..	  logical AND
+
+       expr3	  expr4
+		  expr4 == expr4	  equal
+		  expr4 != expr4	  not equal
+		  expr4 >  expr4	  greater than
+		  expr4 >= expr4	  greater than or equal
+		  expr4 <  expr4	  smaller than
+		  expr4 <= expr4	  smaller than or equal
+
+       expr4	  expr5
+		  expr5 + expr5 ..	  number addition
+		  expr5 - expr5 ..	  number subtraction
+
+       expr5	  expr6
+		  expr6 . expr6 ..	  string concatenation
+
+       expr6	  expr7
+		  - expr6		  unary minus
+		  + expr6		  unary plus
+		  ! expr6		  logical NOT
+
+       expr7	  number		  number constant
+		  "string"		  string constant, \ is special
+		  'string'		  string constant, ' is doubled
+		  &option		  option value
+		  $VAR			  environment variable
+		  v:var			  builtin variable
+		  function(expr1, ...)	  function call
+		  (expr1)		  nested expression
+
+       ".." indicates that the operations in this level can be concatenated.
+
+       expr1
+       -----
+       expr2 || expr2
+
+       Arguments are converted to numbers before evaluation.
+
+       Result is non-zero if at least one of arguments is non-zero.
+
+       It's right associative and with	short-circuiting,  so  sub-expressions
+       are  evaluated  from  left to right until result of whole expression is
+       determined (i.e., until first non-zero) or end of the expression.
+
+       expr2
+       -----
+       expr3 && expr3
+
+       Arguments are converted to numbers before evaluation.
+
+       Result is non-zero only if both arguments are non-zero.
+
+       It's right associative and with	short-circuiting,  so  sub-expressions
+       are  evaluated  from  left to right until result of whole expression is
+       determined (i.e., until first zero) or end of the expression.
+
+       expr3
+       -----
+       expr4 {cmp} expr4
+
+       Compare two expr4 expressions, resulting in a  0	 if  it	 evaluates  to
+       false or 1 if it evaluates to true.
+
+       equal		       ==
+       not equal	       !=
+       greater than	       >
+       greater than or equal   >=
+       smaller than	       <
+       smaller than or equal   <=
+
+       Examples:
+
+	 'a' ==	 'a'	     == 1
+	 'a' >	 'b'	     == 1
+	 'a' ==	 'b'	     == 0
+	 '2' >	 'b'	     == 0
+	  2  >	 'b'	     == 1
+	  2  >	 '1b'	     == 1
+	  2  >	 '9b'	     == 0
+	 -1  == -'1'	     == 1
+	  0  ==	 '--1'	     == 1
+
+       expr4
+       -----
+       expr5  +	 expr5 ..     number addition expr5 - expr5 ..	   number sub-
+       traction
+
+       Examples:
+
+	 1 + 3 - 3	    == 1
+	 1 + '2'	    == 3
+
+       expr5
+       -----
+       expr6 . expr6 ..	    string concatenation
+
+       Examples:
+
+	 'a' . 'b'	     == 'ab'
+	 'aaa' . '' . 'c'    == 'aaac'
+
+       expr6
+       -----
+
+       - expr6		    unary minus
+       + expr6		    unary plus
+       ! expr6		    logical NOT
+
+       For '-' the sign of the number is changed.
+       For '+' the number is unchanged.
+       For '!' non-zero becomes zero, zero becomes one.
+
+       A String will be converted to a Number first.
+
+       These operations can be repeated and mixed.  Examples:
+
+	  --9		     == 9
+	 ---9		     == -9
+	  -+9		     == 9
+	  !-9		     == 0
+	  !''		     == 1
+	 !'x'		     == 0
+	  !!9		     == 1
+
+       expr7
+       -----
+
+       number		    number constant
+       -----
+
+       Decimal number.	Examples:
+
+	 0		     == 0
+	 0000		     == 0
+	 01		     == 1
+	 123		     == 123
+	 10000		     == 10000
+
+       string
+       ------
+       "string"		    string constant
+
+       Note that double quotes are used.
+
+       A string constant accepts these special characters:
+	 \b	 backspace <bs>
+	 \e	 escape <esc>
+	 \n	 newline
+	 \r	 return <cr>
+	 \t	 tab <tab>
+	 \\	 backslash
+	 \"	 double quote
+
+       Examples:
+
+	 "\"Hello,\tWorld!\""
+	 "Hi,\nthere!"
+
+       literal-string
+       --------------
+       'string'		    string constant
+
+       Note that single quotes are used.
+
+       This string is taken as it is.  No backslashes are removed  or  have  a
+       special	meaning.   The only exception is that two quotes stand for one
+       quote.
+
+       Examples:
+
+	 'All\slashes\are\saved.'
+	 'This string contains doubled single quotes ''here'''
+
+       option
+       ------
+       &option		     option value (local one is preferred, if  exists)
+       &g:option	      global  option value &l:option		 local
+       option value
+
+       Examples:
+
+	 echo 'Terminal size: '.&columns.'x'.&lines
+	 if &columns > 100
+
+       Any valid option name can be used here (note that "all" in  ":set  all"
+       is a pseudo option).  See ":set options" section above.
+
+       environment variable
+       --------------------
+       $VAR		     environment variable
+
+       The  String value of any environment variable.  When it is not defined,
+       the result is an empty string.
+
+       Examples:
+
+	 'This is my $PATH env: ' . $PATH
+	 'vifmrc at ' . $MYVIFMRC . ' is used.'
+
+       builtin variable
+       --------------------
+       v:var		     builtin variable
+
+       Information exposed by vifm for use in scripting.
+
+       v:count
+	 count passed to : command, 0 by default.  Can be used in mappings  to
+       pass
+	 count to a different command.
+       v:count1
+	 same as v:count, but 1 by default.
+       v:servername
+	 See below.
+
+       function call
+       -------------
+       function(expr1, ...)  function call
+
+       See "Functions" section below.
+
+       Examples:
+
+	 "'" . filetype('.') . "'"
+	 filetype('.') == 'reg'
+
+       expression nesting
+       ------------------
+       (expr1)		     nested expression
+
+       Groups  any other expression of arbitrary complexity enforcing order in
+       which operators are applied.
+
+
+Functions
+       USAGE		     RESULT	 DESCRIPTION
+
+       chooseopt({opt})	     String	 Queries choose parameters  passed  on
+       startup.
+       executable({expr})     Integer	  Checks whether {expr} command avail-
+       able.
+       expand({expr})	     String	 Expands special keywords in {expr}.
+       filetype({fnum} [, {resolve}])
+			     String	 Returns file type from position.
+       fnameescape({expr})   String	 Escapes {expr} for use in a :command.
+       getpanetype()	     String	 Returns type of current pane.
+       has({property})	     Integer	 Checks whether	 instance  has	{prop-
+       erty}.
+       layoutis({type})	      Integer	   Checks  whether  layout  is of type
+       {type}.
+       paneisat({loc})	     Integer	 Checks whether	 current  pane	is  at
+       {loc}.
+       system({command})      String	   Executes  shell command and returns
+       its output.
+       tabpagenr([{arg}])    Integer	 Returns number	 of  current  or  last
+       tab.
+       term({command})	      String	   Like	 system(), but for interactive
+       commands.
+
+       chooseopt({opt})
+
+       Retrieves values of options related to file choosing.  {opt} can be one
+       of:
+	   files      returns argument of --choose-files or empty string
+	   dir	      returns argument of --choose-dir or empty string
+	   cmd	      returns argument of --on-choose or empty string
+	   delimiter  returns argument of --delimiter or the default one (\n)
+
+       executable({expr})
+
+       If {expr} is absolute or relative path, checks whether path destination
+       exists and refers to an executable, otherwise  checks  whether  command
+       named  {expr}  is  present  in directories listed in $PATH.  Checks for
+       various	executable  extensions	on  Windows.   Returns	boolean	 value
+       describing result of the check.
+
+       Example:
+
+	 " use custom default viewer script if it's available and installed
+	 " in predefined system directory, otherwise try to find it elsewhere
+	 if executable('/usr/local/bin/defviewer')
+	     fileview * /usr/local/bin/defviewer %c
+	 else
+	     if executable('defviewer')
+		 fileview * defviewer %c
+	     endif
+	 endif
+
+       expand({expr})
+
+       Expands	environment variables and macros in {expr} just like it's done
+       for command-line commands.  Returns a  string.	See  "Command  macros"
+       section above.
+
+       Examples:
+
+	 " percent sign
+	 :echo expand('%%')
+	 " the last part of directory name of the other pane
+	 :echo expand('%D:t')
+	 " $PATH environment variable (same as `:echo $PATH`)
+	 :echo expand('$PATH')
+
+       filetype({fnum}[,{resolve}])
+
+       The  result  is	a string, which represents file type and is one of the
+       list:
+	   exe	   executables
+	   reg	   regular files
+	   link	   symbolic links
+	   broken  broken symbolic links (appears only when resolving)
+	   dir	   directories
+	   char	   character devices
+	   block   block devices
+	   fifo	   pipes
+	   sock	   *nix domain sockets
+	   ?	   unknown file type (should not normally appear)
+
+       The result can also be an empty string in case of invalid argument.
+
+       Parameter {fnum} can have following values:
+	   - '.' to get type of file under the cursor in the active pane
+	   - numerical value base 1 to get type of file on specified line num-
+       ber
+
+       Optional	 parameter  {resolve}  is  treated  as a boolean and specifies
+       whether symbolic links should be resolved.
+
+       fnameescape({expr})
+
+       Escapes parameter to make it suitable for use as an argument of a :com-
+       mand.  List of escaped characters includes %, which is doubled.
+
+       Usage example:
+
+	 " navigate to most recently modified file in current directory
+	 execute 'goto' fnameescape(system('ls -t | head -1'))
+
+       getpanetype()
+
+       Retrieves string describing type of current pane.  Possible return val-
+       ues:
+	   regular	regular file listing of some directory
+	   custom	custom file list (%u)
+	   very-custom	very custom file list (%U)
+	   tree		tree view
+
+       has({property})
+
+       Allows examining internal parameters from scripts to  e.g.  figure  out
+       environment  in which application is running.  Returns 1 if property is
+       true/present, otherwise 0 is returned.  Currently the following proper-
+       ties are supported (anything else will yield 0):
+	   unix	 runs in *nix-like environment (including Cygwin)
+	   win	 runs on Windows
+
+       Usage example:
+
+	 " skip user/group on Windows
+	 if !has('win')
+	     let $RIGHTS = '%10u:%-7g '
+	 endif
+
+	 execute 'set' 'statusline="  %t%= %A '.$RIGHTS.'%15E %20d  "'
+
+       layoutis({type})
+
+       Checks  whether current interface layout is {type} or not, where {type}
+       can be:
+	   only	   single-pane mode
+	   split   double-pane mode (either vertical or horizon split)
+	   vsplit  vertical split (left and right panes)
+	   hsplit  horizontal split (top and bottom panes)
+
+       Usage example:
+
+	 " automatically split vertically before enabling preview
+	 :nnoremap w :if layoutis('only') | vsplit | endif | view!<cr>
+
+       paneisat({loc})
+
+       Checks whether position of active pane in current layout matches one of
+       the following locations:
+	   top	   pane reaches top border
+	   bottom  pane reaches bottom border
+	   left	   pane reaches left border
+	   right   pane reaches right border
+
+       system({command})
+
+       Runs  the command in shell and returns its output (joined standard out-
+       put and standard error streams).	 All trailing newline  characters  are
+       stripped	 to  allow  easy  appending  to command output.	 Ctrl-C should
+       interrupt the command.
+
+       Use this function to consume output of  external	 commands  that	 don't
+       require	user interaction and term() for interactive commands that make
+       use of terminal and are capable of handling stream redirection.
+
+       Usage example:
+
+	 " command to enter .git/ directory of git-repository (when ran inside one)
+	 command! cdgit :execute 'cd' system('git rev-parse --git-dir')
+
+       tabpagenr([{arg}])
+
+       When called without arguments returns number of current tab  page  base
+       one.
+
+       When called with "$" as an argument returns number of the last tab page
+       base one, which is the same as number of tabs.
+
+       term({command})
+
+       Same as system() function, but user interface is	 shutdown  during  the
+       execution  of  the  command, which makes sure that external interactive
+       applications won't affect the way terminal is used by vifm.
+
+       Usage example:
+
+	 " command to change directory by picking it via fzf
+	 command! fzfcd :execute 'cd' "'".term('find -type d | fzf 2> /dev/tty')."'"
+
+Menus and dialogs
+       When navigating to some path from a menu there is a difference  in  end
+       location	 depending  on	whether path has trailing slash or not.	 Files
+       normally don't have trailing slashes so "file/" won't work and one  can
+       only  navigate  to  a  file anyway.  On the other hand with directories
+       there are two options: navigate to a directory or  inside  of  it.   To
+       allow both use cases, the first one is used on paths like "dir" and the
+       second one for "dir/".
+
+       Commands
+
+       :range navigate to a menu line.
+
+       :exi[t][!] :q[uit][!] :x[it][!]
+	      leave menu mode.
+
+       :noh[lsearch]
+	      reset search match highlighting.
+
+       :w[rite] {dest}
+	      write all menu lines into file specified by {dest}.
+
+       General
+
+       j, Ctrl-N - move down.
+       k, Ctrl-P - move up.
+       Enter, l - select and exit the menu.
+       Ctrl-L - redraw the menu.
+
+       Escape, Ctrl-C, ZZ, ZQ, q - quit.
+
+       In all menus
+
+       The following set of keys has the same meaning as in normal mode.
+
+       Ctrl-B, Ctrl-F
+       Ctrl-D, Ctrl-U
+       Ctrl-E, Ctrl-Y
+       /, ?
+       n, N
+       [count]G, [count]gg
+       H, M, L
+       zb, zt, zz
+
+       zh - scroll menu items [count] characters to the right.
+       zl - scroll menu items [count] characters to the left.
+       zH - scroll menu items half of screen width characters to the right.
+       zL - scroll menu items half of screen width characters to the left.
+
+       : - enter command line mode for menus (currently only :exi[t], :q[uit],
+       :x[it] and :{range} are supported).
+
+       b - interpret content of the menu as list of paths and use it to create
+       custom view in place of previously active  pane.	  See  "Custom	views"
+       section below.
+       B - same as above, but creates unsorted view.
+
+       v  - load menu content into quickfix list of the editor (Vim compatible
+       by assumption) or if list doesn't  have	separators  after  file	 names
+       (colons) open each line as a file name.
+
+
+       Below  is  description of additional commands and reaction on selection
+       in some menus and dialogs.
+
+       Apropos menu
+
+       Selecting menu item runs man on a given topic.  Menu  won't  be	closed
+       automatically to allow view several pages one by one.
+
+       Command-line mode abbreviations menu
+
+       Type dd on an abbreviation to remove it.
+
+       c  leaves menu preserving file selection and inserts right-hand side of
+       selected command into command-line.
+
+       Color scheme menu
+
+       Selecting name of a color scheme applies it the same way as  if	":col-
+       orscheme <name>" was executed on the command-line.
+
+       Commands menu
+
+       Selecting command executes it with empty arguments (%a).
+
+       dd on a command to remove.
+
+       Marks menu
+
+       Selecting mark navigates to it.
+
+       dd on a mark to remove it.
+
+       Bookmarks menu
+
+       Selecting a bookmark navigates to it.
+
+       Type dd on a bookmark to remove it.
+
+       gf and e also work to make it more convenient to bookmark files.
+
+       Trash (:lstrash) menu
+
+       r on a file name to restore it from trash.
+
+       dd deletes file under the cursor.
+
+       Trashes menu
+
+       dd empties selected trash in background.
+
+       Directory history and Trashes menus
+
+       Selecting  directory  name will change directory of the current view as
+       if :cd command was used.
+
+       Directory stack menu
+
+       Selecting directory name will rotate stack to  put  selected  directory
+       pair at the top of the stack.
+
+       Filetype menu
+
+       Commands from vifmrc or typed in command-line are displayed above empty
+       line.  All commands below empty line are from .desktop files.
+
+       c leaves menu preserving file selection and inserts command after :! in
+       command-line mode.
+
+       Grep, find, locate, bookmarks and user menu with navigation (%M macro)
+
+       gf  -  navigate	previously  active  view  to  currently selected item.
+       Leaves menu mode except for grep menu.  Pressing Enter key has the same
+       effect.
+
+       e - open selected path in the editor, stays in menu mode.
+
+       c  - leave menu preserving file selection and insert file name after :!
+       in command-line mode.
+
+       User menu without navigation (%m macro)
+
+       c leaves menu preserving file selection and inserts whole line after :!
+       in command-line mode.
+
+       Grep menu
+
+       Selecting  file	(via Enter or l key) opens it in editor set by 'vicmd'
+       at given line number.  Menu won't  be  closed  automatically  to	 allow
+       viewing more than one result.
+
+       See above for "gf" and "e" keys description.
+
+       Command-line history menu
+
+       Selecting  an item executes it as command-line command, search query or
+       local filter.
+
+       c leaves menu preserving file selection and inserts line into  command-
+       line of appropriate kind.
+
+       Volumes menu
+
+       Selecting  a drive navigates previously active pane to the root of that
+       drive.
+
+       Fileinfo dialog
+
+       Enter, q - close dialog
+
+       Sort dialog
+
+       h, Space - switch ascending/descending.
+       q - close dialog
+
+       One shortcut per sorting key (see the dialog).
+
+       Attributes (permissions or properties) dialog
+
+       h, Space - check/uncheck.
+       q - close dialog
+
+       Item states:
+
+       - * - checked flag.
+
+       - X - means that it has different value for files in selection.
+
+       - d (*nix only) - (only for execute flags) means u-x+X, g-x+X or	 o-x+X
+	 argument  for	the  chmod program.  If you're not on OS X and want to
+	 remove execute permission bit from all files,	but  preserve  it  for
+	 directories, set all execute flags to 'd' and check 'Set Recursively'
+	 flag.
+
+       Jobs menu
+
+       dd requests cancellation of job under cursor.  The job won't be removed
+       from  the list, but marked as being cancelled (if cancellation was suc-
+       cessfully requested).  A message will pop up if	the  job  has  already
+       stopped.	  Note	that on Windows cancelling external programs like this
+       might not work, because their parent shell doesn't have any windows.
+
+       e key displays errors of selected job if any were collected.  They  are
+       displayed  in a new menu, but you can get back to jobs menu by pressing
+       h.
+
+
+       Undolist menu
+
+       r - reset undo position to group under the cursor.
+
+
+       Media menu
+
+       r - reload the list.
+
+       m - mount/unmount device (cursor should be positioned  on  lines	 under
+       device information).
+
+
+Custom views
+       Definition
+
+       Normally	 file views contain list of files from a single directory, but
+       sometimes it's useful to populate them with list of files that  do  not
+       belong to the same directory, which is what custom views are for.
+
+       Presentation
+
+       Custom  views are still related to directory they were in before custom
+       list was loaded.	 Path to that directory (original  directory)  can  be
+       seen in the title of a custom view.
+
+       Files in same directory have to be named differently, this doesn't hold
+       for custom views thus seeing just file names might be rather confusing.
+       In order to give an idea where files come from and when possible, rela-
+       tive paths to original directory of the view  is	 displayed,  otherwise
+       full path is used instead.
+
+       Custom views normally don't contain any inexistent files.
+
+       Navigation
+
+       Custom  views  have  some  differences related to navigation in regular
+       views.
+
+       gf - acts similar to gf on symbolic links and navigates to the file  at
+       its real
+	    location.
+
+       h  -  go	 to  closes  parent node in tree view, otherwise return to the
+       original directory.
+
+       gh - return to the original directory.
+
+       Opening ".." entry also causes return to the original directory.
+
+       History
+
+       Custom list exists only while it's visible, once left one can't	return
+       to it, so there is no appearances of it in any history.
+
+       Filters
+
+       Only  local  filter  affects content of the view.  This is intentional,
+       presumably if one loads list, precisely that list should	 be  displayed
+       (except for inexistent paths, which are ignored).
+
+       Search
+
+       Although	 directory  names are visible in listing, they are not search-
+       able.  Only file names are taken into  account  (might  be  changed  in
+       future, searching whole lines seems quite reasonable).
+
+       Sorting
+
+       Contrary	 to search sorting by name works on whole visible part of file
+       path.
+
+       Highlight
+
+       Whole file name is highlighted as one entity, even if there are	direc-
+       tory elements.
+
+       Updates
+
+       Reloads	can  occur,  though  they are not automatic due to files being
+       scattered among different places.  On a reload,	inexistent  files  are
+       removed and meta-data of all other files is updated.
+
+       Once  custom  view forgets about the file, it won't add it back even if
+       it's created again.  So not seeing file previously affected by an oper-
+       ation, which was undone is normal.
+
+       Operations
+
+       All  operations	that  add  files  are forbidden for custom views.  For
+       example, moving/copying/putting files into a custom view doesn't	 work,
+       because it doesn't make much sense.
+
+       On  the	other  hand,  operations  that use files of a custom view as a
+       source (e.g. yanking, copying, moving file from custom view,  deletion)
+       and operations that modify names are all allowed.
+
+Compare views
+       Kinds
+
+       :compare can produce four different results depending on arguments:
+	- single compare view (ofone and either listall or listdups);
+	- single custom view (ofone and listunique);
+	- two compare views (ofboth and either listall or listdups);
+	- two custom views (ofboth and listunique).
+
+       The  first  two display files of one file system tree.  Here duplicates
+       are files that have at least one copy in the same tree.	The other  two
+       kinds  of  operation  compare  two trees, in which duplicates are files
+       that are found in both trees.
+
+       Lists of unique files are presented in custom views because there is no
+       file  grouping  to  preserve  as all file ids are guaranteed to be dis-
+       tinct.
+
+       Creation
+
+       Arguments passed to :compare form four categories  each	with  its  own
+       prefix and is responsible for particular property of operation.
+
+       Which files to compare:
+	- ofboth - compares files of two panes against each other;
+	- ofone	 - compares files of the same directory.
+
+       How files are compared:
+	- byname     - by their name only;
+	- bysize     - only by their size;
+	- bycontents - by combination of size and hash of file contents.
+
+       Which files to display:
+	- listall    - all files;
+	- listunique - unique files only;
+	- listdups   - only duplicated files.
+
+       How results are grouped (has no effect if "ofone" specified):
+	-  groupids   - files considered identical are always adjacent in out-
+       put;
+	- grouppaths - file system ordering is preferred  (this	 also  enables
+       displaying identically named files as mismatches).
+
+       Which files to omit:
+	- skipempty - ignore empty files.
+
+       Each argument can appear multiple times, the rightmost one of the group
+       is considered.  Arguments alter default behaviour instead of substitut-
+       ing it.
+
+       Examples
+
+       The  defaults  corresponds to probably the most common use case of com-
+       paring files in two trees with grouping by paths, so the following  are
+       equivalent:
+
+	 :compare
+	 :compare bycontents grouppaths
+	 :compare bycontents listall ofboth grouppaths
+
+       Another use case is to find duplicates in the current sub-tree:
+
+	 :compare listdups ofone
+
+       The following command lists files that are unique to each pane:
+
+	 :compare listunique
+
+       Look
+
+       The  view  can't switch to ls-like view as it's unable to display diff-
+       like data.
+
+       Comparison views have second column displaying id of  the  file,	 files
+       with  same  id are considered to be equal.  The view columns configura-
+       tion is predefined.
+
+       Behaviour
+
+       When two views are being compared  against  each	 other	the  following
+       changes to the regular behaviour apply:
+	- views are scrolled synchronously (as if 'scrollbind' was set);
+	- views' cursors are synchronized;
+	- local filtering is disabled (its results wouldn't be meaningful);
+	-  zd excludes groups of adjacent identical files, 1zd gives usual be-
+       haviour;
+	- sorting is permanently disabled (ordering is fixed);
+	- removed files hide their counter pairs;
+	- exiting one of the views terminates the other immediately;
+	- renaming files isn't blocked, but isn't taken into account and might
+       require regeneration of comparison;
+	-  entries  which indicate absence of equivalent file have empty names
+       and can be matched as such;
+	- when unique files of both views  are	listed	custom	views  can  be
+       empty, this absence of unique files is stated clearly.
+
+       One  compare view has similar properties (those that are applicable for
+       single pane).
+
+       Files are gathered in this way:
+	- recursively starting at current location of the view;
+	- dot files are excluded if view hides them at the moment of  compari-
+       son;
+	- directories are not taken into account;
+	- symbolic links to directories are ignored.
+
+Startup
+       On  startup  vifm determines several variables that are used during the
+       session.	 They are determined in the order they appear below.
+
+       On *nix systems $HOME is normally present and used as is.   On  Windows
+       systems	vifm  tries  to	 find  correct home directory in the following
+       order:
+	- $HOME variable;
+	- $USERPROFILE variable (on Windows only);
+	- a combination of $HOMEDRIVE  and  $HOMEPATH  variables  (on  Windows
+       only).
+
+       vifm tries to find correct configuration directory by checking the fol-
+       lowing places:
+	- $VIFM variable;
+	- parent directory of the executable file (on Windows only);
+	- $HOME/.vifm directory;
+	- $APPDATA/Vifm directory (on Windows only);
+	- $XDG_CONFIG_HOME/vifm directory;
+	- $HOME/.config/vifm directory.
+
+       vifm tries to find correct configuration file by checking the following
+       places:
+	- $MYVIFMRC variable;
+	- vifmrc in parent directory of the executable file (on Windows only);
+	- $VIFM/vifmrc file.
+
+Configure
+       See  "Startup"  section	above  for the explanations on $VIFM and $MYV-
+       IFMRC.
+
+       The vifmrc file	contains  commands  that  will	be  executed  on  vifm
+       startup.	 There are two such files: global and local.  Global one is at
+       {prefix}/etc/vifm/vifmrc, see $MYVIFMRC variable	 description  for  the
+       search  algorithm  used	to find local vifmrc.  Global vifmrc is loaded
+       before the local one, so that the later one can redefine anything  con-
+       figured globally.
+
+       Use vifmrc to set settings, mappings, filetypes etc.  To use multi line
+       commands precede each next line with a slash (whitespace	 before	 slash
+       is  ignored,  but  all  spaces at the end of the lines are saved).  For
+       example:
+
+	 set
+	     \smartcase
+
+       equals "setsmartcase".  When
+
+	 set<space here>
+	     \ smartcase
+
+       equals "set  smartcase".
+
+       The $VIFM/vifminfo file contains session settings.  You may edit it  by
+       hand  to change the settings, but it's not recommended to do that, edit
+       vifmrc instead.	You  can  control  what	 settings  will	 be  saved  in
+       vifminfo by setting 'vifminfo' option.  Vifm always writes this file on
+       exit unless 'vifminfo' option is empty.	 Marks,	 bookmarks,  commands,
+       histories,  filetypes, fileviewers and registers in the file are merged
+       with vifm configuration (which has bigger priority).
+
+       Generally, runtime configuration has bigger  priority  during  merging,
+       but there are some exceptions:
+
+	 - directory  stack stored in the file is not overwritten unless some-
+	   thing is changed in vifm session that performs merge;
+
+	 - each mark or bookmark is marked with a  timestamp,  so  that	 newer
+	   value is not overwritten by older one, thus no matter from where it
+	   comes, the newer one wins.
+
+       The $VIFM/scripts directory can contain shell scripts.	vifm  modifies
+       its  PATH  environment  variable	 to let user run those scripts without
+       specifying full path.  All subdirectories of the $VIFM/scripts will  be
+       added  to  PATH too.  Script in a subdirectory overlaps script with the
+       same name in all its parent directories.
+
+       The $VIFM/colors/  and  {prefix}/etc/vifm/colors/  directories  contain
+       color  schemes.	Available color schemes are searched in that order, so
+       on name conflict the one in $VIFM/colors/ wins.
+
+       Each color scheme should have ".vifm" extension.	 This wasn't the  case
+       before and for this reason the following rules apply during lookup:
+
+	 - if  there  is  no  file with .vifm extension, all regular files are
+	   listed;
+
+	 - otherwise only files with .vifm  extension  are  listed  (with  the
+	   extension being truncated).
+
+Automatic FUSE mounts
+       vifm has a builtin support of automated FUSE file system mounts.	 It is
+       implemented using file associations  mechanism.	 To  enable  automated
+       mounts, one needs to use a specially formatted program line in filetype
+       or filextype commands.  Currently two formats are supported:
+
+       1) FUSE_MOUNT This format should be used in case when  all  information
+       needed  for  mounting all files of a particular type is the same.  E.g.
+       mounting of tar files don't require any file specific options.
+
+       Format line:
+	 FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%FOREGROUND]
+
+       Example filetype command:
+
+	 :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
+
+       2) FUSE_MOUNT2 This format allows one to use specially formatted	 files
+       to  perform  mounting  and  is useful for mounting remotes, for example
+       remote file systems over ftp or ssh.
+
+       Format line:
+	 FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]
+
+       Example filetype command:
+
+	 :filetype FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
+
+       Example file content:
+
+	 root@127.0.0.1:/
+
+       All % macros are expanded by vifm at runtime  and  have	the  following
+       meaning:
+	 - %SOURCE_FILE is replaced by full path to selected file;
+	 - %DESTINATION_DIR is replaced by full path to mount directory, which
+       is created by vifm basing on the value of 'fusehome' option;
+	 - %PARAM value is filled from the first line of  file	(whole	line),
+       though in the future it can be changed to whole file content;
+	 -  %FOREGROUND	 means that you want to run mount command as a regular
+       command (required to be able to provide input  for  communication  with
+       mounter in interactive way).
+
+       %FOREGROUND  is an optional macro.  Other macros are not mandatory, but
+       mount commands likely won't work without them.
+
+       %CLEAR is obsolete name of %FOREGROUND, which is still  supported,  but
+       might be removed in future.  Its use is discouraged.
+
+       The  mounted  FUSE  file systems will be automatically unmounted in two
+       cases:
+
+	 - when vifm quits (with ZZ, :q, etc. or when killed by signal);
+
+	 - when you explicitly leave mount point going up to its parent direc-
+	   tory	 (with h, Enter on "../" or ":cd ..") and other pane is not in
+	   the same directory or its child directories.
+
+View look
+       vifm supports displaying of file list view in two different ways:
+
+	 - in a table mode, when multiple columns  can	be  set	 using	'view-
+	   columns' option (see "Column view" section below for details);
+
+	 - in  a  multicolumn list manner which looks almost like `ls -x` com-
+	   mand output (see "ls-like view" section below for details).
+
+       The look is local for each view and can be chosen by changing value  of
+       the 'lsview' boolean option.
+
+       Depending  on view look some of keys change their meaning to allow more
+       natural cursor moving.  This concerns mainly h, j, k, l and other simi-
+       lar navigation keys.
+
+       Also  some of options can be ignored if they don't affect view display-
+       ing in selected look.  For example value of 'viewcolumns' when 'lsview'
+       is set.
+
+ls-like view
+       When this view look is enabled by setting 'lsview' option on, vifm will
+       display files in multiple columns.  Number of columns  depends  on  the
+       length  of  the	longest	 file name present in current directory of the
+       view.  Whole file list is automatically reflowed on  directory  change,
+       terminal or view resize.
+
+       View looks close to output of `ls -x` command, so files are listed left
+       to right in rows.
+
+       In this mode file manipulation commands (e.g. d) don't  work  line-wise
+       like  they  do in Vim, since such operations would be uncommon for file
+       manipulation tasks.  Thus, for example, dd  will	 remove	 only  current
+       file.
+
+       By  default the view is filled by lines, 'lsoptions' can be used to get
+       filling by columns.
+
+       Note that tree-view and compare view inhibit ls-like view.
+
+Column view
+       View columns are described by a comma-separated list of column descrip-
+       tions, each of which has the following format
+	   [ '-' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type '}' '.'{0,3}
+       where fw stands for full width and tw stands for text width.
+
+       So it basically consists of four parts:
+	1. Optional alignment specifier
+	2. Optional width specifier
+	3. Mandatory column name
+	4. Optional cropping specifier
+
+       Alignment specifier
+
+       It's  an	 optional  minus  or  asterisk sign as the first symbol of the
+       string.
+
+       Specifies type of text alignment within a column.  Three types are sup-
+       ported:
+
+       - left align
+
+	   set viewcolumns=-{name}
+
+       - right align (default)
+
+	   set viewcolumns={name}
+
+       - dynamic align
+
+	 It's  like  left alignment, but when the text is bigger than the col-
+	 umn, the alignment is made at the right (so the part of the field  is
+	 always visible).
+
+	   set viewcolumns=*{name}
+
+       Width specifier
+
+       It's  a	number	followed  by  a	 percent sign, two numbers (second one
+       should be less than or equal to the first one) separated with a dot  or
+       a single number.
+
+       Specifies column width and its units. There are three size types:
+
+       - absolute size - column width is specified in characters
+
+	   set viewcolumns=-100{name},20.15{ext}
+
+	 results  in  two  columns  with  lengths of 100 and 20 and a reserved
+	 space of five characters on the left of second column.
+
+       - relative (percent) size - column width is specified  in  percents  of
+	 view width
+
+	   set viewcolumns=-80%{name},15%{ext},5%{mtime}
+
+	 results  in three columns with lengths of 80/100, 15/100 and 5/100 of
+	 view width.
+
+       - auto size (default) - column width is automatically determined
+
+	   set viewcolumns=-{name},{ext},{mtime}
+
+	 results in three columns with length of  one  third  of  view	width.
+	 There	is no size adjustment to content, since it will slow down ren-
+	 dering.
+
+       Columns of different sizing types can be	 freely	 mixed	in  one	 view.
+       Though  sometimes  some	of columns can be seen partly or be completely
+       invisible if there is not enough space to display them.
+
+       Column name
+
+       This is just a sort key surrounded with curly braces or {root}, e.g.
+
+	 {name},{ext},{mtime}
+
+       {name} and {iname} keys are the same and present both  for  consistency
+       with 'sort' option.
+
+       Following keys don't have corresponding sorting keys:
+
+	 - {root} - display name without extension (as a complement for {ext})
+
+       Empty  curly braces ({}) are replaced with the default secondary column
+       for primary sort key. So after the next command view will be  displayed
+       almost  as if 'viewcolumns' is empty, but adding ellipsis for long file
+       names:
+
+	 set viewcolumns=-{name}..,6{}.
+
+       Cropping specifier
+
+       It's from one to three dots after closing curly brace in column format.
+
+       Specifies type of text truncation if it	doesn't	 fit  in  the  column.
+       Currently three types are supported:
+
+	 - truncation - text is truncated
+
+	     set viewcolumns=-{name}.
+
+	   results  in	truncation  of	names that are too long too fit in the
+	   view.
+
+	 - adding of ellipsis - ellipsis on the left or right are  added  when
+	   needed
+
+	     set viewcolumns=-{name}..
+
+	   results  in	that  ellipsis	are  added at the end of too long file
+	   names.
+
+	 - none (default) - text can pass column boundaries
+
+	     set viewcolumns=-{name}...,{ext}
+
+	   results in that long file names can partially be written on the ext
+	   column.
+
+Color schemes
+       The color schemes in vifm can be applied in two different ways:
+
+	 - as the primary color scheme;
+
+	 - as local to a pane color scheme.
+
+       Both types are set using :colorscheme command, but of different forms:
+
+	 - :colorscheme color_scheme_name - for the primary color scheme;
+
+	 - :colorscheme color_scheme_name directory - for local color schemes.
+
+       Look  of different parts of the TUI (Text User Interface) is determined
+       in this way:
+
+	 - Border,  TabLine,   TabLineSel,   TopLineSel,   TopLine,   CmdLine,
+	   ErrorMsg,  StatusLine,  JobLine, SuggestBox and WildMenu are always
+	   determined by the primary color scheme;
+
+	 - CurrLine, Selected, Directory, Link,	 BrokenLink,  Socket,  Device,
+	   Executable,	Fifo,  CmpMismatch,  Win  and AuxWin are determined by
+	   primary color scheme and a set of local color schemes, which can be
+	   empty.
+
+       There might be a set of local color schemes because they are structured
+       hierarchically according to file system structure. For example,	having
+       the following piece of file system:
+
+	 ~
+	 `-- bin
+	    |
+	    `-- my
+
+       Two color schemes:
+
+	 # ~/.vifm/colors/for_bin
+	 highlight Win cterm=none ctermfg=white ctermbg=red
+	 highlight CurrLine cterm=none ctermfg=red ctermbg=black
+
+	 # ~/.vifm/colors/for_bin_my
+	 highlight CurrLine cterm=none ctermfg=green ctermbg=black
+
+       And these three commands in the vifmrc file:
+
+	 colorscheme Default
+	 colorscheme for_bin ~/bin
+	 colorscheme for_bin_my ~/bin/my
+
+       File list will look in the following way for each level:
+
+       - ~/ - Default color scheme
+	 black background
+	 cursor with blue background
+
+       - ~/bin/ - mix of Default and for_bin color schemes
+	 red background
+	 cursor with black background and red foreground
+
+       - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes
+	 red background
+	 cursor with black background and green foreground
+
+Trash directory
+       vifm has support of trash directory, which is used as temporary storage
+       for deleted files or files that were cut.  Using trash is controlled by
+       the  'trash'  option,  and  exact  path	to  the	 trash can be set with
+       'trashdir' option.  Trash directory in vifm differs  from  the  system-
+       wide  one  by default, because of possible incompatibilities of storing
+       deleted	files  among  different	 file  managers.   But	one  can   set
+       'trashdir'  to  "~/.local/share/Trash" to use a "standard" trash direc-
+       tory.
+
+       There are two scenarios of using trash in vifm:
+
+	 1. As a place for storing files that were  cut	 by  "d"  and  may  be
+	    inserted to some other place in file system.
+
+	 2. As a storage of files, that are deleted but not purged yet.
+
+       The first scenario uses deletion ("d") operations to put files to trash
+       and put ("p") operations to restore files from trash  directory.	  Note
+       that  such operations move files to and from trash directory, which can
+       be long term operations in  case	 of  different	partitions  or	remote
+       drives mounted locally.
+
+       The  second scenario uses deletion ("d") operations for moving files to
+       trash directory and :empty command-line command to purge all previously
+       deleted files.
+
+       Deletion	 and  put  operations  depend on registers, which can point to
+       files in trash directory.  Normally, there are no nonexistent files  in
+       registers,  but	vifm  doesn't  keep track of modifications under trash
+       directory, so one shouldn't expect value of registers to be  absolutely
+       correct if trash directory was modified not by operation that are meant
+       for it.	But this won't lead to any issues with operations, since  they
+       ignore nonexistent files.
+
+Client-Server
+       vifm  supports  remote  execution of command-line mode commands, remote
+       changing of directories and expression evaluation.   This  is  possible
+       using --remote and --remote-expr command-line arguments.
+
+       To  execute  a command remotely combine --remote argument with -c <com-
+       mand> or +<command>.  For example:
+
+	 vifm --remote -c 'cd /'
+	 vifm --remote '+cd /'
+
+       To change directory not using command-line mode commands one can	 spec-
+       ify paths right after --remote argument, like this:
+
+	 vifm --remote /
+	 vifm --remote ~
+	 vifm --remote /usr/bin /tmp
+
+       Evaluating  expression  remotely	 might	be useful to query information
+       about an instance, for example its location:
+
+	 vifm --remote-expr 'expand("%d")'
+
+       If there are several running instances, the  target  can	 be  specified
+       with  --server-name  option (otherwise, the first one lexicographically
+       is used):
+
+	 vifm --server-name work --remote ~/work/project
+
+       List of names of running instances can be  obtained  via	 --server-list
+       option.	Name of the current one is available via v:servername.
+
+
+       v:servername
+	      server  name  of	the  running  vifm instance.  Empty if client-
+	      server feature is disabled.
+
+Plugin
+       Plugin for using vifm in vim as a file selector.
+
+       Commands:
+
+	 :EditVifm   select a file or files to open in the current buffer.
+	 :SplitVifm  split buffer and select a file or files to open.
+	 :VsplitVifm vertically split buffer and select a  file	 or  files  to
+       open.
+	 :DiffVifm    select  a	 file  or files to compare to the current file
+       with
+		     :vert diffsplit.
+	 :TabVifm    select a file or files to open in tabs.
+
+       Each command accepts up to two arguments: left pane directory and right
+       pane  directory.	  After arguments are checked, vifm process is spawned
+       in a special "file-picker" mode.	 To pick files just open  them	either
+       by  pressing  l,	 i  or Enter keys, or by running :edit command.	 If no
+       files are selected, file under the cursor is  opened,  otherwise	 whole
+       selection is passed to the plugin and opened in vim.
+
+       The  plugin  have  only	two  settings.	 It's  a string variable named
+       g:vifm_term to let user	specify	 command  to  run  GUI	terminal.   By
+       default	it's  equal  to 'xterm -e'.  And another string variable named
+       g:vifm_exec, which equals "vifm"	 by  default  and  specifies  path  to
+       vifm's  executable.   To	 pass  arguments to vifm use g:vifm_exec_args,
+       which is empty by default.
+
+       To use the plugin copy the vifm.vim file	 to  either  the  system  wide
+       vim/plugin directory or into ~/.vim/plugin.
+
+       If  you would prefer not to use the plugin and it is in the system wide
+       plugin directory add
+
+       let loaded_vifm=1
+
+       to your ~/.vimrc file.
+
+Reserved
+       The following command names are reserved and shouldn't be used for user
+       commands.
+
+	 g[lobal]
+	 v[global]
+
+ENVIRONMENT
+       VIFM   Points to main configuration directory (usually ~/.vifm/).
+
+       MYVIFMRC
+	      Points to main configuration file (usually ~/.vifm/vifmrc).
+
+       These  environment variables are valid inside vifm and also can be used
+       to configure it by setting some of them before running vifm.
+
+       When $MYVIFMRC isn't set, it's made as $VIFM/vifmrc (exception for Win-
+       dows: vifmrc in the same directory as vifm.exe has higher priority than
+       $VIFM/vifmrc).
+
+       See "Startup" section above for more details.
+
+       VIFM_FUSE_FILE
+	      On execution of external commands this variable is  set  to  the
+	      full  path  of  file  used  to initiate FUSE mount of the closes
+	      mount point from current pane directory up.  It's not  set  when
+	      outside  FUSE  mount  point.   When vifm is used inside terminal
+	      multiplexer, it tries to set this variable as well  (it  doesn't
+	      work this way on its own).
+
+SEE ALSO
+       vifm-convert-dircolors(1), vifm-pause(1)
+
+       Website: https://vifm.info/
+       Wiki: https://wiki.vifm.info/
+
+       Esperanto translation of the documentation by Sebastian Cyprych:
+       http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html
+
+AUTHOR
+       Vifm was written by ksteen <ksteen@users.sourceforge.net>
+       And currently is developed by xaizek <xaizek@posteo.net>
+
+
+
+vifm 0.10		       November 11, 2018		       VIFM(1)
diff --git a/dotfiles/.config/vifm/vifminfo b/dotfiles/.config/vifm/vifminfo
new file mode 100644
index 0000000..016f986
--- /dev/null
+++ b/dotfiles/.config/vifm/vifminfo
@@ -0,0 +1,293 @@
+# You can edit this file by hand, but it's recommended not to do that.
+
+# Marks:
+'H
+	/home/yaroslav/
+	..
+1556296785
+'b
+	/home/yaroslav/bin/
+	..
+1556296785
+'h
+	/home/yaroslav/
+	..
+1556296785
+'j
+	/home/yaroslav/Downloads
+	..
+1559512388
+'k
+	/home/yaroslav
+	Extra
+1556629457
+
+# Bookmarks:
+
+# TUI:
+al
+q1
+v2
+ov
+m-1
+l2
+r2
+
+# Left window history (oldest to newest):
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019
+	AUG
+2
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG
+	Madrid
+9
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid
+	D0
+1
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D0
+	JPG
+1
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D0/JPG
+	..
+0
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D0
+	_DSC5603.NEF
+2
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid
+	D1
+2
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D1
+	JPG
+1
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D1/JPG
+	_DSC5617.JPG
+1
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D1
+	JPG
+1
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid
+	D2
+3
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D2
+	JPG
+1
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D2/JPG
+	_DSC6153.JPG
+1
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D2
+	JPG
+1
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid
+	D3
+4
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D3
+	JPG
+1
+d/run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/Pictures/Camera/2019/AUG/Madrid/D3/JPG
+	_DSC6573.JPG
+1
+d/home/yaroslav
+	Extra
+4
+d/home/yaroslav/Repositories
+	i3rice
+4
+d/home/yaroslav/Repositories/i3rice
+	arch
+1
+d/home/yaroslav/Repositories/i3rice/arch
+	laptop
+1
+d/home/yaroslav/Repositories/i3rice
+	.soundalerts
+6
+d/home/yaroslav/Repositories/i3rice/.soundalerts
+	start.ogg
+2
+d/home/yaroslav/Repositories/i3rice
+	.soundalerts
+6
+d/home/yaroslav/Repositories
+	swayrice
+7
+d/home/yaroslav/Repositories/swayrice
+	..
+0
+d/home/yaroslav
+	Extra
+4
+
+# Right window history (oldest to newest):
+D/home/yaroslav/Repositories/csmoney/stats/bot
+	
+0
+D/home/yaroslav/Extra
+	Emuladores
+2
+D/home/yaroslav/Extra/Emuladores
+	..
+0
+D/home/yaroslav/Extra
+	Emuladores
+2
+D/home/yaroslav
+	Extra
+4
+D/home
+	yaroslav
+1
+D/home/yaroslav
+	Extra
+4
+D/home/yaroslav/Extra
+	OS
+3
+D/home/yaroslav/.config/vifm
+	..
+0
+D/home/yaroslav/.config
+	vifm
+9
+D/home/yaroslav
+	Documents
+2
+D/home/yaroslav/Documents
+	prog
+9
+D/home/yaroslav/.config/vifm
+	..
+0
+D/home/yaroslav/Repositories/i3rice
+	..
+0
+D/home/yaroslav
+	..
+0
+D/home/yaroslav/Repositories/st
+	
+0
+D/home/yaroslav
+	..
+0
+D/run/media/yaroslav
+	
+0
+D/home/yaroslav
+	..
+0
+D/run/media/yaroslav/6163-3361/DCIM/101D3300
+	
+0
+D/home/yaroslav
+	..
+0
+
+# Command line history (oldest to newest):
+:mkdir 
+:mkdir src
+:cd csmoney/stats/
+:mkdir test
+:ta
+:cd src/utils/
+:cd stuff/notes/
+:mkdir data
+:cd Documents/eBooks/
+:cd Pictures/Camera/Nikon/
+:mkdir Edited
+:cd Downloads/
+:cd ~
+:cd .venvs/
+:cd Extra/temp/
+:mkdir pack
+:mkdir vscode-node-debug
+:cd /usr
+:cd .vim
+:cd .scripts/
+:cd Pictures/screenshots/
+:empty
+:cd Pictures/
+:cd Repositories/csmoney/stats/backend/
+:cd /run/media/yaroslav/956e5c54-6659-479e-91f1-de6afc4a37b9/
+:cd Repositories/
+:mkdir swayrice
+
+# Search history (oldest to newest):
+/resize
+/70
+/80
+/24
+/29
+/38
+/45
+/408
+/422
+/69
+/76
+/82
+/482
+/89
+/500
+/17
+/71
+/Ima
+/vif
+/setbg
+/komo
+/code
+/node
+/cur
+/win
+/Madrid
+
+# Prompt history (oldest to newest):
+pbackend_test.env
+pbackend_dev.env
+pswayresize
+pdevutils
+pdev
+prawmatch0.json
+pgot.jpg
+pparty
+pbot.js
+pservers.js
+p.eslintrc.js
+p.eslintrc.json
+pc.vim
+prawmatches1.json
+pplayertracker.js
+pindex.js
+pcalculateplayerstats.js
+pplayerstats.js
+pschemas
+pplayerstats.test.js
+pmodels.test.js
+ppubprof2.json
+ppubprof0.json
+ppubprof1.json
+ppubprof7.json
+pvscode-node-debug
+pddquakemite
+
+# Local filter history (oldest to newest):
+
+# Registers:
+""/home/yaroslav/.local/share/vifm/Trash/000_Diskette Park - Stray.zip
+""/home/yaroslav/.local/share/vifm/Trash/000_Sonnig 991 - MALLSOFT ODYSSEY.zip
+""/home/yaroslav/.local/share/vifm/Trash/000_Whitewoods - Spaceship Earth.zip
+""/home/yaroslav/.local/share/vifm/Trash/000_Windows彡96 - Vibes.zip
+""/home/yaroslav/.local/share/vifm/Trash/000_vcr-classique - exotics.zip
+
+# Directory stack (oldest to newest):
+
+# Trash content:
+t/home/yaroslav/.local/share/vifm/Trash/000_Undertale
+	/home/yaroslav/Downloads/music/Undertale
+t/home/yaroslav/.local/share/vifm/Trash/000_Diskette Park - Stray.zip
+	/home/yaroslav/Downloads/music/Diskette Park - Stray.zip
+t/home/yaroslav/.local/share/vifm/Trash/000_Sonnig 991 - MALLSOFT ODYSSEY.zip
+	/home/yaroslav/Downloads/music/Sonnig 991 - MALLSOFT ODYSSEY.zip
+t/home/yaroslav/.local/share/vifm/Trash/000_Whitewoods - Spaceship Earth.zip
+	/home/yaroslav/Downloads/music/Whitewoods - Spaceship Earth.zip
+t/home/yaroslav/.local/share/vifm/Trash/000_Windows彡96 - Vibes.zip
+	/home/yaroslav/Downloads/music/Windows彡96 - Vibes.zip
+t/home/yaroslav/.local/share/vifm/Trash/000_vcr-classique - exotics.zip
+	/home/yaroslav/Downloads/music/vcr-classique - exotics.zip
diff --git a/dotfiles/.config/vifm/vifmrc b/dotfiles/.config/vifm/vifmrc
new file mode 100644
index 0000000..7ef1696
--- /dev/null
+++ b/dotfiles/.config/vifm/vifmrc
@@ -0,0 +1,336 @@
+" vim: filetype=vifm
+colorscheme yaroslavps
+
+set vicmd=$EDITOR
+set syscalls
+set nofollowlinks
+set sortnumbers
+set undolevels=100
+set wildmenu
+set wildstyle=popup
+set scrolloff=4
+set ignorecase
+set smartcase
+set nohlsearch
+set incsearch
+set timefmt=%m/%d\ %H:%M
+set suggestoptions=normal,visual,view,otherpane,keys,marks,registers
+set statusline="  Hint: %z%= %A %10u:%-7g %15s %20d  "
+
+map <C-h> <C-w>h
+map <C-j> <C-w>j
+map <C-k> <C-w>k
+map <C-l> <C-w>l
+map <C-o> <C-w>o
+map <C-s> <C-w>s
+map <C-v> <C-w>v
+
+map R :restart<CR>
+map x :!sxiv -ft * 2>/dev/null &<CR>
+nnoremap o :file &<cr>
+map E :!$EDITOR %f<CR>
+map mkd :mkdir<space>
+map cd :cd<space>
+map bgg :!cp %f ~/.config/wall1.png && setbg<CR>
+map bgl :!setbglblur %f<CR>
+map bgL :!setbglsimple %f<CR>
+map X :!ext %f &<CR>
+nnoremap s :shell<cr>
+nnoremap w :view<cr>
+vnoremap w :view<cr>gv
+nnoremap yd :!echo %d | xclip %i<cr>
+nnoremap yf :!echo %c:p | xclip %i<cr>
+nnoremap I cw<c-a>
+nnoremap cc cw<c-u>
+nnoremap A cw
+nnoremap ,w :set wrap!<cr>
+nmap <space> tj
+nmap q ZQ
+
+" Tab shortcuts
+map Oh :tabnew ~/<CR>
+map Od :tabnew ~/Documents<CR>
+map OD :tabnew ~/Downloads<CR>
+map Omm :tabnew ~/Music<CR>
+map Opp :tabnew ~/Pictures<CR>
+map Opw :tabnew ~/Pictures/Backgrounds<CR>
+map Ovv :tabnew ~/Video<CR>
+map Or :tabnew ~/Repositories<CR>
+map Os :tabnew ~/.scripts<CR>
+map Ocf :tabnew ~/.config<CR>
+map Omd :tabnew /run/media<CR>
+noremap J :tabn<CR>
+noremap K :tabp<CR>
+
+" ------------------------------------------------------------------------------
+
+" The file type is for the default programs to be used with
+" a file extension.
+" :filetype pattern1,pattern2 defaultprogram,program2
+" :fileviewer pattern1,pattern2 consoleviewer
+" The other programs for the file type can be accessed with the :file command
+" The command macros %f, %F, %d, %F may be used in the commands.
+" The %a macro is ignored.  To use a % you must put %%.
+
+" For automated FUSE mounts, you must register an extension with :file[x]type
+" in one of following formats:
+"
+" :filetype extensions FUSE_MOUNT|some_mount_command using %SOURCE_FILE and %DESTINATION_DIR variables
+" %SOURCE_FILE and %DESTINATION_DIR are filled in by vifm at runtime.
+" A sample line might look like this:
+" :filetype *.zip,*.jar,*.war,*.ear FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
+"
+" :filetype extensions FUSE_MOUNT2|some_mount_command using %PARAM and %DESTINATION_DIR variables
+" %PARAM and %DESTINATION_DIR are filled in by vifm at runtime.
+" A sample line might look like this:
+" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
+" %PARAM value is filled from the first line of file (whole line).
+" Example first line for SshMount filetype: root@127.0.0.1:/
+"
+" You can also add %CLEAR if you want to clear screen before running FUSE
+" program.
+
+" Pdf
+filextype *.pdf zathura %c %i &, apvlv %c, xpdf %c
+fileviewer *.pdf
+        "\ vifmimg pdfpreview %px %py %pw %ph %c
+        "\ %pc
+        "\ vifmimg clear
+         \ pdftotext -nopgbrk %c -
+
+" PostScript
+filextype *.ps,*.eps,*.ps.gz
+        \ {View in zathura}
+        \ zathura %f&,
+        \ {View in gv}
+        \ gv %c %i &,
+
+" Djvu
+filextype *.djvu
+        \ {View in zathura}
+        \ zathura %f&,
+        \ {View in apvlv}
+        \ apvlv %f&,
+
+" Audio
+filetype *.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus
+       "\ {Play using ffplay}
+       "\ ffplay -nodisp -autoexit %c,
+       \ {Play using MPlayer}
+       \ mplayer %f,
+fileviewer *.mp3 mp3info
+fileviewer *.flac soxi
+
+" Video
+filextype *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
+         \*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
+         \*.as[fx]
+        \ {View using mpv}
+        \ mpv --gpu-context=wayland %f,
+        \ {View using ffplay}
+        \ ffplay -fs -autoexit %f,
+        \ {View using Dragon}
+        \ dragon %f:p,
+        \ {View using mplayer}
+        \ mplayer %f,
+fileviewer *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.mpeg,*.vob,
+          \*.fl[icv],*.m2v,*.mov,*.webm,*.ts,*.mts,*.m4v,*.r[am],*.qt,*.divx,
+          \*.as[fx]
+        "\ vifmimg videopreview %px %py %pw %ph %c
+        "\ %pc
+        "\ vifmimg clear
+         \ ffprobe -pretty %c 2>&1
+
+" Web
+filextype *.html,*.htm
+        \ {Open with dwb}
+        \ dwb %f %i &,
+        \ {Open with firefox}
+        \ firefox %f &,
+        \ {Open with uzbl}
+        \ uzbl-browser %f %i &,
+filetype *.html,*.htm links, lynx
+
+" Object
+filetype *.o nm %f | less
+
+" Man page
+filetype *.[1-8] man ./%c
+fileviewer *.[1-8] man ./%c | col -b
+
+" Images
+filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
+        \ {View in sxiv}
+        \ sxiv -ia %c %d &,
+        \ {View in imv}
+        \ imv -d %d -n %f &,
+        \ {View in feh}
+        \ feh %d &,
+        \ {View in cacaview}
+        \ cacaview %c &,
+fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.xpm
+        \ vifmimg draw %px %py %pw %ph %c
+        \ %pc
+        \ vifmimg clear
+        " Get w3m image previews inside vifm
+		" \ imgt %px %py %pw %ph %c
+        " \ %pc
+        " \ imgc %px %py %pw %ph   NOT NEEDED IN XTERM
+fileviewer *.gif
+        \ vifmimg gifpreview %px %py %pw %ph %c
+        \ %pc
+        \ vifmimg clear
+
+" OpenRaster
+filextype *.ora
+        \ {Edit in MyPaint}
+        \ mypaint %f,
+
+" Mindmap
+filextype *.vym
+        \ {Open with VYM}
+        \ vym %f &,
+
+" MD5
+filetype *.md5
+       \ {Check MD5 hash sum}
+       \ md5sum -c %f %S,
+
+" SHA1
+filetype *.sha1
+       \ {Check SHA1 hash sum}
+       \ sha1sum -c %f %S,
+
+" SHA256
+filetype *.sha256
+       \ {Check SHA256 hash sum}
+       \ sha256sum -c %f %S,
+
+" SHA512
+filetype *.sha512
+       \ {Check SHA512 hash sum}
+       \ sha512sum -c %f %S,
+
+" GPG signature
+filetype *.asc
+       \ {Check signature}
+       \ !!gpg --verify %c,
+
+" Torrent
+filetype *.torrent ktorrent %f &
+fileviewer *.torrent dumptorrent -v %c
+
+" FuseZipMount
+filetype *.zip,*.jar,*.war,*.ear,*.oxt,*.apkg
+       \ {Mount with fuse-zip}
+       \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR,
+       \ {View contents}
+       \ zip -sf %c | less,
+       \ {Extract here}
+       \ tar -xf %c,
+fileviewer *.zip,*.jar,*.war,*.ear,*.oxt zip -sf %c
+
+" ArchiveMount
+filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz
+       \ {Mount with archivemount}
+       \ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR,
+fileviewer *.tgz,*.tar.gz tar -tzf %c
+fileviewer *.tar.bz2,*.tbz2 tar -tjf %c
+fileviewer *.tar.txz,*.txz xz --list %c
+fileviewer *.tar tar -tf %c
+
+" Rar2FsMount and rar archives
+filetype *.rar
+       \ {Mount with rar2fs}
+       \ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR,
+fileviewer *.rar unrar v %c
+
+" IsoMount
+filetype *.iso
+       \ {Mount with fuseiso}
+       \ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR,
+
+" SshMount
+filetype *.ssh
+       \ {Mount with sshfs}
+       \ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR %FOREGROUND,
+
+" FtpMount
+filetype *.ftp
+       \ {Mount with curlftpfs}
+       \ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR %FOREGROUND,
+
+" Fuse7z and 7z archives
+filetype *.7z
+       \ {Mount with fuse-7z}
+       \ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR,
+fileviewer *.7z 7z l %c
+
+" Office files
+filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx libreoffice %f &
+fileviewer *.doc catdoc %c
+fileviewer *.docx docx2txt.pl %f -
+
+" TuDu files
+filetype *.tudu tudu -f %c
+
+" Qt projects
+filextype *.pro qtcreator %f &
+
+" Directories
+filextype */
+        \ {View in thunar}
+        \ Thunar %f &,
+
+" Syntax highlighting in preview
+"
+" Explicitly set highlight type for some extensions
+"
+" 256-color terminal
+" fileviewer *.[ch],*.[ch]pp highlight -O xterm256 -s dante --syntax c %c
+" fileviewer Makefile,Makefile.* highlight -O xterm256 -s dante --syntax make %c
+"
+" 16-color terminal
+" fileviewer *.c,*.h highlight -O ansi -s dante %c
+"
+" Or leave it for automatic detection
+"
+" fileviewer *[^/] pygmentize -O style=monokai -f console256 -g
+
+" Displaying pictures in terminal
+"
+" fileviewer *.jpg,*.png shellpic %c
+
+" Open all other files with default system programs (you can also remove all
+" :file[x]type commands above to ensure they don't interfere with system-wide
+" settings).  By default all unknown files are opened with 'vi[x]cmd'
+" uncommenting one of lines below will result in ignoring 'vi[x]cmd' option
+" for unknown file types.
+" For *nix:
+" filetype * xdg-open
+" For OS X:
+" filetype * open
+" For Windows:
+" filetype * start, explorer
+
+" GETTING ICONS TO DISPLAY IN VIFM
+" You need the next 14 lines!
+
+" file types
+set classify=' :dir:/, :exe:, :reg:, :link:'
+" various file names
+set classify+=' ::../::, ::*.sh::, ::*.[hc]pp::, ::*.[hc]::, ::/^copying|license$/::, ::.git/,,*.git/::, ::*.epub,,*.fb2,,*.djvu::, ::*.pdf::, ::*.htm,,*.html,,**.[sx]html,,*.xml::'
+" archives
+set classify+=' ::*.7z,,*.ace,,*.arj,,*.bz2,,*.cpio,,*.deb,,*.dz,,*.gz,,*.jar,,*.lzh,,*.lzma,,*.rar,,*.rpm,,*.rz,,*.tar,,*.taz,,*.tb2,,*.tbz,,*.tbz2,,*.tgz,,*.tlz,,*.trz,,*.txz,,*.tz,,*.tz2,,*.xz,,*.z,,*.zip,,*.zoo::'
+" images
+set classify+=' ::*.bmp,,*.gif,,*.jpeg,,*.jpg,,*.ico,,*.png,,*.ppm,,*.svg,,*.svgz,,*.tga,,*.tif,,*.tiff,,*.xbm,,*.xcf,,*.xpm,,*.xspf,,*.xwd::'
+" audio
+set classify+=' ::*.aac,,*.anx,,*.asf,,*.au,,*.axa,,*.flac,,*.m2a,,*.m4a,,*.mid,,*.midi,,*.mp3,,*.mpc,,*.oga,,*.ogg,,*.ogx,,*.ra,,*.ram,,*.rm,,*.spx,,*.wav,,*.wma,,*.ac3::'
+" media
+set classify+=' ::*.avi,,*.ts,,*.axv,,*.divx,,*.m2v,,*.m4p,,*.m4v,,.mka,,*.mkv,,*.mov,,*.mp4,,*.flv,,*.mp4v,,*.mpeg,,*.mpg,,*.nuv,,*.ogv,,*.pbm,,*.pgm,,*.qt,,*.vob,,*.wmv,,*.xvid::'
+" office files
+set classify+=' ::*.doc,,*.docx::, ::*.xls,,*.xls[mx]::, ::*.pptx,,*.ppt::'
+
+---------------------------------------------------------------------------------
+
+set vifminfo=dhistory,chistory,tui,shistory,phistory,fhistory,dirstack,registers,bookmarks,bmarks
-- 
cgit v1.2.3