diff --git a/vifm/.config/vifm/colors/gruvbox.vifm b/vifm/.config/vifm/colors/gruvbox.vifm

new file mode 100644

index 0000000000000000000000000000000000000000..1b1ca2998f2e2a56649c3791006a66dd7cef0c4f

--- /dev/null

+++ b/vifm/.config/vifm/colors/gruvbox.vifm

@@ -0,0 +1,30 @@

+" gruvbox color scheme approximation for vifm

+

+" Reset all styles first

+highlight clear

+

+highlight Border cterm=none ctermfg=235 ctermbg=default

+

+highlight TopLine cterm=none ctermfg=214 ctermbg=235

+highlight TopLineSel cterm=bold ctermfg=214 ctermbg=237

+

+highlight Win cterm=none ctermfg=223 ctermbg=default

+"highlight OtherWin cterm=none ctermfg=223 ctermbg=236

+highlight Directory cterm=bold ctermfg=109 ctermbg=default

+highlight CurrLine cterm=bold,inverse ctermfg=default ctermbg=default

+highlight OtherLine cterm=bold ctermfg=default ctermbg=235

+highlight Selected cterm=none ctermfg=223 ctermbg=237

+

+highlight JobLine cterm=bold ctermfg=116 ctermbg=238

+highlight StatusLine cterm=bold ctermfg=144 ctermbg=236

+highlight ErrorMsg cterm=bold ctermfg=167 ctermbg=default

+highlight WildMenu cterm=bold ctermfg=235 ctermbg=144

+highlight CmdLine cterm=none ctermfg=223 ctermbg=default

+

+highlight Executable cterm=bold ctermfg=142 ctermbg=default

+highlight Link cterm=none ctermfg=132 ctermbg=default

+highlight BrokenLink cterm=bold ctermfg=167 ctermbg=default

+highlight Device cterm=none,standout ctermfg=214 ctermbg=default

+highlight Fifo cterm=none ctermfg=172 ctermbg=default

+highlight Socket cterm=bold ctermfg=223 ctermbg=default

+

diff --git a/vifm/.config/vifm/scripts/README b/vifm/.config/vifm/scripts/README

new file mode 100644

index 0000000000000000000000000000000000000000..76949522813a55626f2ffc899ef18500b144e23e

--- /dev/null

+++ b/vifm/.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/vifm/.config/vifm/vifm-help.txt b/vifm/.config/vifm/vifm-help.txt

new file mode 100644

index 0000000000000000000000000000000000000000..3f395461fd27a6f7d39f9c3bdd79a5dda0b65f2f

--- /dev/null

+++ b/vifm/.config/vifm/vifm-help.txt

@@ -0,0 +1,6378 @@

+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 di-

+ rectory 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 run. To suppress this behaviour

+ :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 di-

+ rectory node in tree view), otherwise move left one file.

+

+ l when 'lsview' is off move into a directory or launch a file,

+ otherwise move right one file. See "Selection" section below.

+

+ 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. See "Selection" section be-

+ low.

+

+ 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' op-

+ tions affect case sensitivity of search queries as well as local filter

+ and other things detailed in the description of 'caseoptions'.

+

+

+ [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 (does not affect "." and ".." special directories,

+ whose appearance is controlled by the 'dotdirs' option), see 'dot-

+ files' option;

+

+ - permanent filter;

+

+ - local filter (see description of the "=" normal mode command).

+

+ Permanent filter essentially allows defining a group of files names

+ which are not desirable to be seen by default, like temporary or backup

+ files, which might be created alongside normal ones. Just like you

+ don't usually need to see hidden dot files (files starting with a dot).

+ Local filter on the other hand is for temporary immediate filtering of

+ file list at hand, to get rid of uninterested files in the view or to

+ make it possible to use % range in a :command.

+

+ For the purposes of more deterministic editing permanent filter is

+ split into two parts:

+

+ - one edited explicitly via :filter command;

+

+ - another one which is edited implicitly via zf shortcut.

+

+ Files are tested against both parts and a match counts if at least one

+ of the parts matched.

+

+

+ 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. This is done by append-

+ ing a slash to a directory name before testing whether it matches the

+ filter. 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.

+

+ The basic vim folding key bindings are used for managing filters.

+

+

+ za toggle visibility of dot files.

+

+ zo show dot files.

+

+ zm hide dot files.

+

+ zf add selected files to permanent filter.

+

+ zO reset permanent filter.

+

+ zR save and reset all filters.

+

+ zr clear local filter.

+

+ zM restore all filters (undoes last zR).

+

+ zd exclude selection or current file from a custom view. Does

+ nothing for regular view. For tree view excluding directory ex-

+ cludes that sub-tree. For compare views zd hides group of adja-

+ cent 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 show a dialog with detailed information about current file. See

+ "Menus and dialogs" section for controls.

+

+ Shift-Tab

+ enter 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 di-

+ rectory.

+

+ 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). On Windows additionally follows .lnk-files.

+

+ gF Same as gf, but resolves final path of the chain of symbolic

+ links.

+

+ 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}). See "Menus and dialogs" section for controls.

+

+ [count]C

+ clone file [count] times.

+

+ [count]dd or d[count]selector

+ move selected file or files to trash directory (if 'trash' op-

+ tion 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 im-

+ portant 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 run (does nothing right after startup or :restart command).

+ 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 two 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 re-

+ gion;

+

+ - invert - amend selection by inverting selection of elements in se-

+ lection 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 oc-

+ currence).

+

+ [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 op-

+ tion.

+

+ 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 ac-

+ tive 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 implicit permanent filter (old name "automatic") of the

+ active pane.

+

+ Ctrl-X m

+ value of explicit permanent filter (old name "manual") 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 al-

+ lowed.

+

+ 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 es-

+ caped:

+

+ :[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 stderr create error dialogs showing errors 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 de-

+ fault the command relies on the external "apropos" utility,

+ which can be customized by altering value of the 'aproposprg'

+ option. See "Menus and dialogs" section for controls.

+

+ :autocmd

+

+ :au[tocmd] {event} {pat} {cmd}

+ register autocommand for the {event}, which can be:

+ - DirEnter - triggered after directory is changed

+ 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. See "Menus and dialogs" section for controls.

+

+ :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. See "Menus and

+ dialogs" section for controls.

+

+ :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 ac-

+ cepted in rhs of mappings (see "Mappings" section below). Ab-

+ breviations are expanded non-recursively.

+

+ :cnoreabbrev

+

+ :cnorea[bbrev]

+ display menu of command-line mode abbreviations. See "Menus and

+ dialogs" section for controls.

+

+ :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.

+

+ :cds

+

+ :cds[!] pattern string

+ navigate to path obtained by substituting first match in current

+ path. Arguments can include slashes, but starting first argu-

+ ment with a separator will activate below form of the command.

+ Specifying "!" changes directory of both panes.

+

+ 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)

+

+ :cds[!]/pattern/string/[flags]

+ same as above, but with :substitute-like syntax. Other punctua-

+ tion characters can be used as separators.

+

+ :change

+

+ :c[hange]

+ show a dialog to alter properties of files.

+

+ :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 re-

+ cursively.

+

+ :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 di-

+ rectory specific colorscheme fits current path. It's also used

+ to set border color (except view titles) and colors in menus and

+ dialogs. See "Menus and dialogs" section for controls.

+

+ :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).

+

+ :colo[rscheme] color_scheme_name color_scheme_name...

+ loads the first color scheme in the order given that exists and

+ is supported by the terminal. If none matches, current one re-

+ mains unchanged. For example:

+

+ " use a separate color scheme for panes which are inside FUSE mounts

+ execute 'colorscheme in-fuse' &fusehome

+

+ :comclear

+

+ :comc[lear]

+ remove all user defined commands.

+

+ :command

+

+ :com[mand]

+ display a menu of user commands. See "Menus and dialogs" sec-

+ tion for controls.

+

+ :com[mand] prefix

+ display user defined commands that start with the prefix.

+

+ :com[mand] name action[ &]

+ set or redefine a user command.

+ Use :com[mand]! to overwrite a previously set command of the

+ same name. Builtin commands can't be redefined.

+ Unlike in vim, user commands do not have to start with a capital

+ letter. However, command name cannot contain numbers or special

+ symbols except for single trailing '?' or '!'.

+ User commands are run in a shell by default (see below for syn-

+ tax of other options). To run a command in the background you

+ must mark it as a background command by adding " &" after the

+ command's action (e.g., `:com rm rm %f &`).

+ User commands of all kinds have macros expanded in them. See

+ "Command macros" section for more information.

+

+ :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 ex-

+ ample:

+

+ " 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] name :commands

+ set kind of an alias for internal commands (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.

+

+ :delsession

+

+ :delsession

+ delete specified session if it was stored previously. Deleting

+ current session doesn't detach it.

+

+ :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 in a menu. See "Menus and dialogs" sec-

+ tion for controls.

+

+ :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 di-

+ rectories (see "Trash directory" section below). Trash directo-

+ ries which are specified via %r and/or %u also get deleted com-

+ pletely. 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.

+ See "Menus and dialogs" section for controls.

+

+ :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 ap-

+ pended 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 and

+ "Selection" section for how selection is handled. See also "Au-

+ tomatic 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 and "Selection" section for

+ how selection is handled. See also "Automatic FUSE mounts" sec-

+ tion 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 by presence of

+ non-empty $DISPLAY or $WAYLAND_DISPLAY 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 se-

+ lected 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. Ig-

+ nores 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 re-

+ quest inversion of search (look for lines that do not match pat-

+ tern). 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 al-

+ tering 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][!]

+ repeat 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.

+

+ :hideui

+

+ :hideui

+ hide interface to show previous commands' output.

+

+ :highlight

+

+ :hi[ghlight]

+ display information about all highlight groups active at the mo-

+ ment.

+

+ :hi[ghlight] clear

+ reset all highlighting to builtin defaults and removed all file-

+ name-specific rules.

+

+ :hi[ghlight] clear ( {pat1,pat2,...} | /regexp/ )

+ remove 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

+ - OtherWin - color of inactive pane

+ - Border - color of vertical parts of the border

+ - TabLine - tab line color (for 'tabscope' set to "global")

+ - TabLineSel - color of the tip of selected tab (regardless of 'tab-

+ scope')

+ - TopLine - top line color of the other pane

+ - TopLineSel - top line color of the current 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

+ - OddLine - color of every second entry line in a pane

+ - LineNr - line number column of views

+ - Selected - color of selected files

+ - Directory - color of directories

+ - Link - color of symbolic links in the views

+ - BrokenLink - color of broken symbolic links

+ - HardLink - color of regular files with more than one hard link

+ - 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 at-

+ tribute. 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 back-

+ ground colors independently, but for consistency with terminal emula-

+ tors this is available only implicitly by using light versions of col-

+ ors. 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 de-

+ pends 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

+ OtherWin

+ AuxWin

+ OddLine

+ File name specific highlights

+ Directory

+ Link

+ BrokenLink

+ HardLink

+ Socket

+ Device

+ Fifo

+ Executable

+ Selected

+ CurrLine

+ LineNr (in active pane)

+ OtherLine

+ LineNr (in inactive pane)

+ TopLine

+ TopLineSel

+ TabLineSel (for pane tabs)

+ User1..User9

+ TabLine

+ TabLineSel

+ User1..User9

+

+ "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]

+ display a menu with list of visited directories. See "Menus and

+ dialogs" section for controls.

+

+ :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 renam-

+ ing).

+ fi[lter] or = show filter history (see description of the "="

+ normal mode command).

+ See "Menus and dialogs" section for controls.

+

+ :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 ex-

+ pected.

+

+ :histprev

+

+ :histprev

+ same as <c-o>.

+

+ :if

+

+ :if {expr1}

+ start 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 display menu of current backgrounded processes. See "Menus and

+ dialogs" section for controls.

+

+ :let

+

+ :let $ENV_VAR = <expr>

+ set an 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 al-

+ ready built), which can be customized by altering value of the

+ 'locateprg' option. See "Menus and dialogs" section for con-

+ trols.

+

+ :locate

+ repeat 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

+ display a menu with list of files in trash. Each element of the

+ list is original path of a deleted file, thus the list can con-

+ tain duplicates. See "Menus and dialogs" section for controls.

+

+ :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. See "Menus and dialogs" section

+ for controls.

+

+ :marks list ...

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

+

+ :media

+

+ :media only for *nix

+ display media management menu. See "Menus and dialogs" section

+ for controls. 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) be-

+ fore 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 in-

+ stead 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 state 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, vifmrc and session files and run startup commands

+ passed in the argument list, thus losing all unsaved changes

+ (e.g. recent history or keys mapped after starting this in-

+ stance). Session that wasn't yet stored gets reset.

+

+ While many things get reset, some basic UI state and current lo-

+ cations are preserved, including tabs.

+

+ :restart full

+ variation of :restart that makes no attempt to preserve any-

+ thing.

+

+ :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 en-

+ abled.

+

+ 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.

+

+ :session

+

+ :session?

+ print name of the current session.

+

+ :session

+ detach current session without saving it. Resets v:session.

+

+ :session name

+ create or load and switch to a session with the specified name.

+ Name can't contain slashes. Session active at the moment is

+ saved before the switch. Session is also automatically saved

+ when quiting the application in usual ways. Sets v:session.

+

+ :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, option-=x and

+ option^=x

+ - for enumeration options - option=x, option+=x and option-=x

+ - for set options - option=x, option+=x, option-=x and op-

+ tion^=x

+ - for charset options - option=x, option+=x, option-=x and op-

+ tion^=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 op-

+ tions.

+

+ :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, where one can se-

+ lect the 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). See "Menus and dialogs" section for con-

+ trols.

+

+ :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 al-

+ lowed.

+

+ :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 "lo-

+ cation");

+

+ - 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 ` gemini - mkl-wlod.srht.site 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.

+

+ :tabonly

+

+ :tabo[nly]

+ close all tabs but the current one. Closes pane tabs only at

+ the active side.

+

+ :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 up-

+ date 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 au-

+ tomatically 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.

+ See "Menus and dialogs" section for controls.

+

+ :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 (preview of file's con-

+ tents). 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. See "Menus and dialogs"

+ section for controls.

+

+ :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 di-

+ rectory 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 current state to vifminfo and session files (if a session

+ is active).

+

+ :wq

+

+ :wq[!] same as :quit, but ! disables only the check of backgrounded

+ commands, while state of the application is always written.

+ :wqall

+

+ :wqa[ll][!]

+ same as :qall, but ! disables only the check of backgrounded

+ commands, while state of the application is always written.

+

+ :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 user mapping of lhs from normal and visual modes.

+

+ :unm[ap]! lhs

+ remove user mapping of lhs from command line mode.

+

+ :cunmap :dunmap :munmap :nunmap :qunmap

+ :vunmap

+

+ :cu[nmap] lhs

+ remove user mapping of lhs from command line mode.

+

+ :du[nmap] lhs

+ remove user mapping of lhs from dialog modes.

+

+ :mu[nmap] lhs

+ remove user mapping of lhs from menu mode.

+

+ :nun[map] lhs

+ remove user mapping of lhs from normal mode.

+

+ :qun[map] lhs

+ remove user mapping of lhs from view mode.

+

+ :vu[nmap] lhs

+ remove user 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, but see "Selection" section below.

+

+ %F %"F All of the selected files in the other directory list, but see

+ "Selection" section below.

+

+ %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 the end of the main command and the beginning of the clear

+ command for graphical preview, which is invoked on closing pre-

+ view of a file.

+

+ %pd Marks a preview command as one that directly communicates with

+ the terminal. Beware that this is for things like sixel which

+ are self-contained sequences that depend only on current cursor

+ position, using this with anything else is likely to mangle ter-

+ minal state.

+

+ 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 de-

+ scription.

+

+ 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. Job cancella-

+ tion can be requested in the :jobs menu via dd shortcut.

+

+ You can see if command is still running in the :jobs menu. Back-

+ grounded commands have progress instead of process id at the line be-

+ ginning.

+

+ 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, :lo-

+ cate.

+

+Selection

+ If there is a selection, it's stashed before proceeding further unless

+ file under the cursor is part of that selection. This means that when

+ macros are expanded for :filetype or :filextype programs, `%f` and `%F`

+ become equivalent to `%c` and `%C` respectively if current file is not

+ selected. So you run selection by running one of selected files, oth-

+ erwise you're running a single file even if there are other selected

+ entries.

+

+ When running a selection it must not include broken symbolic links, has

+ to be consistent and set of file handlers must be compatible. Consis-

+ tency means that selection contains either only directories (including

+ links to them) or only files, but not their mix.

+

+ Compatibility is a more sophisticated check, but it's defined in a nat-

+ ural way so that you get what you'd expect. The following properties

+ of selection are taken into account while checking it for compatibility

+ and deciding how to handle it:

+

+

+ 1. If there any files for which handler isn't defined, then all files

+ are opened using 'vicmd' or 'vixcmd'.

+

+

+ 2. If all handlers match the following criteria:

+ - backgrounded

+ - include `%c` and/or `%C`

+ - include neither `%f` nor `%F`

+ then each file is executed independently of the rest.

+

+

+ 3. If all handlers are equal, the common handler is executed. This

+ handler might ignore selection and process only file under the

+ cursor.

+

+

+ 4. Otherwise, an error is reported, because handlers differ and they

+ don't support parallel execution.

+

+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

+

+ First five 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.

+

+ Path patterns receive absolute path of the file that includes its name

+ component as well.

+

+ 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}

+ Forms that accept comma-separated lists of patterns also process them

+ as lists of alternatives.

+

+ Patterns with regular expressions

+

+ Regular expression patterns are case insensitive by default, see de-

+ scription of commands, which might override default behaviour.

+

+ 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").

+

+ There are no implicit `^` or ` gemini - mkl-wlod.srht.site , so make sure to specify them explic-

+ itly if the pattern should match the whole name or path.

+

+ Patterns with globs

+

+ "Globs" section below provides short overview of globs and some impor-

+ tant points that one needs to know about them.

+

+ Patterns with mime-types

+

+ 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.

+

+ Examples

+

+ Associate `evince` to PDF-files only inside `/home/user/downloads/` di-

+ rectory (excluding its subdirectories):

+

+ :filextype //^/home/user/downloads/[^/]*.pdf$// evince %f

+

+

+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, but `.file.zip` won't be

+ matched.

+

+ `?` means any character at this position. E.g.

+

+ :fileviewer ?.out file %c

+

+ calls `file` tool for all files which have 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 negotia-

+ tion 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 sin-

+ gle digit in their name.

+

+ If you need to include literal comma, which is normally separates mul-

+ tiple globs, double it.

+

+: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 ex-

+ ception 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 en-

+ ables behaviour of older versions of vifm. Flags:

+ - f - when included, running :filter command results in not in-

+ verted (matching files are filtered out) and :filter! in in-

+ verted (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 se-

+ quence 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,treeleafsparent

+ 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

+ - treeleafsparent - show "../" in empty directories of tree

+ view

+

+ 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 expansion of macros specific

+ for this particular option and %% sequence for inserting percent

+ sign literally. The macros are:

+

+ macro value/meaning

+ %s literal arguments of :find or

+ list of paths to search in

+

+ %A empty or

+ literal arguments of :find

+ %a empty or

+ literal arguments of :find or

+ predicate followed by escaped arguments of :find

+ %p empty or

+ literal arguments of :find or

+ escaped arguments (parameters) of :find

+

+ %u redirect output to custom view instead of showing a

+ menu

+ %U redirect output to unsorted custom view instead of

+ showing a menu

+

+ Predicate in %a is "-name" on *nix and "-iname" on Windows.

+

+ If both %u and %U are specified, %U is chosen.

+

+ Some macros can be added implicitly:

+ - if %s isn't present, it's appended

+ - if neither of %a, %A and %p is present, %a is appended

+ - if neither of %s, %a, %A and %p is present, %s and %a are ap-

+ pended in this order

+

+ The macros slightly change their meaning depending on format of

+ :find's arguments:

+ - if the first argument points to an existing directory, %s is

+ assigned all arguments while %a, %A and %p are left empty

+ - otherwise:

+ - %s is assigned a dot (".") meaning current directory or

+ list of selected file names, if any

+ - %a, %A and %p are assigned literal arguments when first

+ argument starts with a dash ("-"), otherwise %a gets an escaped

+ version of the arguments with a predicate and %p contains es-

+ caped version of the arguments

+

+ Starting with Windows Server 2003 a `where` command is avail-

+ able. 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 because the

+ command ignores all directory paths except for the last one.

+

+ 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 "$en-

+ vname"), which will be expanded (prepend it with a slash to pre-

+ vent expansion). The value should expand to an absolute path.

+

+ If you change this option, vifm won't remount anything. It af-

+ fects 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 re-

+ sults is requested, %a or %A macro to specify placement of argu-

+ ments passed to the :grep command and the %s macro to specify

+ placement of list of files to search in. If some of the macros

+ are not used, they will be implicitly added after a space to the

+ value of the 'grepprg' option in the following order: %i, %a,

+ %s. 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 di-

+ rectory 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

+ Automatically select files that are search matches.

+

+ '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),

+ local filter (but not the rest of filters) and other things de-

+ tailed in the description of 'caseoptions'.

+

+ '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, udisks and

+ udisks2

+ (using udisks2 requires python with dbus module in-

+ stalled)

+ OS X: path points to a python script that uses diskutil

+ {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")

+ - info= - specifies arbitrary text to display next to

+ device (by

+ default "[label]" is used, if label is pro-

+ vided)

+ - mount-point= - specifies a mount point (can be absent or ap-

+ pear 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 exit code

+ of `mount` and `unmount` is taken into account to determine

+ whether operation was performed successfully.

+

+ '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,rpreview:dirs"

+ 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

+ rpreview:str dirs 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.

+

+ rpreview specifies what file-system objects should be previewed

+ in the right column and can take two values: dirs (only directo-

+ ries) or all. Both options don't include parent directory

+ ("..").

+

+ 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 be-

+ tween subsequent input polls, which affects various asynchronous

+ operations (detecting changes made by external applications,

+ 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' op-

+ tion 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

+ %% - literal 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.

+

+ Optional blocks are ignored unless at least one macro inside of

+ them is expanded to a non-empty value.

+

+ Example:

+

+ set rulerformat='%2l-%S%[ +%x%]'

+

+ 'runexec'

+ type: boolean

+ default: false

+ Run executable file on Enter, l or Right Arrow key. Behaviour

+ of the last two depends on the value of the 'lsview' option.

+

+ '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).

+

+ 'sessionoptions' 'ssop'

+ sessionoptions ssop

+ type: set

+ default: tui,state,tabs,savedirs,dhistory

+ An equivalent of 'vifminfo' for sessions, uses the same values.

+ When both options include the same value, data from session file

+ has higher priority (data from vifminfo isn't necessarily com-

+ pletely discarded, instead it's merged with the state of a ses-

+ sion the same way state of multiple instances is merged on

+ exit).

+

+ '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.

+

+ 'shellcmdflag' 'shcf'

+ type: string

+ default: "-c" or "/C" (for cmd.exe on MS-Windows)

+ Command-line option used to pass a command to 'shell'. It's

+ used in contexts where command comes from the user.

+

+ Note that using this option to force interactive mode of the

+ shell is most likely a BAD IDEA. In general interactive host

+ and interactive child shell can't share the same terminal ses-

+ sion. You can't even run such a shell in background. Consider

+ writing a wrapper for your shell that preloads aliases and com-

+ mands without making the shell interactive and ending up using

+ it in a way it was not meant to be used.

+

+ Note that this option is ignored when 'shell' is set to Power-

+ Shell due to the internal use of `-encodedCommand`.

+

+ 'shortmess' 'shm'

+ type: charset

+ default: "p"

+ Contains a sequence of single-character flags. Each flag en-

+ ables shortening of some message displayed by vifm in the TUI.

+ Flags:

+ - L - display only last directory in tab line instead of full

+ path.

+ - 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).

+ space {present} Insert space before unit sym-

+ bols.

+ This is the default.

+ nospace {present} Do not insert space before unit

+ symbols.

+

+ Numbers are rounded from zero. Trailing zeros are dropped.

+

+ Example:

+

+ set sizefmt=units:iec,precision:2,nospace

+

+

+ '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 di-

+ rectory (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 a pattern contains at least

+ one upper case character. Only used when 'ignorecase' option is

+ enabled.

+

+ '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 im-

+ plicitly: when "dir" is not specified, sorting behaves as if it

+ was the first key in the list. That's why if one wants sorting

+ 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 for group type

+ of sorting. Double the comma to insert it literally.

+

+ The regular expressions are used to extract substrings of file

+ names to serve as keys for sorting. It is essentially a way to

+ ignore uninteresting parts of file names during sorting by name.

+

+ Each expression should contain at least one group or its value

+ will be considered to be always empty. Also, only the first

+ match of regular expression is processed.

+

+ The first group divides list of files into sub-groups, each of

+ which is then sorted by substrings extracted using second regu-

+ lar expression and so on recursively.

+

+ Example:

+ set sortgroups=-(todo|done).*

+ this would group files with "-done" in their names and files

+ with "-todo" separately. On ascending sorting, group containing

+ "-done" would appear before the other one.

+

+ '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 de-

+ fault), '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 in-

+ stead (much faster and supports progress tracking). The option

+ should eventually be removed. Mostly *nix-like systems are af-

+ fected.

+

+ 'tablabel'

+ type: string

+ default: ""

+ When non-empty, determines format of the main part of a single

+ tab's label.

+

+ When empty, tab label is set to either tab name for named tabs

+ or to view title (usually current path) for unnamed tabs.

+

+ The following macros can appear in the format (see below for

+ what a flag is):

+

+ - %C - flag of a current tab

+

+ - %N - number of the tab

+

+ - %T - flag of a tree mode

+

+ - %c - description of a custom view

+

+ - %n - name of the tab

+

+ - %p - path of the view (handles filename modifiers)

+

+ - %t - title of the view (affected by 'shortmess' flags)

+

+ - %% - literal percent sign

+

+ - %[ - designates beginning of an optional block

+

+ - %] - designates end of an optional block

+

+ - %*, %0* - resets highlighting

+

+ - %1-%9 - applies one of User1..User9 highlight groups

+

+ In global tabs the view in bullets above refers to currently ac-

+ tive view of that tab.

+

+ Flag macros are a special kind of macros that always expand to

+ an empty value and are ment to be used inside optional blocks to

+ control their visibility.

+

+ Optional blocks are ignored unless at least one macro inside of

+ them is expanded to a non-empty value or is a set flag macro.

+

+ " %[(%n)%] -- optional name of the tab

+ " %[ -- optional description of the view

+ " %[%T{tree}%] -- mark of tree mode

+ " %[{%c}%] -- description of custom view

+ " @ -- just an extra separator before the path

+ ' %]

+ " %p:t -- tail part of view's location

+ set tablabel=%[(%n)%]%[%[%T{tree}%]%[{%c}%]@%]%p:t

+

+ 'tabprefix'

+ type: string

+ default: "[%N:"

+ Determines prefix of a tab's label. Formatting is done as for

+ 'tablabel' option.

+

+ '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.

+

+ 'tabsuffix'

+ type: string

+ default: "]"

+ Determines suffix of a tab's label. Formatting is done as for

+ 'tablabel' option.

+

+ '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. Because not

+ all terminals support setting title, this works only if `$TERM`

+ value matches one of the following conditions:

+ - equals "xterm" or starts with "xterm-"

+ - equals "rxvt" or starts with "rxvt-"

+ - equals "screen" or starts with "screen-"

+ - equals "aterm"

+ - equals "Eterm"

+

+ '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 el-

+ ement starts with "%r/". Value of the option can contain envi-

+ ronment variables (of form "$envname"), which will be expanded

+ (prepend $ with a slash to prevent expansion). Environment

+ 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: "psv"

+ 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 "...").

+ v - vary width of middle border to equalize view sizes.

+

+ '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"

+ Command used to edit files in various contexts. Ampersand sign

+ at the end (regardless whether it's preceded by space or not)

+ means backgrounding 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-

+ side a graphical environment.

+

+ 'vifminfo'

+ type: set

+ default: bookmarks,bmarks

+ Controls what will be saved in the $VIFM/vifminfo file.

+

+ bmarks - named bookmarks (see :bmark command)

+ 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

+ 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 instance is empty

+ registers - registers content

+ tabs - global or pane tabs

+ 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-de-

+ fined 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

+ passthe count to a different command.

+ v:count1

+ same as v:count, but 1 by default.

+ v:jobcount

+ number of active jobs (as can be seen in the :jobs menu).

+ v:session

+ name of the current session or empty string.

+ 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}.

+ extcached({cache}, {path}, {extcmd})

+ String Caches output of {extcmd} per {cache}

+ and

+ {path} combination.

+ 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 de-

+ scribing 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')

+

+ extcached({cache}, {path}, {extcmd})

+

+ Caches value of {extcmd} external command automatically updating it as

+ necessary based on monitoring change date of a {path}. The cache is

+ invalidated when file or its meta-data is updated. A single path can

+ have multiple caches associated with it.

+

+ {path} value is normalized, but symbolic links in it aren't resolved.

+

+ Example:

+

+ " display number and size of blocks actually used by a file or directory

+ set statusline+=" Uses: %{ extcached('uses',

+ expand('%c'),

+ expand('stat --format=%%bx%%B %c')) }"

+

+ 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 happen) or

+ non-file (pseudo-entries in compare view)

+

+ 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 horizontal 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 in-

+ terrupt the command.

+

+ Use this function to consume output of external commands that don't re-

+ quire 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' fnameescape(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'

+ fnameescape(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 al-

+ low 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 (: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.

+

+ File (:file) 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 di-

+ rectories, 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

+

+ Selecting a device either mounts (if it wasn't mounted yet) or navi-

+ gates to its first mount point.

+

+ Selecting a mount point navigates to it.

+

+ Selecting "not mounted" line causes mounting.

+

+ Selecting any other line does nothing.

+

+ r - reload the list.

+

+ m - mount/unmount device (cursor should be positioned on lines under

+ device information).

+

+ [ - put cursor on the previous device.

+

+ ] - put cursor on the next device.

+

+

+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 fu-

+ ture, 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 ex-

+ ample, 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 data they contain (combination of size and hash of

+ small chunk of contents is used as first approximation, so don't worry

+ too much about large files).

+

+ 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 exe-

+ cution. 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 or-

+ der:

+ - $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 ex-

+ ample:

+

+ set

+ \smartcase

+

+ equals "setsmartcase". When

+

+ set<space here>

+ \ smartcase

+

+ equals "set smartcase".

+

+ The $VIFM/vifminfo file contains generic state of the application. You

+ can control what is stored 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 reg-

+ isters 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 instance 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;

+

+ - all histories are marked with timestamps on storing, this means

+ that last instance to quit puts its elements on top of the list;

+

+ - tabs are merged only if both current instance and stored state con-

+ tain exactly one tab of any kind.

+

+ 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 ex-

+ tension being truncated).

+

+Sessions

+ Sessions provide a way to have multiple persistent runtime configura-

+ tions. Think of them as second-level vifminfo files in addition to the

+ first-level one used by all sessions. In other words, they aren't a

+ replacement for vifminfo file that exists without sessions, but an ad-

+ dition to it. One can empty 'vifminfo' option and rely solely on ses-

+ sions, but in practice one might want to share some state among in-

+ stances in different sessions or have an "out-of-sessions" state for

+ tasks that don't deserve a session of their own.

+

+ This leads to a two-level structure where data in session files has

+ higher priority than data in vifminfo files (where this makes sense)

+ following the same rules that merging of vifminfo file obeys. In addi-

+ tion to that, history items from session files are never ordered before

+ history items from vifminfo file.

+

+ Format

+

+ Sessions have the format of vifminfo files, they do not consist of se-

+ quence of command-line commands and are not meant to be sourced via

+ :source command.

+

+ Storage and naming

+

+ `$VIFM/sessions/` directory serves as a storage for sessions. Conse-

+ quently names should be valid filenames. The structure of the storage

+ is flat meaning that there are no subdirectories, that's why names of

+ sessions can't contain slashes.

+

+ Usage model

+

+ Contrary to Vim, vifm automates basic management of sessions. You can

+ start, switch, stop or delete a session using builtin means.

+

+ Current session is saved at the same time vifminfo is saved (on normal

+ exits or explicitly on :write command) and right before switching to

+ another session. To avoid saving in those cases use :session command

+ to detach (without saving) from a session before proceeding.

+

+ Related topics

+

+ Commands: :session, :delsession

+ Options: 'sessionoptions'

+ Variables: v:session

+

+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. These use special macros, which differ from

+ macros in commands unrelated to FUSE. Currently three formats are sup-

+ ported:

+

+ 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 re-

+ mote file systems over ftp or ssh.

+

+ Format line:

+ FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]

+

+ Example filetype command:

+

+ :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR

+

+ Example file content:

+

+ root@127.0.0.1:/

+

+ 3) FUSE_MOUNT3

+

+ This format is equivalent to FUSE_MOUNT, but omits unmounting. It is

+ useful for cases, when unmounting isn't needed, like when using AVFS.

+

+ Example :filetype command:

+

+ :filetype *.tar,*.tar.bz2,*.tbz2,*.tgz,*.tar.gz,*.tar.xz,*.txz,*.deb

+ \ {Mount with avfs}

+ \ FUSE_MOUNT3|mount-avfs %DESTINATION_DIR %SOURCE_FILE

+

+ Example `mount-avfs` helper script:

+

+ #!/bin/sh

+

+ dest=$1

+ file=$2

+

+ rmdir "$dest"

+ ln -s "$HOME/.avfs$file#/" "$dest"

+

+ 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.

+

+ Unlike macros elsewhere, these are recognized only if they appear at

+ the end of a command or are followed by a space. There is no way to

+ escape % either. These are historical limitations, which might be ad-

+ dressed in the future.

+

+ 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})

+

+ - {fileroot} - display name without extension for anything except for

+ directories and symbolic links to directories (as a complement for

+ {fileext})

+

+ 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, Er-

+ rorMsg, StatusLine, JobLine, SuggestBox and WildMenu are always de-

+ termined by the primary color scheme;

+

+ - CurrLine, Selected, Directory, Link, BrokenLink, Socket, Device,

+ Executable, Fifo, CmpMismatch, Win, AuxWin and OtherWin are deter-

+ mined 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 in-

+ serted 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 di-

+ rectory, 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.

+ :Vifm alias for :EditVifm.

+ :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 de-

+ fault 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 closest

+ mount point from current pane's 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.11 September 24, 2020 VIFM(1)

diff --git a/vifm/.config/vifm/vifminfo.json b/vifm/.config/vifm/vifminfo.json

new file mode 100644

index 0000000000000000000000000000000000000000..cf0b34aed945831a66832e212c2ea58a8dbaa9c5

--- /dev/null

+++ b/vifm/.config/vifm/vifminfo.json

@@ -0,0 +1 @@

+{"gtabs":[{"panes":[{"ptabs":[{"history":[{"dir":"/home/michal/Documents","file":"Notes","relpos":2,"ts":1618087714},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618087714},{"dir":"/home/michal/Downloads","file":"kartkówka z filmem gotyk (1).docx","relpos":3,"ts":1618087714},{"dir":"/home/michal","file":"Documents","relpos":1,"ts":1618087714},{"dir":"/home/michal/Documents","file":"Notes","relpos":2,"ts":1618087714},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618087714},{"dir":"/home/michal/Downloads","file":"kartkówka z filmem gotyk (1).docx","relpos":3,"ts":1618087714},{"dir":"/home/michal","file":"Documents","relpos":1,"ts":1618087714},{"dir":"/home/michal/Documents","file":"Notes","relpos":2,"ts":1618087714},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618087714},{"dir":"/home/michal/Downloads","file":"kartkówka z filmem gotyk (1).docx","relpos":3,"ts":1618087714},{"dir":"/home/michal","file":"Documents","relpos":1,"ts":1618087714},{"dir":"/home/michal/Documents","file":"Notes","relpos":2,"ts":1618087714},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618087714},{"dir":"/home/michal/Downloads","file":"kartkówka z filmem gotyk (1).docx","relpos":3,"ts":1618087714},{"dir":"/home/michal","file":"Documents","relpos":1,"ts":1618087714},{"dir":"/home/michal/Documents","file":"Notes","relpos":2,"ts":1618087714},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618087714},{"dir":"/home/michal/Downloads","file":"kartkówka z filmem gotyk (1).docx","relpos":3,"ts":1618087714},{"dir":"/home/michal","file":"Documents","relpos":1,"ts":1618087714},{"dir":"/home/michal/Documents","file":"Notes","relpos":2,"ts":1618087714},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618087714},{"dir":"/home/michal/Downloads","file":"kartkówka z filmem gotyk (1).docx","relpos":3,"ts":1618087714},{"dir":"/home/michal","file":"Documents","relpos":1,"ts":1618087714},{"dir":"/home/michal/Documents","file":"Notes","relpos":2,"ts":1618087714},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618087714},{"dir":"/home/michal/Downloads","file":"kartkówka z filmem gotyk (1).docx","relpos":3,"ts":1618087714},{"dir":"/home/michal","file":"Documents","relpos":1,"ts":1618087714},{"dir":"/home/michal/Documents","file":"Notes","relpos":2,"ts":1618087714},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618087714},{"dir":"/home/michal/Downloads","file":"kartkówka z filmem gotyk (1).docx","relpos":3,"ts":1618087714},{"dir":"/home/michal","file":"Documents","relpos":1,"ts":1618087714},{"dir":"/home/michal/Documents","file":"Notes","relpos":2,"ts":1618087714},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618087714},{"dir":"/home/michal/Downloads","file":"kartkówka z filmem gotyk (1).docx","relpos":3,"ts":1618087714},{"dir":"/home/michal","file":"Documents","relpos":1,"ts":1618087714},{"dir":"/home/michal/Documents","file":"Notes","relpos":2,"ts":1618087714},{"dir":"/home/michal/Documents/Notes","file":"EncryptedArch.md","relpos":1,"ts":1618088302},{"dir":"/home/michal/Documents","file":"archlinux-2021.04.01-x86_64.iso","relpos":5,"ts":1618091407},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618162168},{"dir":"/home/michal/Downloads","file":"odpowiedź.docx","relpos":7,"ts":1618162168},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618162168},{"dir":"/home/michal/Downloads","file":"odpowiedź.docx","relpos":7,"ts":1618162168},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618162168},{"dir":"/home/michal/Downloads","file":"odpowiedź.docx","relpos":7,"ts":1618162168},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618162168},{"dir":"/home/michal/Downloads","file":"odpowiedź.docx","relpos":7,"ts":1618162168},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618170370},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618170370},{"dir":"/home/michal/Media/Pictures","file":"..","relpos":0,"ts":1618170370},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618170370},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618170370},{"dir":"/home/michal/Media/Pictures","file":"..","relpos":0,"ts":1618170370},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618170370},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618170370},{"dir":"/home/michal/Media/Pictures","file":"..","relpos":0,"ts":1618170370},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618170370},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618170370},{"dir":"/home/michal/Media/Pictures","file":"..","relpos":0,"ts":1618170370},{"dir":"/home/michal/Projects/zsh-syntax-highlighting","file":"..","relpos":0,"ts":1618181805},{"dir":"/home","file":"michal","relpos":1,"ts":1618181817},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618181827},{"dir":"/home/michal/Projects","file":"dmenu","relpos":3,"ts":1618181847},{"dir":"/home/michal/Projects/zsh-syntax-highlighting","file":"..","relpos":0,"ts":1618182391},{"dir":"/home/michal/Projects","file":"zsh-syntax-highlighting","relpos":7,"ts":1618182391},{"dir":"/home/michal/Projects/zsh-syntax-highlighting","file":"..","relpos":0,"ts":1618182391},{"dir":"/home/michal/Projects","file":"zsh-syntax-highlighting","relpos":7,"ts":1618182391},{"dir":"/home/michal/Projects/zsh-syntax-highlighting","file":"..","relpos":0,"ts":1618182391},{"dir":"/home/michal/Projects","file":"zsh-syntax-highlighting","relpos":7,"ts":1618182391},{"dir":"/home/michal/Projects/zsh-syntax-highlighting","file":"..","relpos":0,"ts":1618182391},{"dir":"/home/michal/Projects","file":"zsh-syntax-highlighting","relpos":7,"ts":1618182391},{"dir":"/home/michal/Projects/zsh-syntax-highlighting","file":"..","relpos":0,"ts":1618182862},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184577},{"dir":"/home/michal/.config/vifm/colors","file":"onedark.vifm","relpos":2,"ts":1618184758},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184889},{"dir":"/home/michal/Projects","file":"zsh-syntax-highlighting","relpos":7,"ts":1618184889},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618184889},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618184889},{"dir":"/home/michal/Media/Pictures","file":"..","relpos":0,"ts":1618184889},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184889},{"dir":"/home/michal/Projects","file":"zsh-syntax-highlighting","relpos":7,"ts":1618184889},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618184889},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618184889},{"dir":"/home/michal/Media/Pictures","file":"..","relpos":0,"ts":1618184889},{"dir":"/home/michal/.config/vifm/colors","file":"Default.vifm","relpos":1,"ts":1618184941},{"dir":"/home/michal","file":"packettracer","relpos":6,"ts":1618185291},{"dir":"/home/michal/Media/Pictures","file":"..","relpos":0,"ts":1618186275},{"dir":"/home/michal/Media","file":"Video","relpos":2,"ts":1618186275},{"dir":"/home/michal/Media/Pictures","file":"..","relpos":0,"ts":1618186281},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618186281},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618186281},{"dir":"/home/michal/Media/Pictures","file":"eo.jpg","relpos":11,"ts":1618186286},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618186317},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618186317},{"dir":"/home/michal/Media/Pictures","file":"plancweli.png","relpos":16,"ts":1618187033},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618187033},{"dir":"/home/michal/packettracer","file":"saves","relpos":3,"ts":1618187037},{"dir":"/home/michal/packettracer/saves","file":"..","relpos":0,"ts":1618187037},{"dir":"/home/michal/packettracer","file":"saves","relpos":3,"ts":1618187037},{"dir":"/home/michal","file":"go","relpos":5,"ts":1618187037}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"last-location":"/home/michal","sorting":[2],"preview":false}]},{"ptabs":[{"history":[{"dir":"/home/michal/.local/bin","file":"rofi-files","relpos":10,"ts":1618182391},{"dir":"/home/michal/Projects/gemini","file":"notes","relpos":1,"ts":1618182391},{"dir":"/home/michal/Projects","file":"gemini","relpos":4,"ts":1618182391},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618182391},{"dir":"/home","file":"michal","relpos":1,"ts":1618182391},{"dir":"/home/michal","file":".oh-my-zsh","relpos":16,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh","file":"zsh","relpos":11,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh/zsh","file":"zsh-syntax-highlighting","relpos":1,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh/zsh/zsh-syntax-highlighting","file":"..","relpos":0,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh/zsh","file":"zsh-syntax-highlighting","relpos":1,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh","file":"zsh","relpos":11,"ts":1618182391},{"dir":"/home/michal","file":".local","relpos":14,"ts":1618182391},{"dir":"/home/michal/.local","file":"..","relpos":0,"ts":1618182391},{"dir":"/home/michal","file":".local","relpos":14,"ts":1618182391},{"dir":"/home/michal/.local","file":"bin","relpos":1,"ts":1618182391},{"dir":"/home/michal/.local/bin","file":"rofi-files","relpos":10,"ts":1618182391},{"dir":"/home/michal/Projects/gemini","file":"notes","relpos":1,"ts":1618182391},{"dir":"/home/michal/Projects","file":"gemini","relpos":4,"ts":1618182391},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618182391},{"dir":"/home","file":"michal","relpos":1,"ts":1618182391},{"dir":"/home/michal","file":".oh-my-zsh","relpos":16,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh","file":"zsh","relpos":11,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh/zsh","file":"zsh-syntax-highlighting","relpos":1,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh/zsh/zsh-syntax-highlighting","file":"..","relpos":0,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh/zsh","file":"zsh-syntax-highlighting","relpos":1,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh","file":"zsh","relpos":11,"ts":1618182391},{"dir":"/home/michal","file":".local","relpos":14,"ts":1618182391},{"dir":"/home/michal/.local","file":"..","relpos":0,"ts":1618182391},{"dir":"/home/michal","file":".local","relpos":14,"ts":1618182391},{"dir":"/home/michal/.local","file":"bin","relpos":1,"ts":1618182391},{"dir":"/home/michal/.local/bin","file":"rofi-files","relpos":10,"ts":1618182391},{"dir":"/home/michal/Projects/gemini","file":"notes","relpos":1,"ts":1618182391},{"dir":"/home/michal/Projects","file":"gemini","relpos":4,"ts":1618182391},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618182391},{"dir":"/home","file":"michal","relpos":1,"ts":1618182391},{"dir":"/home/michal","file":".oh-my-zsh","relpos":16,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh","file":"zsh","relpos":11,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh/zsh","file":"zsh-syntax-highlighting","relpos":1,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh/zsh/zsh-syntax-highlighting","file":"..","relpos":0,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh/zsh","file":"zsh-syntax-highlighting","relpos":1,"ts":1618182391},{"dir":"/home/michal/.oh-my-zsh","file":"zsh","relpos":11,"ts":1618182391},{"dir":"/home/michal","file":".local","relpos":14,"ts":1618182391},{"dir":"/home/michal/.local","file":"..","relpos":0,"ts":1618182391},{"dir":"/home/michal","file":".local","relpos":14,"ts":1618182391},{"dir":"/home/michal/.local","file":"bin","relpos":1,"ts":1618182391},{"dir":"/home/michal/.local/bin","file":"rofi-files","relpos":10,"ts":1618182391},{"dir":"/home/michal/.local","file":"bin","relpos":1,"ts":1618184577},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184577},{"dir":"/home/michal/Projects","file":"config.toml.txt","relpos":8,"ts":1618184577},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184577},{"dir":"/home/michal/Projects","file":"installutilities.sh","relpos":8,"ts":1618184577},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184577},{"dir":"/home/michal/Projects","file":"config.toml.txt","relpos":8,"ts":1618184577},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184577},{"dir":"/home/michal/Projects","file":"config.toml.txt","relpos":8,"ts":1618184577},{"dir":"/home/michal","file":".config","relpos":7,"ts":1618184577},{"dir":"/home/michal/.config","file":"amfora","relpos":9,"ts":1618184577},{"dir":"/home/michal/.config/amfora","file":"config.toml","relpos":1,"ts":1618184577},{"dir":"/home/michal/.local","file":"bin","relpos":1,"ts":1618184577},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184577},{"dir":"/home/michal/Projects","file":"config.toml.txt","relpos":8,"ts":1618184577},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184577},{"dir":"/home/michal/Projects","file":"installutilities.sh","relpos":8,"ts":1618184577},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184577},{"dir":"/home/michal/Projects","file":"config.toml.txt","relpos":8,"ts":1618184577},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618184577},{"dir":"/home/michal/Projects","file":"config.toml.txt","relpos":8,"ts":1618184577},{"dir":"/home/michal","file":".config","relpos":7,"ts":1618184577},{"dir":"/home/michal/.config","file":"amfora","relpos":9,"ts":1618184577},{"dir":"/home/michal/.config/amfora","file":"config.toml","relpos":1,"ts":1618184577},{"dir":"/home/michal/.config","file":"amfora","relpos":9,"ts":1618184758},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618184758},{"dir":"/home/michal/Downloads","file":"odpowiedź.docx","relpos":7,"ts":1618184758},{"dir":"/home/michal/.config","file":"amfora","relpos":9,"ts":1618184758},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618184758},{"dir":"/home/michal/Downloads","file":"odpowiedź.docx","relpos":7,"ts":1618184758},{"dir":"/home/michal","file":"packettracer","relpos":6,"ts":1618184841},{"dir":"/home/michal/.local","file":"bin","relpos":1,"ts":1618184889},{"dir":"/home/michal","file":".local","relpos":14,"ts":1618184889},{"dir":"/home","file":"michal","relpos":1,"ts":1618184889},{"dir":"/home/michal","file":".local","relpos":14,"ts":1618184889},{"dir":"/home","file":"michal","relpos":1,"ts":1618184889},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618184889},{"dir":"/home/michal/.local","file":"bin","relpos":1,"ts":1618184889},{"dir":"/home/michal","file":".local","relpos":14,"ts":1618184889},{"dir":"/home","file":"michal","relpos":1,"ts":1618184889},{"dir":"/home/michal","file":".local","relpos":14,"ts":1618184889},{"dir":"/home","file":"michal","relpos":1,"ts":1618184889},{"dir":"/home/michal","file":"Downloads","relpos":2,"ts":1618184889},{"dir":"/home/michal/Downloads","file":"kartkówka z filmem gotyk (1) (1).docx","relpos":4,"ts":1618184941},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618186102},{"dir":"/home/michal/Projects","file":"config.toml.txt","relpos":8,"ts":1618186102},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618186102},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618186102},{"dir":"/home/michal/Media/Pictures","file":"eo.jpg","relpos":11,"ts":1618186102},{"dir":"/home/michal","file":"Projects","relpos":4,"ts":1618186102},{"dir":"/home/michal/Projects","file":"config.toml.txt","relpos":8,"ts":1618186102},{"dir":"/home/michal","file":"Media","relpos":3,"ts":1618186102},{"dir":"/home/michal/Media","file":"Pictures","relpos":1,"ts":1618186102},{"dir":"/home/michal/Media/Pictures","file":"eo.jpg","relpos":11,"ts":1618186102}],"filters":{"invert":true,"dot":true,"manual":"","auto":""},"last-location":"/home/michal/Media/Pictures","sorting":[2],"preview":false}]}],"active-pane":1,"preview":false,"splitter":{"pos":-1,"ratio":0.5,"orientation":"v","expanded":false}}],"trash":[{"trashed":"/home/michal/.local/share/vifm/Trash/000_config.toml","original":"/home/michal/.config/amfora/config.toml"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_zsh-syntax-highlighting.plugin.zsh","original":"/home/michal/.config/vifm/colors/zsh-syntax-highlighting.plugin.zsh"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_zsh-syntax-highlighting.zsh","original":"/home/michal/.config/vifm/colors/zsh-syntax-highlighting.zsh"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_2021-04-11T18:19:11,213040143+02:00.png","original":"/home/michal/2021-04-11T18:19:11,213040143+02:00.png"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_2021-04-11T18:29:18,350136924+02:00.png","original":"/home/michal/2021-04-11T18:29:18,350136924+02:00.png"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_2021-04-11T18:29:55,498827633+02:00.png","original":"/home/michal/2021-04-11T18:29:55,498827633+02:00.png"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_OdpowiedźMateriałnazajęcia10i17listopada2020.docx","original":"/home/michal/Downloads/OdpowiedźMateriałnazajęcia10i17listopada2020.docx"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_Odpowiedźmateriałnazajęcia17listopada.docx","original":"/home/michal/Downloads/Odpowiedźmateriałnazajęcia17listopada.docx"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_Farysfresh.png","original":"/home/michal/Farysfresh.png"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_EncryptedArch.gmi","original":"/home/michal/Projects/Notes/EncryptedArch.gmi"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_GicikShell.gmi","original":"/home/michal/Projects/Notes/GicikShell.gmi"},{"trashed":"/home/michal/.local/share/vifm/Trash/001_GicikShell.gmi","original":"/home/michal/Projects/Notes/GicikShell.gmi"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_OdpowiedźMateriałnazajęcia10i17listopada2020.docx","original":"/home/michal/Projects/Notes/OdpowiedźMateriałnazajęcia10i17listopada2020.docx"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_Odpowiedźmateriałnazajęcia17listopada.docx","original":"/home/michal/Projects/Notes/Odpowiedźmateriałnazajęcia17listopada.docx"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_UefiArch.gmi","original":"/home/michal/Projects/Notes/UefiArch.gmi"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_encrypted.arch.gmi","original":"/home/michal/Projects/Notes/encrypted.arch.gmi"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_uefi.arch.gmi","original":"/home/michal/Projects/Notes/uefi.arch.gmi"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_archlinux-2021.04.01-x86_64.iso","original":"/home/michal/Projects/archlinux-2021.04.01-x86_64.iso"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_asso-rip.pkt","original":"/home/michal/Projects/asso-rip.pkt"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_commands (1).rc","original":"/home/michal/Projects/commands (1).rc"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_commands.rc","original":"/home/michal/Projects/commands.rc"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_config.toml.txt","original":"/home/michal/Projects/config.toml.txt"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_EncryptedArch.md","original":"/home/michal/Projects/gemini/EncryptedArch.md"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_GicikShell.md","original":"/home/michal/Projects/gemini/GicikShell.md"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_UefiArch.md","original":"/home/michal/Projects/gemini/UefiArch.md"},{"trashed":"/home/michal/.local/share/vifm/Trash/001_encrypted.arch.gmi","original":"/home/michal/Projects/gemini/notes/encrypted.arch.gmi"},{"trashed":"/home/michal/.local/share/vifm/Trash/001_uefi.arch.gmi","original":"/home/michal/Projects/gemini/notes/uefi.arch.gmi"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_uefi.arch.md","original":"/home/michal/Projects/gemini/notes/uefi.arch.md"},{"trashed":"/home/michal/.local/share/vifm/Trash/000_arch.png","original":"/home/michal/arch.png"}],"marks":{"H":{"dir":"/home/michal/","file":"..","ts":1618083802},"b":{"dir":"/home/michal/bin/","file":"..","ts":1618083802},"h":{"dir":"/home/michal/","file":"..","ts":1618083802},"m":{"dir":"/home/michal/Projects/Notes","file":"EncryptedArch.md","ts":1618088599},"z":{"dir":"/home/michal/.config/vifm","file":"..","ts":1618083802}},"bmarks":{},"cmd-hist":[{"text":"set cpoptions ","ts":1618086292},{"text":"mkdir","ts":1618090087},{"text":"mkdir Notes","ts":1618090087},{"text":"cp -r ~/Documents/Notes .","ts":1618090087},{"text":"H","ts":1618182391},{"text":"h","ts":1618182391},{"text":"rename","ts":1618184577},{"text":"a","ts":1618186102},{"text":"q","ts":1618186102},{"text":"Q","ts":1618186286},{"text":"sh","ts":1618187037}],"search-hist":[{"text":"am","ts":1618184577}],"prompt-hist":[{"text":"odp.docx","ts":1618162168},{"text":"config.toml","ts":1618184577},{"text":"Farysfresh.png","ts":1618186102},{"text":".go","ts":1618187037}],"regs":{"\"":["/home/michal/.local/share/vifm/Trash/000_Farysfresh.png"]},"dir-stack":[],"use-term-multiplexer":false}

\ No newline at end of file

diff --git a/vifm/.config/vifm/vifmrc b/vifm/.config/vifm/vifmrc

new file mode 100644

index 0000000000000000000000000000000000000000..da1375f395e27ce0602da1e6c28c1c420c8088f0

--- /dev/null

+++ b/vifm/.config/vifm/vifmrc

@@ -0,0 +1,504 @@

+" vim: filetype=vifm :

+" Sample configuration file for vifm (last updated: 9 September, 2020)

+" You can edit this file by hand.

+" The " character at the beginning of a line comments out the line.

+" Blank lines are ignored.

+" The basic format for each item is shown with an example.

+

+" ------------------------------------------------------------------------------

+

+" Command used to edit files in various contexts. The default is vim.

+" If you would like to use another vi clone such as Elvis or Vile

+" you will need to change this setting.

+

+set vicmd=nvim

+" set vicmd=elvis\ -G\ termcap

+" set vicmd=vile

+

+" This makes vifm perform file operations on its own instead of relying on

+" standard utilities like `cp`. While using `cp` and alike is a more universal

+" solution, it's also much slower when processing large amounts of files and

+" doesn't support progress measuring.

+

+set syscalls

+

+" Trash Directory

+" The default is to move files that are deleted with dd or :d to

+" the trash directory. If you change this you will not be able to move

+" files by deleting them and then using p to put the file in the new location.

+" I recommend not changing this until you are familiar with vifm.

+" This probably shouldn't be an option.

+

+set trash

+

+" This is how many directories to store in the directory history.

+

+set history=100

+

+" Automatically resolve symbolic links on l or Enter.

+

+set nofollowlinks

+

+" With this option turned on you can run partially entered commands with

+" unambiguous beginning using :! (e.g. :!Te instead of :!Terminal or :!Te<tab>).

+

+" set fastrun

+

+" Natural sort of (version) numbers within text.

+

+set sortnumbers

+

+" Maximum number of changes that can be undone.

+

+set undolevels=100

+

+" Use Vim's format of help file (has highlighting and "hyperlinks").

+" If you would rather use a plain text help file set novimhelp.

+

+set vimhelp

+

+" If you would like to run an executable file when you

+" press Enter, l or Right Arrow, set this.

+

+set norunexec

+

+" List of color schemes to try (picks the first one supported by the terminal)

+

+colorscheme gruvbox

+

+" Format for displaying time in file list. For example:

+" TIME_STAMP_FORMAT=%m/%d-%H:%M

+" See man date or man strftime for details.

+

+set timefmt=%m/%d\ %H:%M

+

+" Show list of matches on tab completion in command-line mode

+

+set wildmenu

+

+" Display completions in a form of popup with descriptions of the matches

+

+set wildstyle=popup

+

+" Display suggestions in normal, visual and view modes for keys, marks and

+" registers (at most 5 files). In other view, when available.

+

+set suggestoptions=normal,visual,view,otherpane,keys,marks,registers

+

+" Ignore case in search patterns unless it contains at least one uppercase

+" letter

+

+set ignorecase

+set smartcase

+

+" Don't highlight search results automatically

+

+set nohlsearch

+

+" Use increment searching (search while typing)

+set incsearch

+

+" Try to leave some space from cursor to upper/lower border in lists

+

+set scrolloff=4

+

+" Don't do too many requests to slow file systems

+

+if !has('win')

+ set slowfs=curlftpfs

+endif

+

+" Set custom status line look

+

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

+

+" ------------------------------------------------------------------------------

+

+" :mark mark /full/directory/path [filename]

+

+mark b ~/bin/

+mark h ~/

+

+" ------------------------------------------------------------------------------

+

+" :com[mand][!] command_name action

+" The following macros can be used in a command

+" %a is replaced with the user arguments.

+" %c the current file under the cursor.

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

+" %f the current selected file, or files.

+" %F the current selected file, or files in the other directory.

+" %b same as %f %F.

+" %d the current directory name.

+" %D the other window directory name.

+" %m run the command in a menu window

+

+command! df df -h %m 2> /dev/null

+command! diff vim -d %f %F

+command! zip zip -r %f.zip %f

+command! run !! ./%f

+command! make !!make %a

+command! mkcd :mkdir %a | cd %a

+command! vgrep vim "+grep %a"

+command! reload :write | restart full

+

+" ------------------------------------------------------------------------------

+

+" 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 like %f, %F, %d, %D 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},<application/pdf> foxitreader

+fileviewer {*.pdf},<application/pdf> pdftotext -nopgbrk %c -

+

+" PostScript

+filextype {*.ps,*.eps,*.ps.gz},<application/postscript>

+ \ {View in zathura}

+ \ zathura %f,

+ \ {View in gv}

+ \ gv %c %i &,

+

+" Djvu

+filextype {*.djvu},<image/vnd.djvu>

+ \ {View in zathura}

+ \ zathura %f,

+ \ {View in apvlv}

+ \ foxitreader %f,

+

+" Audio

+filetype {*.wav,*.mp3,*.flac,*.m4a,*.wma,*.ape,*.ac3,*.og[agx],*.spx,*.opus},

+ \<audio/*>

+ \ {Play using ffplay}

+ \ ffplay -nodisp -autoexit %c,

+ \ {Play using MPlayer}

+ \ mpv %f,

+fileviewer {*.mp3},<audio/mpeg> mp3info

+fileviewer {*.flac},<audio/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]},

+ \<video/*>

+ \ {View using ffplay}

+ \ ffplay -fs -autoexit %f,

+ \ {View using Dragon}

+ \ dragon %f:p,

+ \ {View using mpv}

+ \ mpv %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]},

+ \<video/*>

+ \ ffprobe -pretty %c 2>&1

+

+" Web

+filextype {*.html,*.htm},<text/html>

+ \ {Open with dwb}

+ \ dwb %f %i &,

+ \ {Open with firefox}

+ \ firefox %f &,

+ \ {Open with uzbl}

+ \ uzbl-browser %f %i &,

+filetype {*.html,*.htm},<text/html> links, lynx

+

+" Object

+filetype {*.o},<application/x-object> nm %f | less

+

+" Man page

+filetype {*.[1-8]},<text/troff> man ./%c

+fileviewer {*.[1-8]},<text/troff> man ./%c | col -b

+

+" Images

+filextype {*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm},<image/*>

+ \ mirage,

+ \ {View in sxiv}

+ \ sxiv %f,

+ \ {View in gpicview}

+ \ gpicview %c,

+ \ {View in shotwell}

+ \ shotwell,

+fileviewer {*.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm},<image/*>

+ \ identify %f

+

+" 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},<application/pgp-signature>

+ \ {Check signature}

+ \ !!gpg --verify %c,

+

+" Torrent

+filetype {*.torrent},<application/x-bittorrent> ktorrent %f &

+fileviewer {*.torrent},<application/x-bittorrent> dumptorrent -v %c

+

+" FuseZipMount

+filetype {*.zip,*.jar,*.war,*.ear,*.oxt,*.apkg},

+ \<application/zip,application/java-archive>

+ \ {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},

+ \<application/x-tar>

+ \ {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},<application/x-tar> tar -tf %c

+

+" Rar2FsMount and rar archives

+filetype {*.rar},<application/x-rar>

+ \ {Mount with rar2fs}

+ \ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR,

+fileviewer {*.rar},<application/x-rar> unrar v %c

+

+" IsoMount

+filetype {*.iso},<application/x-iso9660-image>

+ \ {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},<application/x-7z-compressed>

+ \ {Mount with fuse-7z}

+ \ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR,

+fileviewer {*.7z},<application/x-7z-compressed> 7z l %c

+

+" Office files

+filextype {*.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx,*.ppt},

+ \<application/vnd.openxmlformats-officedocument.*,

+ \application/msword,

+ \application/vnd.ms-excel>

+ \ libreoffice %f &

+fileviewer {*.doc},<application/msword> catdoc %c

+fileviewer {*.docx},

+ \<application/

+ \vnd.openxmlformats-officedocument.wordprocessingml.document>

+ \ 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

+

+" ------------------------------------------------------------------------------

+

+" What should be saved automatically between vifm sessions. Drop "savedirs"

+" value if you don't want vifm to remember last visited directories for you.

+set vifminfo=dhistory,savedirs,chistory,state,tui,shistory,

+ \phistory,fhistory,dirstack,registers,bookmarks,bmarks

+

+" ------------------------------------------------------------------------------

+

+" Examples of configuring both panels

+

+" Customize view columns a bit (enable ellipsis for truncated file names)

+"

+" set viewcolumns=-{name}..,6{}.

+

+" Filter-out build and temporary files

+"

+" filter! {*.lo,*.o,*.d,*.class,*.pyc,*.pyo,.*~}

+

+" ------------------------------------------------------------------------------

+

+" Sample mappings

+

+" Start shell in current directory

+nnoremap s :shell<cr>

+

+" Display sorting dialog

+nnoremap S :sort<cr>

+

+" Toggle visibility of preview window

+nnoremap w :view<cr>

+vnoremap w :view<cr>gv

+

+" Open file in existing instance of gvim

+nnoremap o :!gvim --remote-tab-silent %f<cr>

+" Open file in new instance of gvim

+nnoremap O :!gvim %f<cr>

+

+" Open file in the background using its default program

+nnoremap gb :file &<cr>l

+

+" Interaction with system clipboard

+if has('win')

+ " Yank current directory path to Windows clipboard with forward slashes

+ nnoremap yp :!echo %"d:gs!\!/! %i | clip<cr>

+ " Yank path to current file to Windows clipboard with forward slashes

+ nnoremap yf :!echo %"c:gs!\!/! %i | clip<cr>

+elseif executable('xclip')

+ " Yank current directory path into the clipboard

+ nnoremap yd :!echo %d | xclip %i<cr>

+ " Yank current file path into the clipboard

+ nnoremap yf :!echo %c:p | xclip %i<cr>

+elseif executable('xsel')

+ " Yank current directory path into primary and selection clipboards

+ nnoremap yd :!echo -n %d | xsel --input --primary %i &&

+ \ echo -n %d | xsel --clipboard --input %i<cr>

+ " Yank current file path into into primary and selection clipboards

+ nnoremap yf :!echo -n %c:p | xsel --input --primary %i &&

+ \ echo -n %c:p | xsel --clipboard --input %i<cr>

+endif

+

+" Mappings for faster renaming

+nnoremap I cw<c-a>

+nnoremap cc cw<c-u>

+nnoremap A cw

+

+" Open console in current directory

+nnoremap ,t :!alacritty &<cr>

+

+" Open editor to edit vifmrc and apply settings after returning to vifm

+nnoremap ,c :write | edit $MYVIFMRC | restart full<cr>

+" Open gvim to edit vifmrc

+nnoremap ,C :!gvim --remote-tab-silent $MYVIFMRC &<cr>

+

+" Toggle wrap setting on ,w key

+nnoremap ,w :set wrap!<cr>

+

+" Example of standard two-panel file managers mappings

+nnoremap <f3> :rsync -a --info=progress2<cr>

+nnoremap <f4> :edit<cr>

+nnoremap <f5> :copy<cr>

+nnoremap <f6> :move<cr>

+nnoremap <f7> :mkdir<space>

+nnoremap <f8> :delete<cr>

+

+" Midnight commander alike mappings

+" Open current directory in the other pane

+nnoremap <a-i> :sync<cr>

+" Open directory under cursor in the other pane

+nnoremap <a-o> :sync %c<cr>

+" Swap panes

+nnoremap <c-u> <c-w>x

+

+" ------------------------------------------------------------------------------

+

+" Various customization examples

+

+" Use ag (the silver searcher) instead of grep

+"

+" set grepprg='ag --line-numbers %i %a %s'

+

+" Add additional place to look for executables

+"

+" let $PATH = $HOME.'/bin/fuse:'.$PATH

+

+" Block particular shortcut

+"

+" nnoremap <left> <nop>

+

+" Export IPC name of current instance as environment variable and use it to

+" communicate with the instance later.

+"

+" It can be used in some shell script that gets run from inside vifm, for

+" example, like this:

+" vifm --server-name "$VIFM_SERVER_NAME" --remote +"cd '$PWD'"

+"

+" let $VIFM_SERVER_NAME = v:servername