6510 lines
259 KiB
Plaintext
6510 lines
259 KiB
Plaintext
*vifm-app.txt* For Vifm version 0.13 Last change: 2023 May 17
|
||
|
||
Email for bugs and suggestions: <xaizek@posteo.net>
|
||
|
||
|vifm-options| Command line arguments.
|
||
|vifm-general-keys| General keys, that work in the most of modes.
|
||
|vifm-normal| Normal mode keys.
|
||
|vifm-visual| Visual mode keys.
|
||
|vifm-view| View mode keys.
|
||
|vifm-command-line| Command line mode keys.
|
||
|vifm-command-line-edit| External editing of command line content.
|
||
|vifm-more| More mode keys.
|
||
|vifm-commands| How to use and set :commands.
|
||
|vifm-commands-bg| Backgrounding of commands.
|
||
|vifm-cancellation| Cancellation of commands.
|
||
|vifm-selection| How selection is handled on launching.
|
||
|vifm-patterns| Description of file match patterns.
|
||
|vifm-regexp| Regular expressions.
|
||
|vifm-globs| How globs work in vifm.
|
||
|vifm-set-options| Available options.
|
||
|vifm-mappings| Map arguments and special sequences.
|
||
|vifm-expression-syntax| Syntax of supported expressions.
|
||
|vifm-functions| List of builtin functions with description.
|
||
|vifm-menus-and-dialogs| Keys and commands for menus and dialogs.
|
||
|vifm-menus-history| Recalling previous menus.
|
||
|vifm-custom-views| Differences between regular and custom views.
|
||
|vifm-compare-views| Kinds, properties and differences of compare views.
|
||
|vifm-startup| Determining of environment variables on startup.
|
||
|vifm-configure| Configuration of vifm.
|
||
|vifm-sessions| Managing sessions.
|
||
|vifm-fuse| Using automated FUSE mounts.
|
||
|vifm-view-look| Gives general overview of view displaying variants.
|
||
|vifm-ls-view| Some details about ls-like view.
|
||
|vifm-column-view| Column view configuration details.
|
||
|vifm-color-schemes| Details on using color schemes in vifm.
|
||
|vifm-trash| Details about trash directory in vifm.
|
||
|vifm-clientserver| Client-server communication.
|
||
|vifm-ext-rename| About editing buffer of file names in an editor.
|
||
|vifm-mouse-using| Using the mouse.
|
||
|vifm-plugin| Using the vifm.vim plugin.
|
||
|vifm-reserved| List of reserved commands.
|
||
|vifm-env-vars| Environment variables that affect vifm or set by it.
|
||
|vifm-see-also| Other resources about vifm.
|
||
|
||
Tag name structure:
|
||
|
||
WHAT PREPEND EXAMPLE~
|
||
Normal mode command vifm- :help vifm-h
|
||
Visual mode command vifm-v_ :help vifm-v_u
|
||
View mode command vifm-q_ :help vifm-q_j
|
||
Menu or dialog command vifm-m_ :help vifm-m_zh
|
||
Command-line command vifm-: :help vifm-:quit
|
||
Command-line editing vifm-c_ :help vifm-c_CTRL-H
|
||
Command-line navigation vifm-a_ :help vifm-a_CTRL-Y
|
||
Vifm command argument vifm-- :help vifm--f
|
||
Option vifm-' :help vifm-'wrap'
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-options*
|
||
|
||
General format:
|
||
vifm [OPTION]... [ path [ path ] ]
|
||
|
||
vifm starts in the current directory unless it is given a different directory
|
||
on the command line or |vifm-'vifminfo'| includes "savedirs" (in which case
|
||
last visited directories are used as defaults).
|
||
|
||
vifm -
|
||
Read list of files from standard input stream and compose custom view out of
|
||
them (see |vifm-custom-views|). Current working directory is used as a base
|
||
for relative paths.
|
||
|
||
vifm /path/to/directory/one
|
||
or
|
||
vifm /path/to/directory/one /path/to/directory/two
|
||
|
||
Specifying two directories triggers split view even when vifm was in
|
||
single-view mode on finishing previous run. To suppress this behaviour
|
||
|vifm-: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.
|
||
|
||
The other command line arguments are:
|
||
--select <path> *vifm---select*
|
||
open parent directory of the given path and select specified file in it.
|
||
-f *vifm--f*
|
||
makes vifm instead of opening files write selection to $VIFM/vimfiles and
|
||
quit.
|
||
--choose-files <path>|- *vifm---choose-files*
|
||
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>|- *vifm---choose-dir*
|
||
sets output file to write last visited directory into on exit. "-" means
|
||
standard output. Use empty value to disable it.
|
||
--delimiter <delimiter> *vifm---delimiter*
|
||
sets separator for list of file paths written out by vifm. Empty value
|
||
means null character. Default is new line character.
|
||
--on-choose <command> *vifm---on-choose*
|
||
sets command to be executed on selected files instead of opening them.
|
||
The command may use any of |vifm-macros|. The command is executed once for
|
||
whole selection.
|
||
--plugins-dir <path> *vifm---plugins-dir*
|
||
additional plugins directory (can appear multiple times). The last one
|
||
added has the highest priority.
|
||
--logging[=<startup log path>] *vifm---logging*
|
||
log some operational details to $XDG_DATA_HOME/vifm/log or $VIFM/log. If
|
||
the optional startup log path is specified and permissions allow to open
|
||
it for writing, then logging of early initialization (before configuration
|
||
directories are determined) is put there.
|
||
--server-list *vifm---server-list*
|
||
list available server names and exit.
|
||
--server-name <name> *vifm---server-name*
|
||
name of target or this instance (sequential numbers are appended on name
|
||
conflict).
|
||
--remote *vifm---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 +<command> to execute commands in already
|
||
running instance of vifm. See also |vifm-clientserver|.
|
||
--remote-expr *vifm---remote-expr*
|
||
passes expression to vifm server and prints result. See also
|
||
|vifm-clientserver|.
|
||
-c <command>, +<command> *vifm--c* *vifm--+c*
|
||
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 double 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 the view.
|
||
--help, -h *vifm---help* *vifm--h*
|
||
show a brief command summary and exit vifm.
|
||
--version, -v *vifm---version* *vifm--v*
|
||
show the version information and exit.
|
||
--no-configs *vifm---no-configs*
|
||
skip reading vifmrc and vifminfo.
|
||
|
||
See |vifm-startup| section below for the explanations on |vifm-$VIFM|.
|
||
|
||
-------------------------------------------------------------------------------
|
||
*vifm-general-keys*
|
||
|
||
Ctrl-C or Escape *vifm-Escape* *vifm-CTRL-C*
|
||
cancel most operations (see |vifm-cancellation|), clear all selected files.
|
||
|
||
Ctrl-L *vifm-CTRL-L*
|
||
clear and redraw the screen. Can also reload file list in appropriate
|
||
modes (like normal and visual).
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-normal*
|
||
|
||
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. *vifm-k* *vifm-gk* *vifm-CTRL-P*
|
||
j, gj or Ctrl-N - move cursor down one line. *vifm-j* *vifm-gj* *vifm-CTRL-N*
|
||
|
||
h *vifm-h*
|
||
when |vifm-'lsview'| is off move up one directory (moves to parent
|
||
directory node in tree view), otherwise move left one file.
|
||
l *vifm-l*
|
||
when |vifm-'lsview'| is off move into a directory or launch a file,
|
||
otherwise move right one file. See |vifm-selection|.
|
||
|
||
gg - move to the first line of the file list. *vifm-gg*
|
||
G - move to the last line in the file list. *vifm-G*
|
||
|
||
gh *vifm-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 *vifm-gl* *vifm-Enter*
|
||
enter directory or launch a file. See |vifm-selection|.
|
||
|
||
|
||
H *vifm-H*
|
||
move to the first file in the window.
|
||
M *vifm-M*
|
||
move to the file in the middle of the window.
|
||
L *vifm-L*
|
||
move to the last file in the window.
|
||
|
||
|
||
Ctrl-F or Page Down - move forward one page. *vifm-CTRL-F* *vifm-PageDown*
|
||
Ctrl-B or Page Up - move back one page. *vifm-CTRL-B* *vifm-PageUp*
|
||
|
||
Ctrl-D - jump back one half page. *vifm-CTRL-D*
|
||
Ctrl-U - jump forward one half page. *vifm-CTRL-U*
|
||
|
||
{n}% *vifm-%*
|
||
move to the file that is {n} percent from the top of the list (for
|
||
example 25%).
|
||
|
||
0 or ^ *vifm-0* *vifm-^*
|
||
move cursor to the first column. See |vifm-'lsview'| option description.
|
||
|
||
$ *vifm-$*
|
||
move cursor to the last column. See |vifm-'lsview'| option description.
|
||
|
||
Space - switch file lists. *vifm-Space*
|
||
|
||
*vifm-gt*
|
||
gt - switch to the next tab (wrapping around).
|
||
{n}gt - switch to the tab number {n}.
|
||
|
||
*vifm-gT*
|
||
gT - switch to the previous tab (wrapping around).
|
||
{n}gT - switch to {n}-th previous tab (wrapping around).
|
||
|
||
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. *vifm-zt*
|
||
zz - redraw pane with file in center of list. *vifm-zz*
|
||
zb - redraw pane with file in bottom of list. *vifm-zb*
|
||
|
||
Ctrl-E *vifm-CTRL-E*
|
||
scroll pane one line down or column right (in transposed ls-like view).
|
||
Ctrl-Y *vifm-CTRL-Y*
|
||
scroll pane one line up or column left (in transposed ls-like view).
|
||
|
||
Pane manipulation~
|
||
|
||
Second character can be entered with or without Control key.
|
||
|
||
Ctrl-W H - move the pane to the far left. *vifm-CTRL-W_H*
|
||
Ctrl-W J - move the pane to the very bottom. *vifm-CTRL-W_J*
|
||
Ctrl-W K - move the pane to the very top. *vifm-CTRL-W_K*
|
||
Ctrl-W L - move the pane to the far right. *vifm-CTRL-W_L*
|
||
|
||
Ctrl-W h - switch to left pane. *vifm-CTRL-W_h*
|
||
Ctrl-W j - switch to pane below. *vifm-CTRL-W_j*
|
||
Ctrl-W k - switch to pane above. *vifm-CTRL-W_k*
|
||
Ctrl-W l - switch to right pane. *vifm-CTRL-W_l*
|
||
|
||
Ctrl-W b - switch to bottom-right window. *vifm-CTRL-W_b*
|
||
Ctrl-W t - switch to top-left window. *vifm-CTRL-W_t*
|
||
|
||
Ctrl-W p - switch to previous window. *vifm-CTRL-W_p*
|
||
Ctrl-W w - switch to other pane. *vifm-CTRL-W_w*
|
||
|
||
Ctrl-W o - leave only one pane. *vifm-CTRL-W_o*
|
||
Ctrl-W s - split window horizontally. *vifm-CTRL-W_s*
|
||
Ctrl-W v - split window vertically. *vifm-CTRL-W_v*
|
||
|
||
Ctrl-W x - exchange panes. *vifm-CTRL-W_x*
|
||
Ctrl-W z - quit preview pane or view modes. *vifm-CTRL-W_z*
|
||
|
||
Ctrl-W - - decrease size of the view by count. *vifm-CTRL-W_-*
|
||
Ctrl-W + - increase size of the view by count. *vifm-CTRL-W_+*
|
||
Ctrl-W < - decrease size of the view by count. *vifm-CTRL-W_<*
|
||
Ctrl-W > - increase size of the view by count. *vifm-CTRL-W_>*
|
||
|
||
Ctrl-W | - set current view size to count. *vifm-CTRL-W_bar*
|
||
Ctrl-W _ - set current view size to count. *vifm-CTRL-W__*
|
||
Ctrl-W = - make size of two views equal. *vifm-CTRL-W_=*
|
||
|
||
For Ctrl-W +, Ctrl-W -, Ctrl-W <, Ctrl-W >, Ctrl-W | and Ctrl-W _
|
||
commands 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 _ maximize 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] *vifm-m*
|
||
set a mark for the file at the current cursor position.
|
||
'[a-z][A-Z][0-9] *vifm-'*
|
||
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~
|
||
|
||
*vifm-/*
|
||
/regular expression
|
||
search for files matching regular expression in forward direction and
|
||
advance cursor to next match.
|
||
/
|
||
perform forward search with top item of search pattern history.
|
||
|
||
*vifm-?*
|
||
?regular expression
|
||
search for files matching regular expression in backward direction 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 |vifm-'hlsearch'| is set. Enabling
|
||
|vifm-'incsearch'| makes search interactive. |vifm-'ignorecase'| and
|
||
|vifm-'smartcase'| options affect case sensitivity of search queries as well
|
||
as local filter and other things detailed in the description of
|
||
|vifm-'caseoptions'|.
|
||
|
||
[count]n *vifm-n*
|
||
go to the next file matching last search pattern. Takes last search
|
||
direction into account.
|
||
|
||
[count]N *vifm-N*
|
||
go to the previous file matching last search pattern. Takes last search
|
||
direction into account.
|
||
|
||
If |vifm-'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.
|
||
|
||
See also |vifm-regexp|.
|
||
|
||
|
||
[count]f[character] *vifm-f*
|
||
search forward for file with [character] as first character in name.
|
||
Search wraps around the end of the list.
|
||
|
||
[count]F[character] *vifm-F*
|
||
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. *vifm-;*
|
||
[count], - find the previous match of f or F. *vifm-,*
|
||
|
||
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.
|
||
|
||
Filters~
|
||
*vifm-filters*
|
||
There are three basic file filters:
|
||
- dot files filter (does not affect "." and ".." special directories, whose
|
||
appearance is controlled by the |vifm-'dotdirs'| option), see
|
||
|vifm-'dotfiles'|
|
||
- permanent filter
|
||
- local filter (see |vifm-=|)
|
||
|
||
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 |vifm-:filter| command
|
||
- another one which is edited implicitly via |vifm-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 appending
|
||
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\/?$/
|
||
<
|
||
See also |vifm-patterns| and |vifm-regexp|.
|
||
|
||
The basic Vim folding key-bindings are used for managing filters.
|
||
|
||
za - toggle visibility of dot files. *vifm-za*
|
||
zo - show dot files. *vifm-zo*
|
||
zm - hide dot files. *vifm-zm*
|
||
|
||
zf - add selected files to permanent filter. *vifm-zf*
|
||
zO - reset permanent filter. *vifm-zO*
|
||
|
||
zR - save and reset all filters. *vifm-zR*
|
||
zr - clear local filter. *vifm-zr*
|
||
zM - restore all filters (undoes last zR). *vifm-zM*
|
||
|
||
zd *vifm-zd*
|
||
exclude selection or current file from a custom view. Does nothing for
|
||
regular view. For tree view excluding directory excludes that sub-tree.
|
||
For compare views zd hides group of adjacent identical files, count can
|
||
be specified as 1 to exclude just single file or selected items instead.
|
||
Files excluded this way are not counted as filtered out and can't be
|
||
returned unless view is reloaded.
|
||
|
||
=regular expression *vifm-=*
|
||
filter out files that don't match regular expression. Whether view is
|
||
updated as regular expression is changed depends on the value of the
|
||
|vifm-'incsearch'| option. This kind of filter is automatically reset
|
||
when directory is changed.
|
||
|
||
Tree-related Keys~
|
||
|
||
While some of the keys make sense outside of tree-view, they are most useful
|
||
in trees.
|
||
|
||
[z go to first sibling of current entry. *vifm-[z*
|
||
]z go to last sibling of current entry. *vifm-]z*
|
||
|
||
|
||
zj *vifm-zj*
|
||
go to next directory sibling of current entry or do nothing.
|
||
|
||
zk *vifm-zk*
|
||
go to previous directory sibling of current entry or do nothing.
|
||
|
||
|
||
zx *vifm-zx*
|
||
toggle fold under the cursor or parent entry of the current file if cursor
|
||
is not on a directory.
|
||
|
||
Other Normal Mode Keys~
|
||
|
||
[count]: *vifm-:*
|
||
enter command line mode. [count] generates range.
|
||
|
||
q: *vifm-q:*
|
||
open external editor to prompt for command-line command. See
|
||
|vifm-command-line-edit| section for details.
|
||
|
||
q/ *vifm-q/*
|
||
open external editor to prompt for search pattern to be searched
|
||
in forward direction. See |vifm-command-line-edit| section for
|
||
details.
|
||
|
||
q? *vifm-q?*
|
||
open external editor to prompt for search pattern to be searched
|
||
in backward direction. See |vifm-command-line-edit| section for
|
||
details.
|
||
|
||
q= *vifm-q=*
|
||
open external editor to prompt for filter pattern. See
|
||
|vifm-command-line-edit| section for details. Unlike other q{x}
|
||
commands this one doesn't work in Visual mode.
|
||
|
||
[count]!! and [count]!<selector> *vifm-!!*
|
||
enter command line mode with entered ! command. [count] modifies range.
|
||
|
||
Ctrl-O *vifm-CTRL-O*
|
||
go backwards through directory history of current view. Nonexistent
|
||
directories are automatically skipped.
|
||
|
||
Ctrl-I or Tab *vifm-CTRL-I* *vifm-Tab*
|
||
if |vifm-'cpoptions'| contains "t" flag (|vifm-cpo-t|), <tab> and
|
||
<c-i> switch active pane just like |vifm-Space| does, otherwise it
|
||
goes forward through directory history of current view. Nonexistent
|
||
directories are automatically skipped.
|
||
|
||
Ctrl-G *vifm-CTRL-G*
|
||
show a dialog with detailed information about current file.
|
||
See |vifm-menus-and-dialogs| for controls.
|
||
|
||
Shift-Tab *vifm-SHIFT-Tab*
|
||
enter view mode (|vifm-view|, works only after activating view pane
|
||
with |vifm-:view| command).
|
||
|
||
|
||
ga *vifm-ga*
|
||
calculate directory size. Uses cached directory sizes when possible
|
||
for better performance. As a special case calculating size of ".." entry
|
||
results in calculation of size of current directory.
|
||
gA *vifm-gA*
|
||
like ga, but force update. Ignores old values of directory sizes.
|
||
|
||
If file under cursor is selected, each selected item is processed,
|
||
otherwise only current file is updated.
|
||
|
||
|
||
gf *vifm-gf*
|
||
find link destination (like l with |vifm-'followlinks'| off, but also
|
||
finds directories). On Windows additionally follows .lnk-files.
|
||
|
||
gF *vifm-gF*
|
||
Same as gf, but resolves final path of the chain of symbolic links.
|
||
|
||
*vifm-gr*
|
||
gr {only for MS-Windows}
|
||
same as l key, but tries to run program with administrative
|
||
privileges.
|
||
|
||
|
||
av *vifm-av*
|
||
go into visual mode for updating current selection, any existing selection
|
||
is preserved.
|
||
|
||
gv *vifm-gv*
|
||
go into visual mode restoring last selection.
|
||
|
||
[reg]gs *vifm-gs*
|
||
If register is present, then all files listed in that register that are
|
||
visible in current view are selected.
|
||
|
||
When no register is specified, restore the last selection saved for this
|
||
view (similar to what |vifm-gv| does for visual mode selection). When you
|
||
leave a directory, its saved selection is remembered for that path and
|
||
visiting the directory again restores it. Selection for up to 10 distinct
|
||
file-system locations are remembered.
|
||
|
||
|
||
gu<selector> *vifm-gu*
|
||
make names of selected files lowercase.
|
||
[count]guu or [count]gugu *vifm-guu* *vifm-gugu*
|
||
make names of [count] files starting from the current one lowercase.
|
||
Without [count] only current file is affected.
|
||
|
||
gU<selector> *vifm-gU*
|
||
make names of selected files uppercase.
|
||
[count]gUU or [count]gUgU *vifm-gUU* *vifm-gUgU*
|
||
make names of [count] files starting from the current
|
||
one uppercase. Without [count] only current file is affected.
|
||
|
||
|
||
e - explore file in the current pane. *vifm-e*
|
||
|
||
i *vifm-i*
|
||
handle file (even if it's an executable and |vifm-'runexec'| option is
|
||
set).
|
||
|
||
|
||
cw *vifm-cw*
|
||
change word is used to rename a file or files. If multiple files are
|
||
selected, behaves as |vifm-:rename| command run without arguments.
|
||
|
||
cW *vifm-cW*
|
||
change WORD is used to change only name of file (without extension).
|
||
|
||
cl *vifm-cl*
|
||
change link target. If multiple files are selected, an editor is spawn
|
||
to edit paths.
|
||
|
||
*vifm-co*
|
||
co - change file owner. {only for *nix}
|
||
|
||
*vifm-cg*
|
||
cg - change file group. {only for *nix}
|
||
|
||
[count]cp *vifm-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
|
||
|vifm-menus-and-dialogs| for controls.
|
||
|
||
|
||
[count]C *vifm-C*
|
||
clone file [count] times.
|
||
|
||
dd *vifm-dd*
|
||
move selected file or files to |vifm-trash| directory (if |vifm-'trash'|
|
||
option is set, otherwise delete).
|
||
d<selector> *vifm-d*
|
||
like dd, but accepts motions/selectors.
|
||
|
||
DD and D<selector> *vifm-D* *vifm-DD*
|
||
like dd and d<selector>, but omitting |vifm-trash|
|
||
directory (even when |vifm-'trash'| option is set).
|
||
|
||
yy or Y *vifm-yy* *vifm-Y*
|
||
yank selected files.
|
||
y<selector> *vifm-y*
|
||
yank files specified by motion/selector.
|
||
|
||
p *vifm-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 yanked
|
||
from |vifm-trash| directory.
|
||
|
||
P *vifm-P*
|
||
move the last yanked files. The advantage of using P instead of d
|
||
followed by p is that P moves files only once. This isn't important in
|
||
case you're moving files in the same file system where your home
|
||
directory is, but using P to move files on some other file system (or
|
||
file systems, in case you want to move files from fs1 to fs2 and your
|
||
home is on fs3) can save your time.
|
||
|
||
al - put symbolic links with absolute paths. *vifm-al*
|
||
rl - put symbolic links with relative paths. *vifm-rl*
|
||
|
||
t - select or unselect (tag) the current file. *vifm-t*
|
||
|
||
u - undo last change. *vifm-u*
|
||
Ctrl-R - redo last change. *vifm-CTRL-R*
|
||
|
||
dp *vifm-dp*
|
||
in compare view of "ofboth grouppaths" kind makes corresponding entries
|
||
of the other pane equal to the current one. If at least one file is
|
||
selected, the command processes selection, otherwise current file.
|
||
|
||
The semantics is as follows:
|
||
- nothing is 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 is replaced
|
||
- file pairs are defined by matching relative paths
|
||
|
||
File removal obeys |vifm-'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 *vifm-do*
|
||
same as dp, but applies changes in the opposite direction.
|
||
|
||
v or V *vifm-v* *vifm-V*
|
||
start visual selection of files, clears current selection.
|
||
|
||
|
||
[count]Ctrl-A *vifm-CTRL-A*
|
||
increment first number in file name by [count] (1 by default).
|
||
|
||
[count]Ctrl-X *vifm-CTRL-X*
|
||
decrement first number in file name by [count] (1 by default).
|
||
|
||
|
||
ZQ - same as :quit!. *vifm-ZQ*
|
||
ZZ - same as |vifm-:quit|. *vifm-ZZ*
|
||
|
||
|
||
. *vifm-.*
|
||
repeat last command-line command (not normal mode command) of this
|
||
run (does nothing right after startup or |vifm-:restart| command).
|
||
The command doesn't depend on command-line history and can be used
|
||
with completely disabled history.
|
||
|
||
|
||
( *vifm-(*
|
||
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, ...
|
||
|
||
) *vifm-)*
|
||
go to next group. See ( key description above.
|
||
|
||
|
||
{ *vifm-{*
|
||
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".
|
||
|
||
} *vifm-}*
|
||
same as {, but in forward direction.
|
||
|
||
|
||
[c *vifm-[c*
|
||
go to previous mismatched entry in directory comparison view or do
|
||
nothing.
|
||
|
||
]c *vifm-]c*
|
||
go to next mismatched entry in directory comparison view or do nothing.
|
||
|
||
|
||
[d *vifm-[d*
|
||
go to previous directory entry or do nothing.
|
||
|
||
]d *vifm-]d*
|
||
go to next directory entry or do nothing.
|
||
|
||
|
||
[r same as |vifm-:siblprev|. *vifm-[r*
|
||
]r same as |vifm-:siblnext|. *vifm-]r*
|
||
[R same as |vifm-:siblprev|!. *vifm-[R*
|
||
]R same as |vifm-:siblnext|!. *vifm-]R*
|
||
|
||
|
||
[s *vifm-[s*
|
||
go to previous selected entry or do nothing.
|
||
|
||
]s *vifm-]s*
|
||
go to next selected entry or do nothing.
|
||
|
||
Using Count~
|
||
*vifm-count* *vifm-[count]*
|
||
You can use count with commands like yy.
|
||
|
||
[count]yy yank (count + 1) 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-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.
|
||
|
||
_ is black hole register. It can be used for writing, but its list is always
|
||
empty.
|
||
|
||
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.
|
||
|
||
Registers with names from a to z and from A to Z are named ones.
|
||
Lowercase 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
|
||
|vifm-trash| directory.
|
||
|
||
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~
|
||
*vifm-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.
|
||
|
||
j, k, gg, G, H, L, M, %, f, F, ;, comma, ', ^, 0 and $ can be used as
|
||
selectors for several commands.
|
||
Also following selectors can be used:
|
||
a - all files in current view
|
||
s - selected files
|
||
S - all files except selected
|
||
|
||
For example:
|
||
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
|
||
multiplied. 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.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-visual*
|
||
|
||
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 |vifm-v_o| or |vifm-v_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 (|vifm-v_Escape|, |vifm-v_CTRL-C|, |vifm-v_v|,
|
||
|vifm-v_V|). Contrary 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 |vifm-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 status bar
|
||
to know which one is currently active):
|
||
- append - amend selection by selecting elements in selection region;
|
||
- remove - amend selection by deselecting elements in selection region;
|
||
- invert - amend selection by inverting selection of elements in selection
|
||
region.
|
||
No matter how you activate selection editing it starts in "append" activated.
|
||
One can switch type of operation (in the order given above) via
|
||
|vifm-v_CTRL-G| key.
|
||
|
||
Almost all normal mode keys work in visual mode, but instead of accepting
|
||
selectors they operate on selected items.
|
||
|
||
Enter *vifm-v_Enter*
|
||
save selection and go back to normal mode not moving cursor.
|
||
|
||
av *vifm-v_av*
|
||
leave visual mode if in amending mode (restores previous selection),
|
||
otherwise switch to amending selection mode.
|
||
|
||
gv *vifm-v_gv*
|
||
restore previous visual selection.
|
||
|
||
Escape, Ctrl-C *vifm-v_Escape* *vifm-v_CTRL-C*
|
||
v, V *vifm-v_v* *vifm-v_V*
|
||
leave visual mode if not in amending mode, otherwise switch to normal
|
||
visual selection.
|
||
|
||
Ctrl-G *vifm-v_CTRL-G*
|
||
switch type of amending by round robin scheme: append -> remove -> invert.
|
||
|
||
: *vifm-v_:*
|
||
enter command line mode. Selection is cleared on leaving the mode.
|
||
|
||
o, O *vifm-v_o* *vifm-v_O*
|
||
switch active selection bound.
|
||
|
||
gu, u *vifm-v_gu* *vifm-v_u*
|
||
make names of selected files lowercase.
|
||
|
||
gU, U *vifm-v_gU* *vifm-v_U*
|
||
make names of selected files uppercase.
|
||
|
||
cl *vifm-v_cl*
|
||
change target of symbolic link(s).
|
||
|
||
cw *vifm-v_cw*
|
||
same as running |vifm-:rename| command without arguments.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-view*
|
||
|
||
This mode tries to imitate the less program. List of builtin shortcuts can be
|
||
found below. Shortcuts can be customized using |vifm-:qmap|, |vifm-:qnoremap| and
|
||
|vifm-:qunmap| command-line commands.
|
||
|
||
Shift-Tab, Tab *vifm-q_SHIFT-Tab* *vifm-q_Tab*
|
||
q, Q, ZZ *vifm-q_q* *vifm-q_Q* *vifm-q_ZZ*
|
||
return to normal mode.
|
||
|
||
|
||
[count]e, [count]Ctrl-E *vifm-q_e* *vifm-q_CTRL-E*
|
||
[count]j, [count]Ctrl-N *vifm-q_j* *vifm-q_CTRL-N*
|
||
[count]Enter *vifm-q_Enter*
|
||
scroll forward one line (or [count] lines).
|
||
|
||
[count]y, [count]Ctrl-Y *vifm-q_y* *vifm-q_CTRL-Y*
|
||
[count]k, [count]Ctrl-K *vifm-q_k* *vifm-q_CTRL-K*
|
||
[count]Ctrl-P *vifm-q_CTRL-P*
|
||
scroll backward one line (or [count] lines).
|
||
|
||
|
||
[count]f, [count]Ctrl-F *vifm-q_f* *vifm-q_CTRL-F*
|
||
[count]Ctrl-V, [count]Space *vifm-q_CTRL-V* *vifm-q_Space*
|
||
scroll forward one window (or [count] lines).
|
||
|
||
[count]b, [count]Ctrl-B *vifm-q_b* *vifm-q_CTRL-B*
|
||
[count]Alt-V *vifm-q_ALT-V*
|
||
scroll backward one window (or [count] lines).
|
||
|
||
[count]z *vifm-q_z*
|
||
scroll forward one window (and set window to [count]).
|
||
|
||
[count]w *vifm-q_w*
|
||
scroll backward one window (and set window to [count]).
|
||
|
||
[count]Alt-Space *vifm-q_ALT-Space*
|
||
scroll forward one window, but don't stop at end-of-file.
|
||
|
||
|
||
[count]d, [count]Ctrl-D *vifm-q_d* *vifm-q_CTRL-D*
|
||
scroll forward one half-window (and set half-window to [count]).
|
||
|
||
[count]u, [count]Ctrl-U *vifm-q_u* *vifm-q_CTRL-U*
|
||
scroll backward one half-window (and set half-window to [count]).
|
||
|
||
|
||
r, Ctrl-R *vifm-q_r* *vifm-q_CTRL-R*
|
||
Ctrl-L *vifm-q_CTRL-L*
|
||
repaint screen.
|
||
|
||
R *vifm-q_R*
|
||
reload view preserving scroll position.
|
||
|
||
F *vifm-q_F*
|
||
toggle automatic forwarding. Roughly equivalent to periodic file reload
|
||
and scrolling to the bottom. The behaviour is similar to `tail -F` or F
|
||
key in less.
|
||
|
||
a *vifm-q_a*
|
||
switch to the next viewer. Does nothing for preview constructed via `%q`
|
||
macro.
|
||
A *vifm-q_A*
|
||
switch to the previous viewer. Does nothing for preview constructed
|
||
via `%q` macro.
|
||
i *vifm-q_i*
|
||
toggle raw mode (ignoring of defined viewers). Does nothing for preview
|
||
constructed via `%q` macro.
|
||
|
||
|
||
[count]/pattern *vifm-q_/*
|
||
search forward for ([count]-th) matching line.
|
||
[count]?pattern *vifm-q_?*
|
||
search backward for ([count]-th) matching line.
|
||
|
||
[count]n *vifm-q_n*
|
||
repeat previous search (for [count]-th occurrence).
|
||
[count]N *vifm-q_N*
|
||
repeat previous search in reverse direction (for [count]-th occurrence).
|
||
|
||
|
||
[count]g, [count]< *vifm-q_g* *vifm-q_<*
|
||
[count]Alt-< *vifm-q_ALT-<*
|
||
scroll to the first line of the file (or line [count]).
|
||
|
||
[count]G, [count]> *vifm-q_G* *vifm-q_>*
|
||
[count]Alt-> *vifm-q_ALT->*
|
||
scroll to the last line of the file (or line [count]).
|
||
|
||
[count]p, [count]% *vifm-q_p* *vifm-q_%*
|
||
scroll to the beginning of the file (or N percent into file).
|
||
|
||
v *vifm-q_v*
|
||
invoke an editor to edit the current file being viewed. The command for
|
||
editing is taken from the |vifm-'vicmd'| or |vifm-'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 above work the same was as in |vifm-normal| mode. Active
|
||
mode is automatically changed on navigating among windows. When less-like
|
||
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).
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-command-line*
|
||
|
||
These keys are available in all submodes of the command line mode: command,
|
||
search, prompt and filtering.
|
||
|
||
Down, Up, Left, Right, Home, End and Delete are extended keys and they are not
|
||
available if vifm is compiled with --disable-extended-keys option.
|
||
|
||
Esc, Ctrl-C *vifm-c_Esc* *vifm-c_CTRL-C*
|
||
leave command line mode, cancels input. Cancelled input is saved into
|
||
appropriate history and can be recalled later.
|
||
|
||
Ctrl-M, Enter *vifm-c_CTRL-M* *vifm-c_Enter*
|
||
execute command and leave command line mode.
|
||
|
||
Ctrl-I, Tab *vifm-c_CTRL-I* *vifm-c_Tab*
|
||
complete command or its argument.
|
||
Shift-Tab *vifm-c_SHIFT-Tab*
|
||
complete in reverse order.
|
||
|
||
Ctrl-_ *vifm-c_CTRL-_*
|
||
stop completion and return original input.
|
||
|
||
Ctrl-B, Left - move cursor to the left. *vifm-c_CTRL-B* *vifm-c_Left*
|
||
Ctrl-F, Right - move cursor to the right. *vifm-c_CTRL-F* *vifm-c_Right*
|
||
|
||
Ctrl-A, Home - go to start of the line *vifm-c_CTRL-A* *vifm-c_Home*
|
||
Ctrl-E, End - go to end of the line. *vifm-c_CTRL-E* *vifm-c_End*
|
||
|
||
Alt-B - go to beginning of previous word. *vifm-c_ALT-B*
|
||
Alt-F - go to end of next word. *vifm-c_ALT-F*
|
||
|
||
Ctrl-U *vifm-c_CTRL-U*
|
||
remove characters from cursor position till beginning of the line.
|
||
Ctrl-K *vifm-c_CTRL-K*
|
||
remove characters from cursor position till end of the line.
|
||
|
||
Ctrl-H *vifm-c_CTRL-H*
|
||
Backspace *vifm-c_Backspace*
|
||
remove single character before the cursor.
|
||
Ctrl-D, Delete *vifm-c_CTRL-D* *vifm-c_Delete*
|
||
remove single character under the cursor.
|
||
|
||
Ctrl-W *vifm-c_CTRL-W*
|
||
remove characters from cursor position till beginning of previous word.
|
||
Alt-D *vifm-c_ALT-D*
|
||
remove characters from cursor position till beginning of next word.
|
||
|
||
Ctrl-T *vifm-c_CTRL-T*
|
||
swap the order of current and previous characters and move cursor forward
|
||
or, if cursor past the end of line, swap the order of two last characters
|
||
in the line.
|
||
|
||
Alt-. *vifm-c_ALT-.*
|
||
insert last part of previous command to current cursor position.
|
||
Each next call inserts part of previous command.
|
||
|
||
Ctrl-G *vifm-c_CTRL-G*
|
||
edit command-line content in external editor. See
|
||
|vifm-command-line-edit| section for details.
|
||
|
||
Ctrl-N *vifm-c_CTRL-N*
|
||
recall more recent command-line from history.
|
||
Ctrl-P *vifm-c_CTRL-P*
|
||
recall older command-line from history.
|
||
|
||
Up *vifm-c_Up*
|
||
recall more recent command-line from history, that begins as the current
|
||
command-line.
|
||
Down *vifm-c_Down*
|
||
recall older command-line from history, that begins as the current
|
||
command-line.
|
||
|
||
Ctrl-] - trigger abbreviation expansion. *vifm-c_CTRL-]*
|
||
|
||
Ctrl-R = *vifm-c_CTRL-R_=*
|
||
insert result of evaluating an expression. Expression is to be entered
|
||
via nested command-line prompt (where this key does nothing). Expansion
|
||
of an erroneous expression is empty.
|
||
|
||
Fast navigation~
|
||
|
||
In order to streamline navigation through directory tree, you can enter a
|
||
special form of command-line mode from search or local filter prompt. Once
|
||
activated, pressing Enter opens currently selected directory and clears the
|
||
prompt in anticipation of the next component of the path. If entry under the
|
||
cursor is a file, it is opened and the mode is finished.
|
||
|
||
This behaviour is embedded in a command-line mode, but doesn't update input
|
||
histories nor expands abbreviations and redefines some of the mode's mappings
|
||
for the purpose of faster navigation through the file system rather than
|
||
command-line editing. When on, prompt gets "nav" prefix.
|
||
|
||
You can enable this behaviour on search by default via a mapping like: >
|
||
nnoremap / /<c-y>
|
||
|
||
Ctrl-Y *vifm-c_CTRL-Y*
|
||
enter navigation mode. Works only for search and local filter started
|
||
from a normal mode and only when |vifm-'incsearch'| is set
|
||
(|vifm-'wrapscan'| is also nice to have set for search).
|
||
|
||
Ctrl-Y *vifm-a_CTRL-Y*
|
||
return to a regular command-line mode.
|
||
|
||
Enter, Right *vifm-a_Enter* *vifm-a_Right*
|
||
either enter a directory under the cursor without leaving the mode and
|
||
clear the prompt or leave the mode for files. If |vifm-'navoptions'|
|
||
specifies "open:all" a file under the cursor is opened after leaving the
|
||
mode.
|
||
Ctrl-O, Left *vifm-a_CTRL-O* *vifm-a_Left*
|
||
go to parent directory.
|
||
Ctrl-J *vifm-a_CTRL-J*
|
||
leave the mode without undoing cursor position or filter state.
|
||
|
||
Ctrl-N, Down *vifm-a_CTRL-N* *vifm-a_Down*
|
||
move view cursor down.
|
||
Ctrl-P, Up *vifm-a_CTRL-P* *vifm-a_Up*
|
||
move view cursor up.
|
||
|
||
Page Down *vifm-a_PageDown*
|
||
scroll view down.
|
||
Page Up *vifm-a_PageUp*
|
||
scroll view up.
|
||
|
||
Home *vifm-a_Home*
|
||
move view cursor to the first item.
|
||
End *vifm-a_End*
|
||
move view cursor to the last item.
|
||
|
||
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 uppercase
|
||
letters; it's still easy to remap the keys to correspond to names of
|
||
similar macros).
|
||
|
||
Ctrl-X c *vifm-c_CTRL-X_c*
|
||
name of the current file of the active pane.
|
||
|
||
Ctrl-X d *vifm-c_CTRL-X_d*
|
||
path to the current directory of the active pane.
|
||
|
||
Ctrl-X e *vifm-c_CTRL-X_e*
|
||
extension of the current file of the active pane.
|
||
|
||
Ctrl-X r *vifm-c_CTRL-X_r*
|
||
name root of current file of the active pane.
|
||
|
||
Ctrl-X t *vifm-c_CTRL-X_t*
|
||
the last component of path to the current directory of the active pane.
|
||
|
||
Ctrl-X Ctrl-X c *vifm-c_CTRL-X_CTRL-X_c*
|
||
name of the current file of the inactive pane.
|
||
|
||
Ctrl-X Ctrl-X d *vifm-c_CTRL-X_CTRL-X_d*
|
||
path to the current directory of the inactive pane.
|
||
|
||
Ctrl-X Ctrl-X e *vifm-c_CTRL-X_CTRL-X_e*
|
||
extension of the current file of the inactive pane.
|
||
|
||
Ctrl-X Ctrl-X r *vifm-c_CTRL-X_CTRL-X_r*
|
||
name root of current file of the inactive pane.
|
||
|
||
Ctrl-X Ctrl-X t *vifm-c_CTRL-X_CTRL-X_t*
|
||
the last component of path to the current directory of the inactive pane.
|
||
|
||
|
||
Ctrl-X a *vifm-c_CTRL-X_a*
|
||
value of implicit permanent filter (old name "automatic") of the active
|
||
pane.
|
||
|
||
Ctrl-X m *vifm-c_CTRL-X_m*
|
||
value of explicit permanent filter (old name "manual") of the active
|
||
pane.
|
||
|
||
Ctrl-X = *vifm-c_CTRL-X_=*
|
||
value of local filter of the active pane.
|
||
|
||
Ctrl-X / *vifm-c_CTRL-X_/*
|
||
last pattern from search history.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-command-line-edit*
|
||
|
||
vifm provides a facility to edit several kinds of data, that is usually edited
|
||
in command-line mode, in external editor (using command specified by
|
||
|vifm-'vicmd'| or |vifm-'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 |vifm-cw| and |vifm-cW|).
|
||
|
||
Editing command-line using external editor is activated by the |vifm-c_CTRL-G|
|
||
shortcut. It's also possible to do almost the same from Normal and Visual
|
||
modes using |vifm-q:|, |vifm-q/| and |vifm-q?| commands.
|
||
|
||
Temporary file created for the purpose of editing the line has the following
|
||
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.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-more*
|
||
*vifm-pager*
|
||
|
||
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.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-commands*
|
||
|
||
vifm-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 comment. Not all commands support inline
|
||
comments as their syntax conflicts with names of registers and fields where
|
||
double quotes are allowed.
|
||
|
||
Most of the commands have two forms: complete and the short one.
|
||
Example: >
|
||
:noh[lsearch]
|
||
This means the complete command is nohlsearch, and the short one is noh.
|
||
|
||
*vifm-commands-and-selection*
|
||
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;
|
||
- :view command;
|
||
- :normal command (when it doesn't leave command-line mode);
|
||
- :if and :else commands don't affect selection on successful execution.
|
||
|
||
*vifm-:bar*
|
||
'|' can be used to separate commands, so you can give multiple commands in one
|
||
line. If you want to use '|' in an argument, precede it with '\'.
|
||
|
||
These commands see '|' as part of their arguments even when it's escaped:
|
||
|
||
:[range]!
|
||
:amap
|
||
:anoremap
|
||
:autocmd
|
||
:cabbrev
|
||
:cmap
|
||
:cnoreabbrev
|
||
:cnoremap
|
||
:command
|
||
:dmap
|
||
:dnoremap
|
||
:filetype
|
||
:fileviewer
|
||
:filextype
|
||
:keepsel
|
||
: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
|
||
|vifm-:execute| command. An example: >
|
||
|
||
if filetype('.') == 'reg' | execute '!!echo regular file' | endif
|
||
<
|
||
*vifm-:range*
|
||
: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.
|
||
See |vifm-ranges| for the ranges implemented.
|
||
|
||
:[count]command
|
||
The only builtin :[count]command are :[count]d[elete] and :[count]y[ank].
|
||
Examples:
|
||
: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.
|
||
|
||
See |vifm-reserved| for a list of reserved command names.
|
||
|
||
The builtin commands are:
|
||
|
||
*vifm-:!*
|
||
:[range]!command
|
||
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
|
||
is run in the background using job control of your shell.
|
||
*vifm-:!!*
|
||
:[range]!!command
|
||
same as :!, but pauses before returning.
|
||
:!!
|
||
repeat the last command.
|
||
|
||
*vifm-:alink*
|
||
:[range]alink[!?]
|
||
create absolute symbolic links to files in directory of inactive view.
|
||
With "?" prompts for destination file names in an editor. "!" 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 argument list.
|
||
:[range]alink[!?] -skip ...
|
||
see |vifm-skip-param|.
|
||
|
||
*vifm-:apropos*
|
||
:apropos keyword...
|
||
create a menu of items returned by the apropos command. Selecting an item
|
||
in the menu opens corresponding man page. By default the command relies
|
||
on the external "apropos" utility, which can be customized by altering
|
||
value of the |vifm-'aproposprg'| option. See |vifm-menus-and-dialogs| for
|
||
controls.
|
||
:apropos
|
||
repeat last :apropos command.
|
||
|
||
*vifm-:autocmd* *vifm-:au*
|
||
: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 directory level)
|
||
- ** - matches any character (i.e., can match path of arbitrary 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 combination.
|
||
{event} and {pat} can be omitted to list all autocommands. To list any
|
||
autocommands for specific pattern one can use * placeholder in place of
|
||
{event}.
|
||
:au[tocmd]! [{event}] [{pat}]
|
||
remove autocommands that match given event-pattern combination. Syntax
|
||
is the same as for listing above.
|
||
|
||
*vifm-: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 bookmarking 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.
|
||
|
||
*vifm-:bmarks*
|
||
:bmarks
|
||
display all bookmarks in a menu. See |vifm-menus-and-dialogs| for
|
||
controls.
|
||
:bmarks [tag1 [tag2...]]
|
||
display menu of bookmarks that include all of the specified tags. See
|
||
|vifm-menus-and-dialogs| for controls.
|
||
|
||
*vifm-: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).
|
||
|
||
*vifm-:cabbrev* *vifm-:ca*
|
||
:ca[bbrev]
|
||
display menu of command-line mode abbreviations. See
|
||
|vifm-menus-and-dialogs| 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 overwrite existing abbreviation for command-line mode.
|
||
rhs can contain spaces and any special sequences accepted in rhs of
|
||
mappings (see |vifm-mappings|). Abbreviations are expanded non-recursively.
|
||
|
||
*vifm-:chistory* *vifm-:chi*
|
||
:chi[story]
|
||
display menu of saved menus. See |vifm-menus-and-dialogs| for controls,
|
||
also see |vifm-menus-history|.
|
||
|
||
*vifm-:cnoreabbrev*
|
||
*vifm-:cnorea*
|
||
:cnorea[bbrev]
|
||
display menu of command-line mode abbreviations. See
|
||
|vifm-menus-and-dialogs| 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 expansion.
|
||
|
||
*vifm-: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.
|
||
|
||
*vifm-:cds*
|
||
:cds[!] pattern string [flags]
|
||
navigate to path obtained by substituting first match in current path.
|
||
Arguments can include slashes, but starting first argument with a
|
||
separator will activate below form of the command. Specifying "!"
|
||
changes directory of both panes.
|
||
Available flags:
|
||
i - ignore case (the |vifm-'ignorecase'| and |vifm-'smartcase'|
|
||
options are not used)
|
||
I - don't ignore case (the |vifm-'ignorecase'| and
|
||
|vifm-'smartcase'| options are not used)
|
||
:cds[!]/pattern/string/[flags]
|
||
same as above, but with |vifm-:substitute|-like syntax. Other punctuation
|
||
characters can be used as separators.
|
||
|
||
:c[hange] *vifm-:change* *vifm-:c*
|
||
show a dialog to alter properties of files.
|
||
|
||
*vifm-: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.
|
||
|
||
*vifm-:chown*
|
||
{only for *nix}
|
||
:[range]chown
|
||
same as |vifm-co| key in normal mode.
|
||
:[range]chown [user][:][group]
|
||
change owner and/or group of files. Operates on directories recursively.
|
||
|
||
*vifm-:clone*
|
||
:[range]clone[!?]
|
||
clone files in current directory. With "?" prompts for destination file
|
||
names in an editor. "!" forces overwrite. Macros are expanded.
|
||
:[range]clone[!] path
|
||
clone files to directory specified with the path (absolute or relative to
|
||
current directory). Macros are expanded.
|
||
:[range]clone[!] name1 name2...
|
||
clone files in current directory giving each next clone a corresponding
|
||
name from the argument list. Macros are expanded.
|
||
|
||
*vifm-:colorscheme* *vifm-:colo*
|
||
:colo[rscheme]?
|
||
print current color scheme name on the status bar.
|
||
:colo[rscheme]
|
||
display a menu with a list of available color schemes. You can choose
|
||
primary color scheme here. It is used for view if no directory specific
|
||
colorscheme fits current path. It's also used to set border color (except
|
||
view titles) and colors in menus and dialogs. See
|
||
|vifm-menus-and-dialogs| 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 argument 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 remains unchanged.
|
||
For example: >
|
||
" use a separate color scheme for panes which are inside FUSE mounts
|
||
execute 'colorscheme in-fuse' &fusehome
|
||
|
||
:comc[lear] *vifm-:comclear* *vifm-:comc*
|
||
remove all user defined commands.
|
||
|
||
*vifm-:command* *vifm-:com*
|
||
:com[mand]
|
||
display a menu of user commands. See |vifm-menus-and-dialogs| 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.
|
||
|
||
User commands must start with an upper or lower case letter. Command
|
||
name can't contain special symbols except for a single trailing
|
||
'?' or '!'. Numbers are allowed provided that they don't cause parsing
|
||
ambiguity (no command name prefix that precedes a digit can match an
|
||
existing command unless it has a digit in the same place), for example: >
|
||
" good
|
||
:command mp3 command
|
||
" good
|
||
:command mp4 command
|
||
:command mp3! command
|
||
:command mp4? command
|
||
" bad
|
||
:command mp command
|
||
:command mp44 command
|
||
" good
|
||
:command mp4c command
|
||
<
|
||
User commands are run in a shell by default (see below for syntax 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
|
||
|vifm-macros| 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 |vifm-:filter|). For example: >
|
||
" display only audio files
|
||
:command onlyaudio filter/.+\.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
|
||
" display everything except audio files
|
||
:command noaudio filter!/.+\.\(mp3|wav|mp3|flac|ogg|m4a|wma|ape\)$/i
|
||
:com[mand] name :commands
|
||
set kind of an alias for internal commands (like in a shell). Passes
|
||
range given to the alias to aliased command, so running :%cp after >
|
||
:command cp :copy %a
|
||
< equals >
|
||
:%copy
|
||
<
|
||
*vifm-:compare*
|
||
:compare [byname | bysize | bycontents |
|
||
listall | listunique | listdups |
|
||
ofboth | ofone |
|
||
groupids | grouppaths |
|
||
skipempty | withicase | withrcase |
|
||
showidentical | showdifferent | showuniqueleft | showuniqueright]...
|
||
compare files in one or two views according to the arguments. The default
|
||
is "bycontents listall ofboth grouppaths showidentical showdifferent
|
||
showuniqueleft showuniqueright". See |vifm-compare-views| for
|
||
details. Diff structure is incompatible with alternative representations,
|
||
so values of |vifm-'lsview'| and |vifm-'millerview'| options are ignored.
|
||
:compare! (showidentical | showdifferent | showuniqueleft |
|
||
showuniqueright)...
|
||
this invocation form works only when compare view is active and results in
|
||
redoing of the previous :compare with toggled state of the passed in
|
||
options.
|
||
|
||
:cope[n] *vifm-:copen* *vifm-:cope*
|
||
reopens the last visible menu that has navigation to files by default, if
|
||
any. See |vifm-menus-history|.
|
||
|
||
*vifm-:copy* *vifm-:co*
|
||
:[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 overwrite.
|
||
:[range]co[py][!?] -skip ...
|
||
see |vifm-skip-param|.
|
||
|
||
:cq[uit][!] *vifm-:cquit* *vifm-:cq*
|
||
same as |vifm-:quit|, but also aborts directory choosing via
|
||
|vifm---choose-dir| (empties output file) and returns non-zero exit code.
|
||
|
||
*vifm-:cunabbrev* *vifm-:cuna*
|
||
: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.
|
||
|
||
*vifm-: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.
|
||
|
||
:delc[ommand] user_command *vifm-:delcommand* *vifm-:delc*
|
||
remove user defined command named user_command.
|
||
|
||
*vifm-:delete* *vifm-:d*
|
||
:[range]d[elete][!] [reg] [count]
|
||
delete selected or [count] files into [reg] (" by default). "!" means
|
||
complete removal (omitting trash).
|
||
:[range]d[elete][!] [count] &
|
||
delete [count] files in background. "!" means complete removal.
|
||
|
||
*vifm-:delmarks* *vifm-:delm*
|
||
:delm[arks]!
|
||
delete all marks.
|
||
:delm[arks] marks ...
|
||
delete specified marks, each argument is treated as a set of marks.
|
||
|
||
*vifm-:delsession*
|
||
:delsession name
|
||
delete specified session if it was stored previously. Deleting current
|
||
session doesn't detach it.
|
||
|
||
*vifm-:display* *vifm-:di*
|
||
: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 *vifm-:dirs*
|
||
display directory stack in a menu. See |vifm-menus-and-dialogs| for
|
||
controls.
|
||
|
||
:ec[ho] [<expr>...] *vifm-:echo* *vifm-:ec*
|
||
evaluate each argument as an expression and output them separated with a
|
||
space. See |vifm-:let| for definition of <expr>.
|
||
|
||
:[range]e[dit] [file...] *vifm-:edit* *vifm-:e*
|
||
open selected or passed file(s) in editor. Macros and environment
|
||
variables are expanded.
|
||
|
||
:el[se] *vifm-:else* *vifm-:el*
|
||
execute commands until next matching |vifm-:endif| if all other conditions
|
||
didn't match. See also |vifm-:if| and |vifm-commands-and-selection|.
|
||
|
||
:elsei[f] {expr1} *vifm-:elseif* *vifm-:elsei*
|
||
execute commands until next matching |vifm-:elseif|, |vifm-:else| or
|
||
|vifm-:endif| if conditions of previous :if and :elseif branches were
|
||
evaluated to zero. See also |vifm-:if| and |vifm-commands-and-selection|.
|
||
|
||
:empty *vifm-:empty*
|
||
permanently remove files from all existing non-empty trash directories (see
|
||
|vifm-trash|). Trash directories which are specified via %r and/or %u also
|
||
get deleted completely. Also remove all operations from undolist that have
|
||
no sense after :empty and remove all records about files located inside
|
||
directories from all registers. Removal is performed as background task
|
||
with undetermined amount of work and can be checked via |vifm-:jobs| menu.
|
||
|
||
:en[dif] *vifm-:endif* *vifm-:en*
|
||
end conditional block. See also |vifm-:if| and |vifm-:else|.
|
||
|
||
:exe[cute] [<expr>...] *vifm-:execute* *vifm-:exe*
|
||
evaluate each argument as an expression and join results separated by a
|
||
space to get a single string which is then executed as a command-line
|
||
command. See |vifm-:let| for definition of <expr>.
|
||
|
||
:exi[t][!] *vifm-:exit* *vifm-:exi*
|
||
same as |vifm-:quit|.
|
||
|
||
*vifm-:file* *vifm-:f*
|
||
:f[ile][ &]
|
||
display menu of programs set for the file type of the current file. " &"
|
||
forces running associated program in background. See
|
||
|vifm-menus-and-dialogs| for controls.
|
||
:f[ile] arg[ &]
|
||
run associated command that begins with the arg skipping opening menu. " &"
|
||
forces running associated program in background.
|
||
|
||
*vifm-:filetype* *vifm-:filet*
|
||
:filet[ype] pattern-list [{ descr }]def_program[ &],[{ descr }]prog2[ &],...
|
||
associate given program list to each of the patterns. Associated
|
||
program (command) is used by handlers of l and Enter keys (and also in
|
||
the :file menu). If you need to insert comma into command just double
|
||
it (",,"). Space followed by an ampersand as two last characters
|
||
means running command in background. Optional description can be given to
|
||
each command to ease understanding of what command does in the :file menu.
|
||
The rest of the programs for an association is inspected if the default
|
||
one isn't found. When program entry doesn't contain any of vifm macros,
|
||
name of current file is appended as if program entry ended with %c macro
|
||
on *nix and %"c on Windows. On Windows path to executables containing
|
||
spaces can (and should be for correct work with such paths) be double
|
||
quoted. See |vifm-patterns| for pattern definition and |vifm-selection| for
|
||
how selection is handled. See also |vifm-fuse|.
|
||
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".
|
||
|
||
*vifm-:filextype* *vifm-:filex*
|
||
: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 |vifm-patterns| for pattern
|
||
definition and |vifm-selection| for how selection is handled. See also
|
||
|vifm-fuse|.
|
||
|
||
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 Windows), 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".
|
||
|
||
*vifm-:fileviewer* *vifm-:filev*
|
||
: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 displayed in one of the
|
||
panes of vifm after pressing |vifm-e| or running |vifm-:view| command.
|
||
When the command doesn't contain any of vifm macros, name of current file
|
||
is appended as if command ended with |vifm-%c| macro. Comma escaping and
|
||
missing commands processing rules as for |vifm-:filetype| apply to this
|
||
command. See |vifm-patterns| for pattern definition. Supports
|
||
|vifm-lua-handlers|.
|
||
|
||
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.
|
||
|
||
*vifm-:filter*
|
||
:filter[!] {pattern}
|
||
filter files matching the pattern out of directory listings. '!'
|
||
controls state of filter inversion after updating filter value
|
||
(see |vifm-cpo-f|). Filter is matched case sensitively on *nix and
|
||
case insensitively on Windows. See |vifm-filters| and |vifm-patterns|.
|
||
|
||
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 |vifm-:invert|.
|
||
:filter?
|
||
display information on local, name and auto filters.
|
||
|
||
*vifm-:find* *vifm-:fin*
|
||
:[range]fin[d] pattern
|
||
display results of find command in the menu. Searche among selected
|
||
files if any and no range given. Macros are accepted. By default the
|
||
command relies on the external "find" utility, which can be customized
|
||
by altering value of the |vifm-'findprg'| option. See
|
||
|vifm-menus-and-dialogs| for controls.
|
||
:[range]fin[d] -opt...
|
||
same as :find above, but user defines all find arguments. Searches among
|
||
selected files if any and no range given.
|
||
:[range]fin[d] path -opt...
|
||
same as :find above, but user defines all find arguments. Ignores
|
||
selection and range.
|
||
:[range]fin[d]
|
||
repeat last :find command.
|
||
|
||
:fini[sh] *vifm-:finish* *vifm-:fini*
|
||
stop script sourcing. Can only be used in a vifm script file. This is a
|
||
quick way to skip processing of the rest of the file without even parsing
|
||
it.
|
||
|
||
:go[to] path *vifm-:goto* *vifm-:go*
|
||
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.
|
||
|
||
*vifm-:grep* *vifm-:gr*
|
||
:[range]gr[ep][!] pattern
|
||
display results of "grep" command in the menu. Add "!" to request
|
||
inversion of search (look for lines that do not match pattern). Searches
|
||
among selected files if any and no range given. Ignores binary files by
|
||
default. By default the command relies on the external "grep" utility,
|
||
which can be customized by altering value of the |vifm-'grepprg'| option.
|
||
See |vifm-menus-and-dialogs| for controls.
|
||
:[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.
|
||
|
||
*vifm-:help* *vifm-:h*
|
||
:h[elp]
|
||
display documentation in editor.
|
||
:h[elp] argument
|
||
same as using ':h argument' in vim. Use vifm-<something> to get help on
|
||
vifm (tab completion works and matches in the middle of the string as
|
||
well). This form of the command doesn't work when |vifm-'vimhelp'| option
|
||
is off.
|
||
|
||
:hideui *vifm-:hideui*
|
||
hide interface to show previous commands' output.
|
||
|
||
*vifm-:highlight* *vifm-:hi*
|
||
:hi[ghlight]
|
||
display information about all highlight groups active at the moment.
|
||
:hi[ghlight] clear
|
||
reset all highlighting to builtin defaults and removed all
|
||
filename-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 pattern of color
|
||
scheme used in the active view.
|
||
:hi[ghlight] ( group-name | {pat1,pat2,...} | /regexp/[iI] )
|
||
cterm=style | ctermfg=color | ctermbg=color |
|
||
gui=style | guifg=color | guibg=color
|
||
set style (cterm, gui), foreground (ctermfg, guifg) and/or
|
||
background (ctermbg, guibg) 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)
|
||
- combine - add attributes of current group to attributes of the parent in
|
||
group hierarchy (see below) instead of replacing them
|
||
- 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 |vifm-'tabscope'| set to "global")
|
||
- TabLineSel - color of the tip of selected tab (regardless of
|
||
|vifm-'tabscope'|)
|
||
- 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 paths
|
||
- CmpUnmatched - comparison file entry that has no pair in the other pane
|
||
- CmpBlank - entry placeholder in a compare view, paired with CmpUnmatched
|
||
- User1..User20 - 20 colors which can be used via %* |vifm-'statusline'|
|
||
macro
|
||
|
||
Available colors:
|
||
- -1 or default or none - 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
|
||
(for ctermfg and ctermbg)
|
||
- #rrggbb - direct ("gui", "true", 24-bit) color in hex-notation, each of
|
||
the three compontents are in the range 0x00 to 0xff
|
||
(for guifg and guibg)
|
||
|
||
Light versions of colors are regular colors with bold attribute set
|
||
automatically in terminals that have less than 16 colors. So order of arguments
|
||
of :highlight command is important and it's better to put "cterm" in front of
|
||
others to prevent it from overwriting attributes set by "ctermfg" or "ctermbg"
|
||
arguments.
|
||
|
||
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
|
||
Duplicated entries were altered by adding an underscore followed by numerical
|
||
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 DarkOliveGreen1_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 LightGoldenrod2_2
|
||
50 Cyan2 136 DarkGoldenrod 222 LightGoldenrod2_3
|
||
51 Cyan1 137 LightSalmon3 223 NavajoWhite1
|
||
52 DarkRed 138 RosyBrown 224 MistyRose1
|
||
53 DeepPink4 139 Grey63 225 Thistle1
|
||
54 Purple4 140 MediumPurple2_2 226 Yellow1
|
||
55 Purple4_2 141 MediumPurple1 227 LightGoldenrod1
|
||
56 Purple3 142 Gold3 228 Khaki1
|
||
57 BlueViolet 143 DarkKhaki 229 Wheat1
|
||
58 Orange4 144 NavajoWhite3 230 Cornsilk1
|
||
59 Grey37 145 Grey69 231 Grey100
|
||
60 MediumPurple4 146 LightSteelBlue3 232 Grey3
|
||
61 SlateBlue3 147 LightSteelBlue 233 Grey7
|
||
62 SlateBlue3_2 148 Yellow3 234 Grey11
|
||
63 RoyalBlue1 149 DarkOliveGreen3_3 235 Grey15
|
||
64 Chartreuse4 150 DarkSeaGreen3_2 236 Grey19
|
||
65 DarkSeaGreen4 151 DarkSeaGreen2 237 Grey23
|
||
66 PaleTurquoise4 152 LightCyan3 238 Grey27
|
||
67 SteelBlue 153 LightSkyBlue1 239 Grey30
|
||
68 SteelBlue3 154 GreenYellow 240 Grey35
|
||
69 CornflowerBlue 155 DarkOliveGreen2 241 Grey39
|
||
70 Chartreuse3 156 PaleGreen1_2 242 Grey42
|
||
71 DarkSeaGreen4_2 157 DarkSeaGreen2_2 243 Grey46
|
||
72 CadetBlue 158 DarkSeaGreen1 244 Grey50
|
||
73 CadetBlue_2 159 PaleTurquoise1 245 Grey54
|
||
74 SkyBlue3 160 Red3_2 246 Grey58
|
||
75 SteelBlue1 161 DeepPink3 247 Grey62
|
||
76 Chartreuse3_2 162 DeepPink3_2 248 Grey66
|
||
77 PaleGreen3 163 Magenta3_2 249 Grey70
|
||
78 SeaGreen3 164 Magenta3_3 250 Grey74
|
||
79 Aquamarine3 165 Magenta2 251 Grey78
|
||
80 MediumTurquoise 166 DarkOrange3_2 252 Grey82
|
||
81 SteelBlue1_2 167 IndianRed_2 253 Grey85
|
||
82 Chartreuse2 168 HotPink3_2 254 Grey89
|
||
83 SeaGreen2 169 HotPink2 255 Grey93
|
||
84 SeaGreen1 170 Orchid
|
||
85 SeaGreen1_2 171 MediumOrchid1
|
||
|
||
There are two colors (foreground and background) and only one bold attribute.
|
||
Thus single bold attribute affects both colors when "reverse" attribute is used
|
||
in vifm run inside terminal emulator. At the same time linux native console can
|
||
handle boldness of foreground and background colors independently, but for
|
||
consistency with terminal emulators this is available only implicitly by using
|
||
light versions of colors. This behaviour might be changed in the future.
|
||
|
||
Although vifm supports 256 colors in a sense they are supported by UI drawing
|
||
library, whether you will be able to use all of them highly depends on your
|
||
terminal. To set up terminal properly, make sure that $TERM in the
|
||
environment you run vifm is set to name of 256-color terminal (on *nixes it can
|
||
also be set via X resources), e.g. xterm-256color. One can find list of
|
||
available terminal names by listing /usr/lib/terminfo/. Number of colors
|
||
supported by terminal with current settings can be checked via "tput colors"
|
||
command.
|
||
|
||
In order to use 24-bit colors one needs a terminal that supports them,
|
||
corresponding terminfo record (probably ends in "-direct" like in
|
||
"xterm-direct") and $TERM pointing to it. When vifm detects direct color
|
||
support "cterm*" values are ignored for groups which have at least one of
|
||
"gui*" values set, otherwise they are used after translating via a builtin
|
||
palette.
|
||
|
||
Here is the hierarchy of highlight groups, which you need to know for using
|
||
transparency:
|
||
JobLine
|
||
SuggestBox
|
||
StatusLine
|
||
WildMenu
|
||
User1..User20
|
||
Border
|
||
CmdLine
|
||
ErrorMsg
|
||
Win
|
||
OtherWin
|
||
AuxWin
|
||
OddLine
|
||
File name specific highlights
|
||
Directory
|
||
Link
|
||
BrokenLink
|
||
HardLink
|
||
Socket
|
||
Device
|
||
Fifo
|
||
Executable
|
||
CmpMismatch
|
||
CmpUnmatched
|
||
CmpBlank
|
||
Selected
|
||
CurrLine
|
||
LineNr (in active pane)
|
||
OtherLine
|
||
LineNr (in inactive pane)
|
||
TopLine
|
||
TopLineSel
|
||
TabLineSel (for pane tabs)
|
||
User1..User20
|
||
TabLine
|
||
TabLineSel
|
||
User1..User20
|
||
|
||
"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 :highlight commands might be
|
||
important in certain cases.
|
||
|
||
:histnext *vifm-: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 |vifm-'cpoptions'|, and thus have both <c-i> and <tab>
|
||
working as expected.
|
||
|
||
*vifm-:history* *vifm-:his*
|
||
:his[tory]
|
||
display a menu with list of visited directories. See
|
||
|vifm-menus-and-dialogs| for controls.
|
||
:his[tory] x
|
||
where x can be:
|
||
d[ir] or . show directory history.
|
||
c[md] or : show command line history.
|
||
s[earch] or / show search history and search forward on l key.
|
||
f[search] or / show search history and search forward on l key.
|
||
b[search] or ? show search history and search backward on l key.
|
||
i[nput] or @ show prompt history (e.g. on one file renaming).
|
||
fi[lter] or = show local filter history (see |vifm-=|).
|
||
e[xprreg] show expression register history (see |vifm-c_Ctrl-R_=|).
|
||
mc[md] show command-line history of menus.
|
||
See |vifm-menus-and-dialogs| for controls.
|
||
|
||
:histprev *vifm-:histprev*
|
||
same as <c-o>.
|
||
|
||
:if {expr1} *vifm-:if*
|
||
start conditional block. Commands are executed until next matching
|
||
|vifm-:elseif|, |vifm-:else| or |vifm-:endif| command if {expr1} evaluates
|
||
to non-zero, otherwise they are ignored. See also
|
||
|vifm-commands-and-selection|.
|
||
|
||
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
|
||
<
|
||
*vifm-:invert*
|
||
:invert [f]
|
||
invert file name filter.
|
||
:invert? [f]
|
||
display current filter state.
|
||
:invert s
|
||
invert selection. See also |vifm-commands-and-selection|.
|
||
:invert o
|
||
invert sorting order of the primary sorting key.
|
||
:invert? o
|
||
display sorting order of the primary sorting key.
|
||
|
||
:jobs *vifm-:jobs*
|
||
display menu of current backgrounded processes. See
|
||
|vifm-menus-and-dialogs| for controls.
|
||
|
||
:keepsel [command...] *vifm-:keepsel*
|
||
preserve selection during some :command by default. Note that this
|
||
doesn't save and restore selection to preserve it no matter what, but
|
||
precludes its clearing at the end of a command and thus won't help if
|
||
selection is cleared explicitly during operation.
|
||
|
||
Example: >
|
||
:keepsel view
|
||
<
|
||
*vifm-:let*
|
||
:let $ENV_VAR = <expr>
|
||
set an environment variable. Note: setting environment variable 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.
|
||
|
||
*vifm-:locate*
|
||
:locate filename
|
||
use "locate" command to create a menu of file names. Selecting a file
|
||
from the menu reloads current file list in vifm to navigate to the file.
|
||
By default the command relies on the external "locate" utility (it's
|
||
assumed that its database is already built), which can be customized by
|
||
altering value of the |vifm-'locateprg'| option. See
|
||
|vifm-menus-and-dialogs| for controls.
|
||
:locate
|
||
repeat last :locate command.
|
||
|
||
:ls *vifm-:ls*
|
||
list windows of active terminal multiplexer (only when terminal
|
||
multiplexer is used). This is achieved by issuing proper command for
|
||
active terminal multiplexer, thus the list is not handled by vifm.
|
||
|
||
:lstrash *vifm-: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 contain duplicates.
|
||
See |vifm-menus-and-dialogs| for controls.
|
||
|
||
:[range]ma[rk][?] x /full/path [filename] *vifm-:mark* *vifm-:ma*
|
||
set mark x (a-zA-Z0-9) at /full/path and filename. By default current
|
||
directory is used. If no filename was given and /full/path is current
|
||
directory then last file in [range] is being used. Using of macros is
|
||
allowed. Question mark stops command from overwriting existing marks.
|
||
|
||
*vifm-:marks*
|
||
:marks
|
||
display menu of all marks. See |vifm-menus-and-dialogs| for controls.
|
||
:marks list ...
|
||
display the contents of the marks that are mentioned in list.
|
||
|
||
*vifm-:media*
|
||
:media {only for *nix}
|
||
display media management menu. See |vifm-menus-and-dialogs| for
|
||
controls. See also |vifm-'mediaprg'| option.
|
||
|
||
:mes[sages] *vifm-:messages* *vifm-:mes*
|
||
display previously given status bar messages (up to 50).
|
||
|
||
:[line]mkdir[!] dir... *vifm-:mkdir*
|
||
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.
|
||
|
||
*vifm-:move* *vifm-:m*
|
||
:[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 overwrite.
|
||
:[range]m[ove][!?] -skip ...
|
||
see |vifm-skip-param|.
|
||
|
||
:noh[lsearch] *vifm-:nohlsearch* *vifm-:noh*
|
||
clear selection in current pane.
|
||
|
||
:norm[al][!] commands *vifm-:normal* *vifm-:norm*
|
||
execute normal mode commands. If "!" is used, user defined mappings are
|
||
ignored. Unfinished last command is aborted as if <esc> or <c-c> was
|
||
typed. A ":" should be completed as well. Commands can't start with a
|
||
space, so put a count of 1 (one) before it.
|
||
|
||
:on[ly] *vifm-:only* *vifm-:on*
|
||
switch to a one window view.
|
||
|
||
*vifm-:plugin*
|
||
:plugin load
|
||
loads all plugins. To be used in configuration file to manually load
|
||
plugins at an earlier point. The plugins can be loaded only once,
|
||
additional calls will do nothing.
|
||
:plugin blacklist {plugin}
|
||
adds {plugin} to the list of plugins to be ignored.
|
||
:plugin whitelist {plugin}
|
||
adds {plugin} to the list of plugins to be loaded while ignoring all
|
||
other plugins. This list should normally be empty.
|
||
|
||
:plugins *vifm-:plugins*
|
||
open plugins menu. See |vifm-menus-and-dialogs| for controls.
|
||
|
||
:popd *vifm-:popd*
|
||
remove pane directories from stack.
|
||
|
||
*vifm-:pushd*
|
||
:pushd[!] /curr/dir [/other/dir]
|
||
add pane directories to stack and process arguments like :cd command.
|
||
:pushd
|
||
exchange top two items of the directory stack.
|
||
|
||
:[line]pu[t][!] [reg] [ &] *vifm-:put* *vifm-:pu*
|
||
put files from specified register (" by default) into current directory.
|
||
The [line] can be used to pick node in a tree-view. "!" moves files
|
||
from their original location instead of copying them. During this
|
||
operation no confirmation dialogs will be shown, all checks are performed
|
||
beforehand.
|
||
|
||
:pw[d] *vifm-:pwd* *vifm-:pw*
|
||
display the present working directory.
|
||
|
||
:qa[ll]! *vifm-:qall* *vifm-:qa*
|
||
exit vifm (add ! to skip saving changes and checking for active
|
||
backgrounded commands).
|
||
|
||
:q[uit][!] *vifm-:quit* *vifm-:q*
|
||
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).
|
||
|
||
:redr[aw] *vifm-:redraw* *vifm-:redr*
|
||
redraw the screen immediately.
|
||
|
||
*vifm-:regedit* *vifm-:rege*
|
||
:rege[dit] [{reg}]
|
||
edit register contents using external editor (see |vifm-'vicmd'|).
|
||
If {reg} is omitted, unnamed register will be edited by default.
|
||
Edited paths are normalized (no extra `.`, `..`, `/`, etc.) and all
|
||
relative paths are treated as starting in the directory of the current
|
||
view.
|
||
|
||
*vifm-:registers* *vifm-:reg*
|
||
: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 *vifm-:regular*
|
||
switch to regular view leaving custom view.
|
||
|
||
*vifm-:rename*
|
||
:[range]rename[!]
|
||
rename files by editing their names in an editor. "!" renames files
|
||
recursively in subdirectories. See |vifm-ext-rename|.
|
||
:[range]rename name1 name2...
|
||
rename each of selected files to a corresponding name.
|
||
|
||
*vifm-: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 instance). Session that wasn't yet stored gets reset.
|
||
|
||
While many things get reset, some basic UI state and current locations
|
||
are preserved, including tabs.
|
||
:restart full
|
||
variation of :restart that makes no attempt to preserve anything.
|
||
|
||
:[range]restore *vifm-:restore*
|
||
restore file from |vifm-trash| directory, doesn't work outside one of trash
|
||
directories.
|
||
|
||
*vifm-: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 argument list. "!" forces
|
||
overwrite.
|
||
:[range]rlink[!?] -skip ...
|
||
see |vifm-skip-param|.
|
||
|
||
*vifm-: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. Starting vifm from terminal multiplexer
|
||
with appropriate support turned on causes vifm to open a new terminal
|
||
multiplexer window for each new file edited or program launched from vifm.
|
||
This requires screen version 3.9.9 or newer for the screen -X argument or
|
||
tmux (1.8 version or newer is recommended).
|
||
:screen!
|
||
enable integration with terminal multiplexers.
|
||
:screen?
|
||
display whether integration with terminal multiplexers is enabled.
|
||
|
||
Note: the command is called screen for historical reasons (when tmux wasn't
|
||
yet supported) and might be changed in future releases, or get an alias.
|
||
|
||
*vifm-: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 |vifm-patterns|. 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 absolute ones
|
||
beforehand.
|
||
:[range]select! [{pattern}|!{external command}]
|
||
same as above, but resets previously selected items before proceeding.
|
||
|
||
*vifm-:session*
|
||
:session?
|
||
print name of the current session.
|
||
:session
|
||
detach current session without saving it. Resets |vifm-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 |vifm-v:session|.
|
||
:session -
|
||
switch to a previous session if it still exists (wasn't removed or
|
||
detached from without saving).
|
||
|
||
*vifm-:set* *vifm-:se*
|
||
: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 |vifm-local-options| both values are set.
|
||
You can use the 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 option^=x
|
||
- for charset options - option=x, option+=x, option-=x and option^=x
|
||
the meaning:
|
||
- option - turn option on (for boolean) or print its value (for all
|
||
others)
|
||
- nooption - turn option off
|
||
- invoption - invert option state
|
||
- option! - invert option state
|
||
- option? - print option value
|
||
- option& - reset option to its default value
|
||
- option=x or option:x - set option to x
|
||
- option+=x - add/append x to option
|
||
- option-=x - remove (or subtract) x from option
|
||
- option^=x - toggle x presence among values of the option
|
||
|
||
Option name can be prepended and appended by any number of whitespace
|
||
characters.
|
||
|
||
*vifm-:setglobal* *vifm-:setg*
|
||
: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 |vifm-: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.
|
||
|
||
*vifm-:setlocal* *vifm-:setl*
|
||
: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 |vifm-:set|, but changes/prints only local values of local
|
||
options.
|
||
|
||
:sh[ell][!] *vifm-:shell* *vifm-:sh*
|
||
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 |vifm-'shell'|
|
||
value is used.
|
||
|
||
:[count]siblnext[!] *vifm-:siblnext*
|
||
change directory to [count]th next sibling directory of current 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`.
|
||
|
||
:[count]siblprev[!] *vifm-:siblprev*
|
||
same as :siblnext, but in the opposite direction.
|
||
|
||
:sor[t] *vifm-:sort* *vifm-:sor*
|
||
display dialog with different sorting methods, where one can select
|
||
the primary sorting key. When |vifm-'viewcolumns'| options is empty and
|
||
|vifm-'lsview'| is off, changing primary sorting key also affects view
|
||
look (in particular the second column of the view is changed).
|
||
See |vifm-menus-and-dialogs| for controls.
|
||
|
||
:so[urce] file *vifm-:source* *vifm-:so*
|
||
read command-line commands from the file.
|
||
|
||
*vifm-:split* *vifm-:sp*
|
||
:sp[lit]
|
||
switch to a two window horizontal view.
|
||
:sp[lit]!
|
||
toggle horizontal window splitting.
|
||
:sp[lit] path
|
||
split window horizontally to show both file directories. Also changes
|
||
other pane to the path (absolute or relative to current directory of
|
||
active pane).
|
||
|
||
*vifm-:stop* *vifm-:st*
|
||
:st[op]
|
||
suspend vifm (same as pressing Ctrl-Z). Does nothing if this instance
|
||
isn't running in a shell. The command exists to allow mapping to the
|
||
action of Ctrl-Z.
|
||
|
||
*vifm-:substitute* *vifm-:s*
|
||
:[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 the search history.
|
||
Available flags:
|
||
i - ignore case (the |vifm-'ignorecase'| and |vifm-'smartcase'|
|
||
options are not used)
|
||
I - don't ignore case (the |vifm-'ignorecase'| and
|
||
|vifm-'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.
|
||
|
||
*vifm-:sync*
|
||
:sync [relative path]
|
||
change the other pane to the current pane directory or to some path
|
||
relative to the current directory. Using of macros is allowed.
|
||
:sync!
|
||
change the other pane to the current pane directory and synchronize
|
||
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 corresponding
|
||
properties of the current pane. Arguments have the following meanings:
|
||
- location - current directory of the pane;
|
||
- cursorpos - cursor position (doesn't make sense without "location");
|
||
- localopts - all local options;
|
||
- filters - all filters;
|
||
- filelist - list of files for custom view (implies "location");
|
||
- tree - tree structure for tree view (implies "location");
|
||
- all - all of the above.
|
||
|
||
:tabc[lose] *vifm-:tabclose* *vifm-:tabc*
|
||
close current tab, unless it's the only one open at current scope.
|
||
|
||
:tabm[ove] [N] *vifm-:tabmove* *vifm-:tabm*
|
||
without the argument or with `$` as the argument, current tab becomes
|
||
the last tab. With the argument, current tab is moved after the tab
|
||
with the specified number. Argument of `0` moves current tab to the
|
||
first position.
|
||
|
||
:tabname [name] *vifm-:tabname*
|
||
set, update or reset (when no argument is provided) name of the current
|
||
tab.
|
||
|
||
:tabnew [path] *vifm-:tabnew*
|
||
create new tab. Accepts optional path for the new tab. Macros and
|
||
environment variables are expanded.
|
||
|
||
*vifm-:tabnext* *vifm-:tabn*
|
||
:tabn[ext]
|
||
switch to the next tab (wrapping around).
|
||
:tabn[ext] {n}
|
||
go to the tab number {n}. Tab numeration starts with 1.
|
||
|
||
*vifm-:tabonly* *vifm-:tabo*
|
||
:tabo[nly]
|
||
close all tabs but the current one. Closes pane tabs only at the active
|
||
side.
|
||
|
||
*vifm-:tabprevious* *vifm-:tabp*
|
||
:tabp[revious]
|
||
switch to the previous tab (wrapping around).
|
||
:tabp[revious] {n}
|
||
go to the {n}-th previous tab. Note that |vifm-:tabnext| handles its
|
||
argument differently.
|
||
|
||
:[line]touch file... *vifm-:touch*
|
||
create files at specified paths. Aborts on errors. Doesn't update time
|
||
of existing files. The [line] can be used to pick node in a tree-view.
|
||
Macros are expanded.
|
||
|
||
:[range]tr/pattern/string/ *vifm-:tr*
|
||
for each file in range transliterate the characters which appear in
|
||
pattern to the corresponding character in string. When string is shorter
|
||
than pattern, it's padded with its last character.
|
||
|
||
*vifm-:trashes*
|
||
:trashes
|
||
list 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 |vifm-:empty| command is executed.
|
||
:trashes?
|
||
same as :trashes, but also displays size of each trash directory. See
|
||
|vifm-menus-and-dialogs| for controls.
|
||
|
||
*vifm-:tree*
|
||
:tree [depth=N]
|
||
turn pane into tree view with current directory as its root. The tree
|
||
view is implemented on top of a custom view, but is automatically kept in
|
||
sync with file system state and considers all the filters. Thus the
|
||
structure corresponds to what one would see on visiting the directories
|
||
manually. As a special case for trees built out of custom view
|
||
file-system tracking isn't performed.
|
||
|
||
To leave tree view go up from its root or use |vifm-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 |vifm-'lsview'| and |vifm-'millerview'| options are ignored.
|
||
|
||
The "depth" argument specifies nesting level on which loading of
|
||
subdirectories won't happen (they will be folded). Values start at 1.
|
||
:tree!
|
||
toggle current view in and out of tree mode.
|
||
|
||
:undol[ist] *vifm-:undolist* *vifm-:undol*
|
||
display list of latest changes. Use "!" to see actual commands.
|
||
See |vifm-menus-and-dialogs| for controls.
|
||
|
||
:unl[et][!] $ENV_VAR1 $ENV_VAR2 ... *vifm-:unlet* *vifm-:unl*
|
||
remove environment variables. Use "!" to omit displaying of warnings
|
||
about nonexistent variables.
|
||
|
||
*vifm-: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 |vifm-patterns|. Trailing slash for directories is taken
|
||
into account, so `:unselect */` unselects 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.
|
||
|
||
:ve[rsion] *vifm-:version* *vifm-:ve*
|
||
display menu with version information.
|
||
|
||
:vifm *vifm-:vifm*
|
||
same as :version.
|
||
|
||
*vifm-:view* *vifm-:vie*
|
||
:vie[w]
|
||
toggle on and off the quick file view (preview of file's contents).
|
||
See also |vifm-'quickview'| option and |vifm-commands-and-selection|.
|
||
:vie[w]!
|
||
turn on quick file view if it's off.
|
||
|
||
*vifm-:volumes*
|
||
:volumes {only for MS-Windows}
|
||
display menu with volume list. Hitting l (or Enter) key opens
|
||
appropriate volume in the current pane. See |vifm-menus-and-dialogs| for
|
||
controls.
|
||
|
||
*vifm-:vsplit* *vifm-:vs*
|
||
: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. Also changes
|
||
other pane to the path (absolute or relative to current directory of active
|
||
pane).
|
||
|
||
:[count]winc[md] {arg} *vifm-:wincmd* *vifm-:winc*
|
||
same as running Ctrl-W [count] {arg}.
|
||
|
||
:windo [command...] *vifm-:windo*
|
||
execute command for each pane (same as :winrun % command).
|
||
|
||
:winrun type [command...] *vifm-:winrun*
|
||
execute command for pane(s), which is determined by type argument:
|
||
- ^ - top-left pane
|
||
- $ - bottom-right pane
|
||
- % - all panes
|
||
- . - current pane
|
||
- , - other pane
|
||
|
||
:w[rite] *vifm-:write* *vifm-:w*
|
||
write current state to vifminfo and session files (if a session is
|
||
active).
|
||
|
||
:wq[!] *vifm-:wq*
|
||
same as |vifm-:quit|, but "!" disables only the check of backgrounded
|
||
commands, while state of the application is always written.
|
||
|
||
:wqa[ll][!] *vifm-:wqall* *vifm-:wqa*
|
||
same as |vifm-:qall|, but ! disables only the check of backgrounded
|
||
commands, while state of the application is always written.
|
||
|
||
:xa[ll][!] *vifm-:xall* *vifm-:xa*
|
||
same as |vifm-:qall|.
|
||
|
||
:x[it][!] *vifm-:xit* *vifm-:x*
|
||
same as |vifm-:quit|.
|
||
|
||
:[range]y[ank] [reg] [count] *vifm-:yank* *vifm-:y*
|
||
yank files to the reg register.
|
||
|
||
*vifm-:map*
|
||
: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.
|
||
|
||
*vifm-:amap*
|
||
*vifm-:cmap* *vifm-:cm*
|
||
*vifm-:dmap* *vifm-:dm*
|
||
*vifm-:mmap* *vifm-:mm*
|
||
*vifm-:nmap* *vifm-:nm*
|
||
*vifm-:qmap* *vifm-:qm*
|
||
*vifm-:vmap* *vifm-:vm*
|
||
:amap lhs rhs - map lhs to rhs in navigation mode.
|
||
: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.
|
||
|
||
:amap - list all maps of navigation mode.
|
||
:cm[ap] - list all maps of command line mode.
|
||
:dm[ap] - list all maps of dialog modes.
|
||
:mm[ap] - list all maps of menu mode.
|
||
:nm[ap] - list all maps of normal mode.
|
||
:qm[ap] - list all maps of view mode.
|
||
:vm[ap] - list all maps of visual mode.
|
||
|
||
:amap beginning
|
||
list all maps of navigation mode that start with the beginning.
|
||
:cm[ap] beginning
|
||
list all maps of command line mode that start with the beginning.
|
||
:dm[ap] beginning
|
||
list all maps of dialog modes that start with the beginning.
|
||
:mm[ap] beginning
|
||
list all maps of menu mode that start with the beginning.
|
||
:nm[ap] beginning
|
||
list all maps of normal mode that start with the beginning.
|
||
:qm[ap] beginning
|
||
list all maps of view mode that start with the beginning.
|
||
:vm[ap] beginning
|
||
list all maps of visual mode that start with the beginning.
|
||
|
||
*vifm-:noremap* *vifm-:no*
|
||
:no[remap] lhs rhs
|
||
map the key sequence lhs to rhs for normal and visual modes, but
|
||
don't expand user mappings in rhs.
|
||
:no[remap]! lhs rhs
|
||
map the key sequence lhs to rhs for command line mode, but don't expand
|
||
user mappings in rhs.
|
||
|
||
*vifm-:anoremap*
|
||
*vifm-:cnoremap* *vifm-:cno*
|
||
*vifm-:dnoremap* *vifm-:dn*
|
||
*vifm-:mnoremap* *vifm-:mn*
|
||
*vifm-:nnoremap* *vifm-:nn*
|
||
*vifm-:qnoremap* *vifm-:qn*
|
||
*vifm-:vnoremap* *vifm-:vn*
|
||
:anoremap lhs rhs
|
||
map the key sequence lhs to rhs for navigation mode, but don't expand
|
||
user mappings in rhs.
|
||
:cno[remap] lhs rhs
|
||
map the key sequence lhs to rhs for command line mode, but don't expand
|
||
user mappings in rhs.
|
||
:dn[oremap] lhs rhs
|
||
map the key sequence lhs to rhs for dialog modes, but don't expand user
|
||
mappings in rhs.
|
||
:mn[oremap] lhs rhs
|
||
map the key sequence lhs to rhs for menu mode, but don't expand user
|
||
mappings in rhs.
|
||
:nn[oremap] lhs rhs
|
||
map the key sequence lhs to rhs for normal mode, but don't expand user
|
||
mappings in rhs.
|
||
:qn[oremap] lhs rhs
|
||
map the key sequence lhs to rhs for view mode, but don't expand user
|
||
mappings in rhs.
|
||
:vn[oremap] lhs rhs
|
||
map the key sequence lhs to rhs for visual mode, but don't expand user
|
||
mappings in rhs.
|
||
|
||
*vifm-:unmap* *vifm-:unm*
|
||
: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.
|
||
|
||
*vifm-:aunmap*
|
||
*vifm-:cunmap* *vifm-:cu*
|
||
*vifm-:dunmap* *vifm-:du*
|
||
*vifm-:munmap* *vifm-:mu*
|
||
*vifm-:nunmap* *vifm-:nun*
|
||
*vifm-:qunmap* *vifm-:qun*
|
||
*vifm-:vunmap* *vifm-:vu*
|
||
:aunmap lhs - remove user mapping of lhs from navigation mode.
|
||
: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.
|
||
|
||
:command parameters~
|
||
*vifm-:command-params*
|
||
Some of the command-line commands accept parameters in the form of
|
||
`-paramname`. Arguments of such commands can be split into two groups:
|
||
parameters and positional arguments. Items from the two groups cannot be
|
||
interleaved and parameters always come first. List of parameters is
|
||
terminated implicitly by the first argument that doesn't start with a
|
||
dash ("-") or explicitly via "--" separator (needs to be a separate
|
||
argument), which is just discarded. These strict rules allow arbitrary
|
||
positional arguments, such as file names that start with a dash.
|
||
|
||
-skip *vifm-skip-param*
|
||
This parameter makes |vifm-:copy|, |vifm-:move|, |vifm-:alink| and
|
||
|vifm-:rlink| automatically skip source files that already exist at the
|
||
destination rather than refusing to perform the operation.
|
||
|
||
Ranges~
|
||
*vifm-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~
|
||
*vifm-macros*
|
||
The command macros may be used in user commands.
|
||
*vifm-%a*
|
||
%a user arguments. When user arguments contain macros, they are
|
||
expanded before preforming substitution of %a.
|
||
*vifm-%c*
|
||
%c %"c the current file under the cursor.
|
||
*vifm-%C*
|
||
%C %"C the current file under the cursor in the other directory.
|
||
*vifm-%f*
|
||
%f %"f all of the selected files or the current file, but see
|
||
|vifm-selection|.
|
||
*vifm-%F*
|
||
%F %"F same as %f, %"f, but for the inactive pane.
|
||
*vifm-%l*
|
||
%l %"l list of selected files. Unlike %f from above, this is only for
|
||
explicit selection (i.e., not via a range) and is empty if no
|
||
files are selected.
|
||
*vifm-%L*
|
||
%L %"L same as %l and %"l, but for the inactive pane.
|
||
*vifm-%b*
|
||
%b %"b same as %f %F.
|
||
*vifm-%d*
|
||
%d %"d full path to current directory.
|
||
*vifm-%D*
|
||
%D %"D full path to other file list directory.
|
||
*vifm-%r*
|
||
%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.
|
||
*vifm-%m*
|
||
%m show command output in a menu.
|
||
*vifm-%M*
|
||
%M same as %m, but l (or Enter) key is handled like for :locate
|
||
and :find commands.
|
||
*vifm-%u*
|
||
%u process command output as list of paths and compose custom view
|
||
out of it.
|
||
*vifm-%U*
|
||
%U same as %u, but implies less list updates inside vifm, which is
|
||
absence of sorting at the moment.
|
||
*vifm-%Iu*
|
||
%Iu same as %u, but gives up terminal before running external
|
||
%command.
|
||
*vifm-%IU*
|
||
%IU same as %U, but gives up terminal before running external
|
||
%command.
|
||
*vifm-%S*
|
||
%S show command output in the status bar.
|
||
*vifm-%q*
|
||
%q redirect command output to quick view, which is activated if
|
||
disabled.
|
||
*vifm-%s*
|
||
%s execute command in horizontal split window of active terminal
|
||
multiplexer (ignored if not running inside one).
|
||
*vifm-%v*
|
||
%v same as %s, but splits vertically.
|
||
*vifm-%n*
|
||
%n forbid use of terminal multiplexer to run the command.
|
||
*vifm-%N*
|
||
%N do not detach viewer from terminal session (keeps `/dev/tty`
|
||
available) or process group (keeps the command in the set of
|
||
foreground clients of the terminal).
|
||
*vifm-%i*
|
||
%i run in background and suppress error dialogs, but collect
|
||
errors internally for viewing via |vifm-:jobs| menu.
|
||
|
||
*vifm-%Pl*
|
||
%Pl pipe list of files to standard input of a command.
|
||
*vifm-%Pz*
|
||
%Pz same as %Pl, but separates paths by null ('\0') character.
|
||
|
||
*vifm-%pc*
|
||
%pc marks the end of the main command and the beginning of the
|
||
clear command for graphical preview, which is invoked on
|
||
closing preview of a file.
|
||
|
||
*vifm-%pd*
|
||
%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 terminal state.
|
||
|
||
*vifm-%pu*
|
||
%pu uncached preview. Intended to be used for commands that just
|
||
send file path somewhere for preview.
|
||
|
||
The following dimensions and coordinates are in characters:
|
||
*vifm-%px*
|
||
%px x coordinate of top-left corner of preview area.
|
||
*vifm-%py*
|
||
%py y coordinate of top-left corner of preview area.
|
||
*vifm-%pw*
|
||
%pw width of preview area.
|
||
*vifm-%ph*
|
||
%ph height of preview area.
|
||
|
||
Use %% if you need to put a percent sign in your command.
|
||
|
||
Note that %i, %Iu, %IU, %m, %M, %n, %q, %s, %S, %u, %U and %v macros are
|
||
mutually exclusive. Only the last one of them on the command will take
|
||
effect.
|
||
|
||
Note that %Pl and %Pz are mutually exclusive. Only the last one of them on
|
||
the command will take effect.
|
||
|
||
*vifm-filename-modifiers*
|
||
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 |filename-modifiers| for the detailed description.
|
||
|
||
Using %x means expand corresponding macro escaping all characters that have
|
||
special meaning. And %"x means using of double quotes and escape only backslash
|
||
and double quote characters, which is more useful on Windows systems.
|
||
|
||
Position and quantity (if there is any) of %m, %M, %S or %s macros in the
|
||
command is unimportant. All their occurrences are removed from the resulting
|
||
command.
|
||
|
||
%c and %f macros are expanded to file names only, when %C and %F are expanded
|
||
to full paths. %f and %F follow this in %b too.
|
||
|
||
:com move mv %f %D - set the :move command to move all of the files
|
||
selected in the current directory to the other directory.
|
||
|
||
The %a macro is replaced with any arguments given to an alias command. All
|
||
arguments are considered optional.
|
||
:com lsl !!ls -l %a - set the lsl command to execute ls -l with or without an
|
||
argument.
|
||
|
||
:lsl<Enter> will list the directory contents of the current directory.
|
||
:lsl filename<Enter> will list only the given filename.
|
||
|
||
The macros can also be used in directly executing commands.
|
||
:!mv %f %D - would move the current directory selected files to the other
|
||
directory.
|
||
|
||
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 backgrounding:
|
||
>
|
||
:!mv %f %D &
|
||
<
|
||
%m, %M, %s, %S, %u and %U macros cannot be combined with background
|
||
mark (" &") as it doesn't make much sense.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-commands-bg*
|
||
|
||
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 cancellation can
|
||
be requested in the |vifm-:jobs| menu via dd shortcut.
|
||
|
||
You can see if command is still running in the :jobs menu. Backgrounded
|
||
commands have progress instead of process id at the line beginning.
|
||
|
||
Background operations cannot be undone.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-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 status bar.
|
||
|
||
File system operations~
|
||
|
||
Currently the following commands can be cancelled: |vifm-:alink|, |vifm-:chmod|,
|
||
|vifm-:chown|, |vifm-:clone|, |vifm-:copy|, |vifm-:delete|, |vifm-:mkdir|, |vifm-:move|,
|
||
|vifm-:restore|, |vifm-:rlink|, |vifm-:touch|. File putting (|vifm-p|, |vifm-P|) 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: |vifm-:empty|, |vifm-:rename|,
|
||
|vifm-:substitute|, |vifm-: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: |vifm-:apropos|, |vifm-:find|,
|
||
|vifm-:grep|, |vifm-:locate|.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-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 |vifm-:filetype| or |vifm-: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, otherwise 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. Consistency 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 natural 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 |vifm-'vicmd'| or |vifm-'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.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-patterns*
|
||
|
||
|vifm-:highlight|, |vifm-:filetype|, |vifm-:filextype|, |vifm-:fileviewer|
|
||
commands and |vifm-'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 pattern
|
||
matching.
|
||
|
||
The last form is implicitly refers to one of the others. |vifm-:highlight|
|
||
does not accept undecorated form, while |vifm-:filetype|, |vifm-:filextype|,
|
||
|vifm-:fileviewer|, |vifm-:select|, |vifm-:unselect| and |vifm-'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.
|
||
|
||
|vifm-:filetype|, |vifm-:filextype| and |vifm-: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 description
|
||
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 `$`, so make sure to specify them explicitly if
|
||
the pattern should match the whole name or path.
|
||
|
||
Patterns with globs~
|
||
|
||
|vifm-globs| section provides short overview of globs and some important 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/` directory
|
||
(excluding its subdirectories): >
|
||
:filextype //^/home/user/downloads/[^/]*\.pdf$// evince %f
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-regexp*
|
||
|
||
All regular expressions are extended. See `man 7 regex` for more details on
|
||
what's supported.
|
||
|
||
The following special sequences are additionally parsed:
|
||
- `\c` forces matching ignoring case of letters
|
||
- `\C` forces matching respecting case of letters
|
||
|
||
`\c` and `\C` have the highest priority in determining whether case is matched
|
||
or not and exist to override |vifm-'ignorecase'|, |vifm-'smartcase'| and
|
||
`i`/`I` flags when necessary.
|
||
|
||
If multiple sequences are present, the one which appears later takes
|
||
precedence.
|
||
|
||
Note that unlike in Vim character classes are affected by settings and
|
||
sequences that control case sensitivity in regular expressions.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-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 symbol.
|
||
|
||
`*` means any number of any characters (including slash) and can match 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 character
|
||
class matches against any of characters listed in it. For example >
|
||
:fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c
|
||
makes vifm call `highlight` program to colorize source and header files in C
|
||
language for a 256-color terminal. Equal command would be >
|
||
:fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c
|
||
|
||
Inside square brackets `^` or `!` can be used for symbol class negotiation and
|
||
the `-` symbol to set a range. `^` and `!` should appear right after the opening
|
||
square bracket. For example >
|
||
:filetype *.[!d]/ inspect_dir
|
||
associates `inspect_dir` as additional handler for all directories that have one
|
||
character extension unless it's "d" letter. And >
|
||
:filetype [0-9].jpg sxiv
|
||
associates `sxiv` picture viewer only for JPEG-files that contain single digit
|
||
in their name.
|
||
|
||
If you need to include literal comma, which is normally separates multiple
|
||
globs, double it.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-set-options*
|
||
|
||
*vifm-local-options*
|
||
These are kind of options that are local to a specific view. So you can set
|
||
ascending sorting order for left pane and descending order for right pane.
|
||
|
||
In addition to being local to views, each such option also has two values:
|
||
- local to current directory (value associated with current location);
|
||
- global to current directory (value associated with the pane).
|
||
|
||
The idea is that current directory can be made a temporary exception to
|
||
regular configuration of the view, until directory change. Use
|
||
|vifm-:setlocal| for that. |vifm-:setglobal| changes view value not affecting
|
||
settings until directory change. |vifm-:set| applies changes immediately to
|
||
all values.
|
||
|
||
*vifm-'aproposprg'*
|
||
aproposprg
|
||
type: string
|
||
default: "apropos %a"
|
||
|
||
Specifies format for an external command to be invoked by the |vifm-:apropos|
|
||
command. The format supports expanding of macros, specific for a particular
|
||
*prg option, and %% sequence for inserting percent sign literally. This
|
||
option should include the %a macro to specify placement of arguments passed
|
||
to the |vifm-:apropos| command. If the macro is not used, it will be
|
||
implicitly added after a space to the value of this option.
|
||
|
||
*vifm-'autocd'*
|
||
autocd
|
||
type: boolean
|
||
default: false
|
||
|
||
When enabled unknown command-line commands are interpreted as implicit
|
||
invocation of |vifm-:cd| with one argument and no escaping. Tilde is
|
||
expanded, but not macros or environment variables.
|
||
|
||
*vifm-'autochpos'*
|
||
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 cursor 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 command.
|
||
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 cursor position
|
||
is available via |vifm-'histcursor'| option.
|
||
|
||
*vifm-'caseoptions'*
|
||
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 of none pair's elements are present, the behaviour
|
||
is default (depends on operating system for path completion and on values of
|
||
|vifm-'ignorecase'| and |vifm-'smartcase'| options for file navigation).
|
||
|
||
*vifm-'cdpath'* *vifm-'cd'*
|
||
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 |vifm-: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" command will ignore value of 'cdpath'.
|
||
|
||
*vifm-'chaselinks'*
|
||
chaselinks
|
||
type: boolean
|
||
default: false
|
||
|
||
When enabled path of view is always resolved to real path (with all symbolic
|
||
links expanded).
|
||
|
||
*vifm-'classify'*
|
||
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 |vifm-patterns|.
|
||
|
||
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 {prefix} 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 |vifm-filetype()| function.
|
||
|
||
*vifm-'columns'* *vifm-'co'*
|
||
columns co
|
||
type: integer
|
||
default: terminal width on startup
|
||
|
||
Terminal width in characters.
|
||
|
||
*vifm-'confirm'* *vifm-'cf'*
|
||
confirm cf
|
||
type: set
|
||
default: delete,permdelete
|
||
|
||
Defines which operations require confirmation:
|
||
- delete - moving files to trash (on |vifm-d| or |vifm-:delete|);
|
||
- permdelete - permanent deletion of files (on |vifm-D| or :delete!
|
||
command or on undo/redo operation).
|
||
|
||
*vifm-'cpoptions'* *vifm-'cpo'*
|
||
cpoptions cpo
|
||
type: charset
|
||
default: "fst"
|
||
|
||
Contains a sequence of single-character flags. Each flag enables behaviour of
|
||
older versions of vifm. Flags:
|
||
*vifm-cpo-f*
|
||
f - when included, running |vifm-:filter| command results in not inverted
|
||
(matching files are filtered out) and :filter! in inverted (matching files
|
||
are left) filter, when omitted, meaning of the exclamation mark changes to
|
||
the opposite;
|
||
*vifm-cpo-s*
|
||
s - when included, |vifm-yy|, |vifm-dd| and |vifm-DD| normal mode commands act on
|
||
selection, otherwise they operate on current file only;
|
||
*vifm-cpo-t*
|
||
t - when included, <tab> (thus <c-i>) behave as <space> and switch active
|
||
pane, otherwise <c-i> goes forward in the view history. It's possible to
|
||
make both <tab> and <c-i> to work as expected by setting up the terminal
|
||
to emit a custom sequence when <c-i> is pressed; see :histnext for
|
||
details.
|
||
|
||
*vifm-'cvoptions'*
|
||
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.
|
||
|
||
*vifm-'deleteprg'*
|
||
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.
|
||
|
||
*vifm-'dirsize'*
|
||
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.
|
||
|
||
*vifm-'dotdirs'*
|
||
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 regardless of value of
|
||
this option. "../" disappears at the moment at least one file is created.
|
||
|
||
*vifm-'dotfiles'*
|
||
dotfiles
|
||
type: boolean
|
||
default: false
|
||
|
||
Whether dot files are shown in the view. Can be controlled with z* bindings.
|
||
|
||
*vifm-'fastrun'*
|
||
fastrun
|
||
type: boolean
|
||
default: false
|
||
|
||
With this option turned on you can run partially entered commands with
|
||
unambiguous beginning using :! (e.g. :!Te instead of :!Terminal or :!Te<tab>).
|
||
|
||
*vifm-'fillchars'* *vifm-'fcs'*
|
||
fillchars fcs
|
||
type: string list
|
||
default: ""
|
||
|
||
Sets characters used to fill borders.
|
||
|
||
item default used for ~
|
||
vborder:c ' ' left, middle and right vertical borders
|
||
hborder:c '' middle horizontal border
|
||
|
||
A null string for vborder is equivalent to a space.
|
||
|
||
A null string for hborder omits the horizontal border.
|
||
|
||
Example: >
|
||
set fillchars=vborder:".",hborder:""
|
||
<
|
||
*vifm-'findprg'*
|
||
findprg
|
||
type: string
|
||
default: "find %s %a -print , -type d \( ! -readable -o ! -executable \) -prune"
|
||
|
||
Specifies format for an external command to be invoked by the |vifm-: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 appended 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 escaped version of the arguments
|
||
|
||
Starting with Windows Server 2003 a `where` command is available. One can
|
||
configure vifm to use it in the following way: >
|
||
set findprg="where /R %s %A"
|
||
<
|
||
As the syntax of this command is rather limited, one can't use |vifm-: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"
|
||
<
|
||
*vifm-'followlinks'*
|
||
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 |vifm-gf| for directories).
|
||
|
||
*vifm-'fusehome'*
|
||
fusehome
|
||
type: string
|
||
default: "($XDG_DATA_HOME/vifm | $VIFM)/fuse/"
|
||
|
||
Directory to be used as a root dir for FUSE mounts. Value of the option can
|
||
contain environment variables (in form "$envname"), which will be expanded
|
||
(prepend it with a slash to prevent expansion). The value should expand to
|
||
an absolute path.
|
||
|
||
If you change this option, vifm won't remount anything. It affects future
|
||
mounts only. See |vifm-fuse| section for more information about FUSE mounts.
|
||
|
||
*vifm-'gdefault'* *vifm-'gd'*
|
||
gdefault gd
|
||
type: boolean
|
||
default: false
|
||
|
||
When on, 'g' flag is on for |vifm-:substitute| by default.
|
||
|
||
*vifm-'grepprg'*
|
||
grepprg
|
||
type: string
|
||
default: "grep -n -H -I -r %i %a %s"
|
||
|
||
Specifies format for an external command to be invoked by the |vifm-:grep|
|
||
command. The format supports expanding of macros, specific for a particular
|
||
*prg option, and %% sequence for inserting percent sign literally. This
|
||
option should include the %i macro to specify placement of "-v" string when
|
||
inversion of results is requested, %a or %A macro to specify placement of
|
||
arguments passed to the |vifm-: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
|
||
|vifm-'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 |vifm-'findprg'| 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_silver_searcher):
|
||
>
|
||
set grepprg='ag --line-numbers %i %a %s'
|
||
<
|
||
*vifm-'histcursor'*
|
||
histcursor
|
||
type: set
|
||
default: startup,dirmark,direnter
|
||
|
||
Defines situations when cursor should be moved according to directory
|
||
history:
|
||
- startup - on loading file lists during startup
|
||
- dirmark - after navigating to a mark that doesn't specify file
|
||
- direnter - on opening directory from a file list
|
||
|
||
This option has no effect when |vifm-'autochpos'| is disabled.
|
||
|
||
Note that the list is not exhaustive and there are other situations when
|
||
cursor is positioned automatically.
|
||
*vifm-'history'* *vifm-'hi'*
|
||
history hi
|
||
type: integer
|
||
default: 15
|
||
|
||
Maximum number of stored items in all histories.
|
||
|
||
*vifm-'hloptions'*
|
||
type: string list
|
||
default: "filehi:onerow"
|
||
|
||
Configures behaviour of highlighting.
|
||
|
||
item default~
|
||
filehi:str onerow
|
||
|
||
The "filehi" item specifies which columns of the view get colored according to
|
||
file type and its name:
|
||
- path - highlight columns that display file path, name, root or extension
|
||
- onerow - same as "path" and also highlight all columns of the current line
|
||
- allrows - highlight all columns of each row
|
||
|
||
*vifm-'hlsearch'* *vifm-'hls'*
|
||
hlsearch hls
|
||
type: boolean
|
||
default: true
|
||
|
||
Automatically select files that are search matches.
|
||
|
||
*vifm-'iec'*
|
||
iec
|
||
type: boolean
|
||
default: false
|
||
|
||
Use KiB, MiB, ... suffixes instead of K, M, ... when printing size in
|
||
human-friendly format.
|
||
|
||
*vifm-'ignorecase'* *vifm-'ic'*
|
||
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 detailed in the description of
|
||
|vifm-'caseoptions'|.
|
||
|
||
*vifm-'incsearch'* *vifm-'is'*
|
||
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.
|
||
|
||
*vifm-'iooptions'*
|
||
iooptions
|
||
type: set
|
||
default: datasync
|
||
|
||
Controls details of file operations. The following values are available:
|
||
- datasync - periodically synchronize writes on copying files when
|
||
|vifm-'syscalls'| is set.
|
||
(This makes copying last as long as it takes to actually write
|
||
data to the medium, which is slower than you might expect;
|
||
however, this also prevents system hanging due to filling memory
|
||
with file-system cache.)
|
||
- fastfilecloning - perform fast file cloning (copy-on-write), when available
|
||
(available on Linux and btrfs file system).
|
||
|
||
*vifm-'laststatus'* *vifm-'ls'*
|
||
laststatus ls
|
||
type: boolean
|
||
default: true
|
||
|
||
Controls if status bar is visible.
|
||
|
||
*vifm-'lines'*
|
||
lines
|
||
type: integer
|
||
default: terminal height on startup
|
||
|
||
Terminal height in lines.
|
||
|
||
*vifm-'locateprg'*
|
||
locateprg
|
||
type: string
|
||
default: "locate %a"
|
||
|
||
Specifies format for an external command to be invoked by the |vifm-:locate|
|
||
command. The format supports expanding of macros, specific for a particular
|
||
*prg option, and %% sequence for inserting percent sign literally. This
|
||
option should include the %a macro to specify placement of arguments passed
|
||
to the |vifm-: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.
|
||
|
||
*vifm-'mediaprg'*
|
||
{only for *nix}
|
||
mediaprg
|
||
type: string
|
||
default: path to bundled script that supports udevil, udisks and udisks2
|
||
(using udisks2 requires python with dbus module installed)
|
||
OS X: path points to a python script that uses diskutil
|
||
|
||
Specifies command to be used to manage media devices. Used by |vifm-: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 provided)
|
||
- mount-point= - specifies a mount point (can be absent or appear more than
|
||
once)
|
||
|
||
All other lines are ignored. Each `device=` starts a new section
|
||
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.
|
||
|
||
*vifm-'lsoptions'*
|
||
lsoptions
|
||
type: string list
|
||
default: ""
|
||
scope: local
|
||
|
||
Configures ls-like view.
|
||
|
||
item used for ~
|
||
columncount fixed number of columns to display or 0
|
||
transposed filling view grid by columns rather than by lines
|
||
|
||
*vifm-'lsview'*
|
||
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 also
|
||
|vifm-ls-view|. This option has no effect if |vifm-'millerview'| is on.
|
||
|
||
*vifm-'milleroptions'*
|
||
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 takes three values: dirs (only directories), files (only files) or
|
||
all. Neither value enables preview of parent directory ("..").
|
||
|
||
Example of two-column mode which is useful in combination with
|
||
|vifm-:view| command: >
|
||
set milleroptions=lsize:1,csize:2
|
||
<
|
||
*vifm-'millerview'*
|
||
millerview
|
||
type: boolean
|
||
default: false
|
||
scope: local
|
||
|
||
When this option is set, directory view will be displayed in multiple
|
||
cascading columns. Ignores |vifm-'lsview'|.
|
||
|
||
*vifm-'mintimeoutlen'*
|
||
mintimeoutlen
|
||
type: integer
|
||
default: 150
|
||
|
||
The fracture of |vifm-'timeoutlen'| in milliseconds that is waited between
|
||
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.
|
||
|
||
*vifm-'mouse'*
|
||
mouse
|
||
type: charset
|
||
default: ""
|
||
|
||
Contains a sequence of single-character flags:
|
||
- a - all supported modes (a shorthand for all the rest and future additions)
|
||
- c - command-line mode (includes navigation mode)
|
||
- m - menu mode
|
||
- n - normal mode
|
||
- q - view mode
|
||
- v - visual mode
|
||
|
||
*vifm-'navoptions'*
|
||
navoptions
|
||
type: string list
|
||
default: "open:dirs"
|
||
|
||
Configures behaviour of navigation mode.
|
||
|
||
item default~
|
||
open:str dirs
|
||
|
||
The "open" item specifies what file-system objects should be opened on
|
||
|vifm-a_Enter| and can take two values: dirs (only directories) or all.
|
||
|
||
*vifm-'number'* *vifm-'nu'*
|
||
number nu
|
||
type: boolean
|
||
default: false
|
||
scope: local
|
||
|
||
Print line number in front of each file name when |vifm-'lsview'| option is
|
||
turned off. Use |vifm-'numberwidth'| to control width of line number.
|
||
Also see |vifm-'relativenumber'|.
|
||
|
||
*vifm-'numberwidth'* *vifm-'nuw'*
|
||
numberwidth nuw
|
||
type: integer
|
||
default: 4
|
||
scope: local
|
||
|
||
Minimal number of characters for line number field.
|
||
|
||
*vifm-'previewoptions'*
|
||
previewoptions
|
||
type: string list
|
||
default: "graphicsdelay:50000"
|
||
|
||
Tweaks how previewing is done (in quick view, miller view's column and
|
||
view mode).
|
||
|
||
item default meaning ~
|
||
graphicsdelay:num 0 delay before drawing graphics (microseconds)
|
||
hardgraphicsclear unset redraw screen to get rid of graphics
|
||
maxtreedepth:num 0 max number of levels in preview tree
|
||
toptreestats unset show file counts before the tree
|
||
|
||
graphicsdelay is needed if terminal requires some timeout before it can
|
||
draw graphics (otherwise it gets lost).
|
||
|
||
hardgraphicsclear seems to be necessary to get rid of sixel graphics in some
|
||
terminals, where it otherwise lingers. This can cause flicker on the screen
|
||
due to erasure followed by redrawing.
|
||
|
||
0 for maxtreedepth means "unlimited", 1 will only show selected directory, 2
|
||
adds its children, and so forth.
|
||
|
||
Default value is used when item is missing from the option.
|
||
|
||
*vifm-'previewprg'*
|
||
previewprg
|
||
type: string
|
||
default: ""
|
||
scope: local
|
||
|
||
External command to be used instead of preview programs configured via
|
||
|vifm-: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'
|
||
<
|
||
*vifm-'quickview'*
|
||
quickview
|
||
type: boolean
|
||
default: false
|
||
|
||
Whether quick view (|vifm-:view|) is currently active or not.
|
||
|
||
*vifm-'relativenumber'*
|
||
*vifm-'rnu'*
|
||
relativenumber rnu
|
||
type: boolean
|
||
default: false
|
||
scope: local
|
||
|
||
Print relative line number in front of each file name when |vifm-'lsview'|
|
||
option is turned off. Use |vifm-'numberwidth'| to control width of line
|
||
number. Various combinations of |vifm-'number'| and |vifm-'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
|
||
|
||
*vifm-'rulerformat'* *vifm-'ruf'*
|
||
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 supported:
|
||
%= - 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
|
||
%P - percentage through file list (All, Top, xx% or Bot), always 3 in
|
||
length
|
||
%S - number of displayed files
|
||
%% - 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%]'
|
||
<
|
||
*vifm-'runexec'*
|
||
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 |vifm-'lsview'| option.
|
||
|
||
*vifm-'scrollbind'* *vifm-'scb'*
|
||
scrollbind scb
|
||
type: boolean
|
||
default: false
|
||
|
||
When this option is set, vifm will try to keep difference of scrolling
|
||
positions of two windows constant.
|
||
|
||
*vifm-'scrolloff'* *vifm-'so'*
|
||
scrolloff so
|
||
type: integer
|
||
default: 0
|
||
|
||
Minimal number of screen lines to keep above and below the cursor. 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).
|
||
|
||
*vifm-'sessionoptions'*
|
||
*vifm-'ssop'*
|
||
sessionoptions ssop
|
||
type: set
|
||
default: tui,state,tabs,savedirs,dhistory
|
||
|
||
An equivalent of |vifm-'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 completely discarded,
|
||
instead it's merged with the state of a session the same way state of
|
||
multiple instances is merged on exit).
|
||
|
||
*vifm-'shell'* *vifm-'sh'*
|
||
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.
|
||
|
||
*vifm-'shellcmdflag'*
|
||
*vifm-'shcf'*
|
||
shellcmdflag shcf
|
||
type: string
|
||
default: "-c" or "/C" (for cmd.exe on MS-Windows)
|
||
|
||
Command-line option used to pass a command to |vifm-'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 session. You can't even run such a shell in
|
||
background. Consider writing a wrapper for your shell that preloads aliases
|
||
and commands 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 |vifm-'shell'| is set to PowerShell due
|
||
to the internal use of `-encodedCommand`.
|
||
|
||
*vifm-'shortmess'* *vifm-'shm'*
|
||
shortmess shm
|
||
type: charset
|
||
default: "p"
|
||
|
||
Contains a sequence of single-character flags. Each flag enables shortening
|
||
of some message displayed by vifm in the TUI. Flags:
|
||
L - display only last directory in tab line instead of full path.
|
||
M - shorten titles in windows of terminal multiplexers created 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.
|
||
|
||
*vifm-'showtabline'*
|
||
*vifm-'stal'*
|
||
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.
|
||
|
||
*vifm-'sizefmt'*
|
||
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 |vifm-'iec'|.
|
||
si Use 1000 byte units (KB, etc.).
|
||
precision: i > 0 How many fraction digits to consider.
|
||
{not set} Precision of 1 for integer part < 10,
|
||
0 otherwise (provides old behaviour).
|
||
space {present} Insert space before unit symbols.
|
||
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
|
||
<
|
||
*vifm-'slowfs'*
|
||
{only for *nix}
|
||
slowfs
|
||
type: string list
|
||
default: ""
|
||
|
||
A list of mounter fs name beginnings (first column in /etc/mtab or
|
||
/proc/mounts) or paths prefixes for fs/directories that work too slow for
|
||
you. This option can be used to stop vifm from making some requests to
|
||
particular kinds of file systems that can slow down file browsing.
|
||
Currently this means don't check if directory has changed, skip check if
|
||
target of symbolic links exists, assume that link target located on slow fs
|
||
to be a directory (allows entering directories and navigating to files via
|
||
|vifm-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
|
||
<
|
||
*vifm-'smartcase'* *vifm-'scs'*
|
||
smartcase scs
|
||
type: boolean
|
||
default: false
|
||
|
||
Overrides the |vifm-'ignorecase'| option if a pattern contains at least one
|
||
upper case character. Only used when |vifm-'ignorecase'| option is enabled.
|
||
|
||
*vifm-'sort'*
|
||
sort
|
||
type: enumeration
|
||
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 mode (file type + permissions) in octal (*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 |vifm-'sortgroups'|
|
||
[+-]target - symbolic link target (empty for other file types)
|
||
[+-]atime - time accessed (e.g., read, executed)
|
||
[+-]ctime - time changed (changes in metadata, like 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 not added implicitly:
|
||
when "dir" is not specified, sorting behaves as if it was the first key in
|
||
the list. That's why if one wants 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
|
||
|
||
This option also changes view columns according to primary sorting key set,
|
||
unless |vifm-'viewcolumns'| option is not empty.
|
||
|
||
Value of the option is checked to include "dir" key and default sorting key
|
||
"(name" on *nix, "iname" on Windows). Here is what happens if one of them is
|
||
missing:
|
||
- "dir" 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 sorting key set,
|
||
unless |vifm-'viewcolumns'| option is not empty.
|
||
|
||
*vifm-'sortnumbers'*
|
||
sortnumbers
|
||
type: boolean
|
||
default: false
|
||
|
||
Natural sort of (version) numbers within text.
|
||
|
||
*vifm-'sortgroups'*
|
||
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 regular 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.
|
||
|
||
*vifm-'sortorder'*
|
||
sortorder
|
||
type: enumeration
|
||
default: ascending
|
||
scope: local
|
||
|
||
Sets sort order for primary key: ascending, descending.
|
||
|
||
*vifm-'statusline'* *vifm-'stl'*
|
||
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 previous versions. Following macros
|
||
are supported:
|
||
%N - line break (increases height of the status line accordingly), ignores
|
||
%[ %] blocks
|
||
%t - file name (considering value of the |vifm-'classify'| option)
|
||
%T - symbolic link target (empty for other filetypes)
|
||
%f - file name relative to current directory (considers 'classify')
|
||
%A - file attributes (permissions on *nix or properties on Windows)
|
||
%o - file permissions in octal form on *nix (nothing 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 |vifm-'timefmt'| option)
|
||
%D - path of the other pane for single-pane layout
|
||
%a - amount of free space available on current FS
|
||
%c - size of current FS
|
||
%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..User20 highlight groups; reset happens
|
||
when width field is 0 or not specified, one of the groups gets picked
|
||
when width field is in the range from 1 to 20
|
||
all |vifm-'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 "
|
||
<
|
||
*vifm-'suggestoptions'*
|
||
suggestoptions
|
||
type: string list
|
||
default:
|
||
|
||
Controls when, for what and how suggestions are displayed. The following
|
||
values are available:
|
||
- normal - in normal mode;
|
||
- visual - in visual mode;
|
||
- view - in view mode;
|
||
- otherpane - use other pane to display suggestions, when available;
|
||
- delay[:num] - display suggestions after a small delay (to do not annoy
|
||
if you just want to type a fast shortcut consisting of
|
||
multiple keys), num specifies the delay in ms (500 by
|
||
default), |vifm-'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).
|
||
|
||
*vifm-'syncregs'*
|
||
syncregs
|
||
type: string
|
||
default: ""
|
||
|
||
Specifies identifier of group of instances that share registers among 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.
|
||
|
||
*vifm-'syscalls'*
|
||
syscalls
|
||
type: boolean
|
||
default: false
|
||
|
||
When disabled, vifm will rely on external applications to perform file-system
|
||
operations, otherwise system calls are used instead (much faster and supports
|
||
progress tracking). The option should eventually be removed. Mostly
|
||
*nix-like systems are affected.
|
||
|
||
*vifm-'tablabel'*
|
||
tablabel
|
||
type: string
|
||
default: ""
|
||
|
||
When non-empty and |vifm-'tabline'| isn't set, 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 |vifm-filename-modifiers|)
|
||
%t - title of the view (affected by |vifm-'shortmess'| flags)
|
||
%% - literal percent sign
|
||
%[ - designates beginning of an optional block
|
||
%] - designates end of an optional block
|
||
%*, %0* - resets highlighting
|
||
%1* - %20* - applies one of User1..User20 highlight groups
|
||
|
||
In global tabs the view in bullets above refers to currently active view of that
|
||
tab.
|
||
|
||
Flag macros are a special kind of macros that always expand to an empty value
|
||
and are meant 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.
|
||
|
||
Example: >
|
||
" %[(%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
|
||
<
|
||
*vifm-'tabline'* *vifm-'tal'*
|
||
tabline tal
|
||
type: string
|
||
default: ""
|
||
|
||
When non-empty, determines format of the tab line. Note that mouse clicks
|
||
won't be handled when this option is non-empty.
|
||
|
||
The following macros can appear in the format:
|
||
%*, %0* - resets highlighting
|
||
%1* - %20* - applies one of User1..User20 highlight groups
|
||
|
||
*vifm-'tabprefix'*
|
||
tabprefix
|
||
type: string
|
||
default: "[%N:"
|
||
|
||
Determines prefix of a tab's label. Formatting is done as for
|
||
|vifm-'tablabel'| option.
|
||
|
||
Example of highlighting tab number: >
|
||
" setup color for non-current tabs
|
||
highlight User7 ctermfg=red
|
||
" setup color for current tabs
|
||
highlight User8 ctermbg=blue ctermfg=none
|
||
" use optional group predicated on current-tab flag
|
||
set tabprefix=[%7*%[%8*%C%]%N%*:
|
||
|
||
*vifm-'tabscope'*
|
||
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
|
||
|
||
*vifm-'tabstop'* *vifm-'ts'*
|
||
tabstop ts
|
||
type: integer
|
||
default: value from curses library
|
||
|
||
Number of spaces that a Tab in the file counts for.
|
||
|
||
*vifm-'tabsuffix'*
|
||
tabsuffix
|
||
type: string
|
||
default: "]"
|
||
|
||
Determines suffix of a tab's label. Formatting is done as for
|
||
|vifm-'tablabel'| option.
|
||
|
||
*vifm-'timefmt'*
|
||
timefmt
|
||
type: string
|
||
default: "%m/%d %H:%M"
|
||
|
||
Format of time in file list. See man date or man strftime for details.
|
||
|
||
*vifm-'trash'*
|
||
trash
|
||
type: boolean
|
||
default: true
|
||
|
||
Use |vifm-trash| directory.
|
||
|
||
*vifm-'trashdir'*
|
||
trashdir
|
||
type: string
|
||
default: on *nix:
|
||
"%r/.vifm-Trash-%u,$XDG_DATA_HOME/vifm/Trash,%r/.vifm-Trash"
|
||
or
|
||
"%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash"
|
||
on Windows:
|
||
"%r/.vifm-Trash,$XDG_DATA_HOME/vifm/Trash"
|
||
or
|
||
"%r/.vifm-Trash,$VIFM/vifm/Trash"
|
||
|
||
List of trash directory path specifications, separated with commas.
|
||
Each list item either defines an absolute path to |vifm-trash| directory
|
||
or a path relative to a mount point root, when list element starts with "%r/".
|
||
Value of the option can contain environment variables (of form "$envname"),
|
||
which will be expanded (prepend $ with a slash to prevent expansion).
|
||
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 directory, 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
|
||
trash common trash directory on failure.
|
||
|
||
Will attempt to create the directory if it does not exist.
|
||
|
||
*vifm-'timeoutlen'* *vifm-'tm'*
|
||
timeoutlen tm
|
||
type: integer
|
||
default: 1000
|
||
|
||
The time in milliseconds that is waited for a mapped key in case when
|
||
already typed key sequence is ambiguous. See also |vifm-'mintimeoutlen'|.
|
||
|
||
*vifm-'title'*
|
||
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"
|
||
|
||
*vifm-'tuioptions'* *vifm-'to'*
|
||
tuioptions to
|
||
type: charset
|
||
default: "psv"
|
||
|
||
Each flag configures some aspect of TUI appearance. The flags are:
|
||
*vifm-to-p*
|
||
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.
|
||
*vifm-to-s*
|
||
s - when included, left and right borders (side borders, hence "s" character)
|
||
are visible.
|
||
*vifm-to-u*
|
||
u - use Unicode characters in the TUI (Unicode ellipsis instead of "...").
|
||
*vifm-to-v*
|
||
v - vary width of vertical middle border to equalize view sizes.
|
||
|
||
Each pane title contains the path of the listed directory. If too large, the
|
||
path is truncated on the left for the active pane and on the right for the other
|
||
pane. This can be modified with:
|
||
*vifm-to-l*
|
||
l - truncation is always on the left.
|
||
*vifm-to-r*
|
||
r - truncation is always on the right.
|
||
|
||
*vifm-'undolevels'* *vifm-'ul'*
|
||
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.
|
||
|
||
*vifm-'vicmd'*
|
||
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 |vifm-:rename| being one example.
|
||
`-f` is also appended to prevent 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.
|
||
|
||
*vifm-'viewcolumns'*
|
||
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 |vifm-'sort'|) as a base. Value of this option is ignored if
|
||
|vifm-'lsview'| is set. See |vifm-column-view| for format description.
|
||
An example of setting the options for both panes (note |vifm-:windo|
|
||
command): >
|
||
windo set viewcolumns=-{name}..,6{size},11{perms}
|
||
<
|
||
*vifm-'vixcmd'*
|
||
vixcmd
|
||
type: string
|
||
default: value of |vifm-'vicmd'|
|
||
|
||
Same as |vifm-'vicmd'|, but takes precedence over it when running inside a
|
||
graphical environment.
|
||
|
||
*vifm-'vifminfo'*
|
||
vifminfo
|
||
type: set
|
||
default: bookmarks,bmarks
|
||
|
||
Controls what will be saved in the $VIFM/vifminfo file:
|
||
|
||
bmarks - named bookmarks (see |vifm-:bmark|)
|
||
bookmarks - marks, except for special ones like '< and '>
|
||
cs - primary color scheme
|
||
dirstack - directory stack (overwrites previous stack, unless stack of
|
||
current instance is empty)
|
||
registers - registers content
|
||
savedirs - last visited directory
|
||
state - file name and dot filters and terminal multiplexers integration
|
||
state
|
||
tabs - global or pane tabs
|
||
tui - state of the user interface (sorting, number of windows, quick
|
||
view state, active view)
|
||
|
||
chistory - command line history
|
||
dhistory - directory history
|
||
ehistory - expression register history (see |vifm-c_Ctrl-R_=|)
|
||
fhistory - history of local filter (see |vifm-=|)
|
||
mchistory - command line history of menus
|
||
phistory - prompt history
|
||
shistory - search history (/ and ? commands)
|
||
|
||
commands - user defined commands (see :command description) (obsolete)
|
||
filetypes - associated programs and viewers (obsolete)
|
||
options - all options that can be set with the :set command (obsolete)
|
||
|
||
*vifm-'vimhelp'*
|
||
vimhelp
|
||
type: boolean
|
||
default: false
|
||
|
||
Use vim help format.
|
||
|
||
*vifm-'wildmenu'* *vifm-'wmnu'*
|
||
wildmenu wmnu
|
||
type: boolean
|
||
default: false
|
||
|
||
Controls whether possible matches of completion will be shown above the
|
||
command line.
|
||
|
||
*vifm-'wildstyle'*
|
||
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
|
||
|
||
*vifm-'wordchars'*
|
||
wordchars
|
||
type: string list
|
||
default: "1-8,14-31,33-255" (that is all non-whitespace characters)
|
||
|
||
Specifies which characters in command-line mode should be considered as part
|
||
of a word. Value of the option is comma-separated list of ranges. If both
|
||
endpoints of a range match, single 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 |vifm-c_ALT-D|, |vifm-c_ALT-B| and |vifm-c_ALT-F|, but not
|
||
|vifm-c_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 later use the following mapping: >
|
||
cnoremap <c-w> <a-b><a-d>
|
||
<
|
||
Also used for abbreviations.
|
||
|
||
*vifm-'wrap'*
|
||
wrap
|
||
type: boolean
|
||
default: true
|
||
|
||
Controls whether to wrap text in quick view.
|
||
|
||
*vifm-'wrapscan'* *vifm-'ws'*
|
||
wrapscan ws
|
||
type: boolean
|
||
default: true
|
||
|
||
Searches wrap around end of the list.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-mappings*
|
||
|
||
A user mapping like `nnoremap lhs rhs` defines a substitution of the
|
||
left-hand-side (LHS) with the right-hand-side (RHS) in the input stream. A
|
||
regular mapping (without "nore" in :command's name) expands recognized
|
||
sequences in the RHS, while "*noremap" mapping always interprets RHS as if no
|
||
user mappings were defined and each key has its builtin meaning. In most
|
||
cases you want to use noremap variant and if your RHS includes LHS, only
|
||
noremap variant will work because recursion in a mapping is not allowed.
|
||
|
||
In order to define a mapping determine in which mode you want to activate it
|
||
and use an appropriate "*noremap" :command (e.g., |vifm-:nnoremap| for a
|
||
normal mode mapping). RHS doesn't have to limit itself to the mode in which
|
||
the mapping was started and can span multiple modes.
|
||
|
||
Map arguments~
|
||
|
||
LHS of mappings can be preceded by arguments which take the form of special
|
||
sequences:
|
||
|
||
<silent>
|
||
Postpone UI updates until RHS is completely processed.
|
||
<wait>
|
||
In case of builtin mapping causing conflict for a user-defined mapping
|
||
(e.g., `t` builtin to a partially typed `ta` user-defined mapping), ignore
|
||
the builtin mapping and wait for input indefinitely as opposed to
|
||
default behaviour of triggering the builtin mapping after a delay defined
|
||
by |vifm-'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 special
|
||
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.
|
||
<s-home> <s-end>
|
||
<s-left> <s-right> <s-up> <s-down>
|
||
<s-pageup> <s-pagedown>
|
||
<s-delete> <s-insert>
|
||
Shift + one of the keys from above, if terminal and its terminfo supports
|
||
it.
|
||
<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>
|
||
<a-0>,<a-1>,...,<a-9> {only for *nix}
|
||
<m-0>,<m-1>,...,<m-9> {only for *nix}
|
||
Alt + some key.
|
||
<a-c-a>,<a-c-b>,...,<a-c-z> {only for *nix}
|
||
<m-c-a>,<m-c-b>,...,<m-c-z> {only for *nix}
|
||
Alt + Ctrl + some key.
|
||
<a-s-a>,<a-s-b>,...,<a-s-z> {only for *nix}
|
||
<s-a-a>,<s-a-b>,...,<s-a-z> {only for *nix}
|
||
<m-s-a>,<m-s-b>,...,<m-s-z> {only for *nix}
|
||
<s-m-a>,<s-m-b>,...,<s-m-z> {only for *nix}
|
||
Alt + Shift + 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 keyboard keys
|
||
might be mapped to single key code, for example:
|
||
- <cr> and <c-m>;
|
||
- <tab> and <c-i>;
|
||
- <c-h> and <bs> and <del>;
|
||
- etc.
|
||
|
||
Most of the time they are defined consistently and don't cause surprises, but
|
||
<c-h> and <bs> are treated differently in different environments (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>
|
||
|
||
Also sometimes neither of them might work and it's <del> key which corresponds
|
||
to your backspace (don't mind the name).
|
||
|
||
Whitespace~
|
||
|
||
vifm removes whitespace characters at the beginning and end of commands.
|
||
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.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-expression-syntax*
|
||
|
||
Supported expressions is a subset of what VimL provides.
|
||
|
||
Expression syntax summary, from least to most significant:
|
||
|
||
|vifm-expr1| expr2
|
||
expr2 || expr2 .. logical OR
|
||
|
||
|vifm-expr2| expr3
|
||
expr3 && expr3 .. logical AND
|
||
|
||
|vifm-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
|
||
|
||
|vifm-expr4| expr5
|
||
expr5 + expr5 .. number addition
|
||
expr5 - expr5 .. number subtraction
|
||
|
||
|vifm-expr5| expr6
|
||
expr6 . expr6 .. string concatenation
|
||
|
||
|vifm-expr6| expr7
|
||
- expr6 unary minus
|
||
+ expr6 unary plus
|
||
! expr6 logical NOT
|
||
|
||
|vifm-expr7| number number constant
|
||
"string" string constant, backslash 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 *vifm-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 *vifm-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 *vifm-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 == *vifm-expr-==*
|
||
not equal != *vifm-expr-!=*
|
||
greater than > *vifm-expr->*
|
||
greater than or equal >= *vifm-expr->=*
|
||
smaller than < *vifm-expr-<*
|
||
smaller than or equal <= *vifm-expr-<=*
|
||
|
||
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 *vifm-expr4*
|
||
-----
|
||
expr5 + expr5 .. number addition *vifm-expr-+*
|
||
expr5 - expr5 .. number subtraction *vifm-expr--*
|
||
|
||
Examples: >
|
||
1 + 3 - 3 == 1
|
||
1 + '2' == 3
|
||
<
|
||
|
||
expr5 *vifm-expr5*
|
||
-----
|
||
expr6 . expr6 .. string concatenation *vifm-expr-.*
|
||
|
||
Examples: >
|
||
'a' . 'b' == 'ab'
|
||
'aaa' . '' . 'c' == 'aaac'
|
||
<
|
||
|
||
expr6 *vifm-expr6*
|
||
-----
|
||
|
||
- expr6 unary minus *vifm-expr-unary--*
|
||
+ expr6 unary plus *vifm-expr-unary-+*
|
||
! expr6 logical NOT *vifm-expr-unary-!*
|
||
|
||
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 *vifm-expr7*
|
||
-----
|
||
|
||
number number constant *vifm-expr-number*
|
||
------
|
||
|
||
Decimal number. Examples: >
|
||
0 == 0
|
||
0000 == 0
|
||
01 == 1
|
||
123 == 123
|
||
10000 == 10000
|
||
<
|
||
string *vifm-expr-string*
|
||
------
|
||
"string" string constant *vifm-expr-quote*
|
||
|
||
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 *vifm-literal-string*
|
||
--------------
|
||
'string' string constant *vifm-expr-'*
|
||
|
||
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 *vifm-expr-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 |vifm-set-options|.
|
||
|
||
|
||
environment variable *vifm-expr-env*
|
||
--------------------
|
||
$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 *vifm-expr-variable*
|
||
--------------------
|
||
v:var builtin variable
|
||
|
||
Information exposed by vifm for use in scripting.
|
||
|
||
*vifm-v:count*
|
||
v:count *vifm-count-variable*
|
||
count passed to : command. Can be used in mappings to pass count
|
||
to a different command.
|
||
|
||
*vifm-v:count1*
|
||
v:count1 *vifm-count1-variable*
|
||
same as v:count, but 1 by default.
|
||
|
||
*vifm-v:jobcount*
|
||
v:jobcount *vifm-jobcount-variable*
|
||
number of active jobs (as can be seen in the |vifm-:jobs| menu).
|
||
|
||
*vifm-v:session*
|
||
v:session *vifm-session-variable*
|
||
name of the current session or empty string.
|
||
|
||
See also |vifm-v:servername|.
|
||
|
||
function call *vifm-expr-function*
|
||
-------------
|
||
function(expr1, ...) function call
|
||
|
||
See below |vifm-functions|.
|
||
|
||
Examples: >
|
||
"'" . filetype('.') . "'"
|
||
filetype('.') == 'reg'
|
||
<
|
||
expression nesting *vifm-expr-nesting*
|
||
------------------
|
||
(expr1) nested expression
|
||
|
||
Groups any other expression of arbitrary complexity enforcing order in which
|
||
operators are applied.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-functions*
|
||
|
||
USAGE RESULT DESCRIPTION ~
|
||
|
||
chooseopt({opt}) String Queries choose parameters passed on startup.
|
||
executable({expr}) Integer Checks whether {expr} command available.
|
||
expand({expr}) String Expands special keywords in {expr}.
|
||
extcached({cache}, {path}, {extcmd})
|
||
String Caches output of {extcmd} per {cache} and
|
||
{path} combination.
|
||
filereadable({path}) Integer Checks whether {expr} points to a
|
||
non-directory that can be read.
|
||
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 {property}.
|
||
input({prompt} [, {initial} [, {completion}]])
|
||
String Prompts user for an input on command-line.
|
||
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}) *vifm-chooseopt()*
|
||
|
||
Retrieves values of options related to file choosing. {opt} can be one of:
|
||
files returns argument of |vifm---choose-files| or empty string
|
||
dir returns argument of |vifm---choose-dir| or empty string
|
||
cmd returns argument of |vifm---on-choose| or empty string
|
||
delimiter returns argument of |vifm---delimiter| or the default one ("\n")
|
||
|
||
executable({expr}) *vifm-executable()*
|
||
|
||
If {expr} is absolute or relative path, checks whether path destination exists
|
||
and refers to an executable, otherwise checks whether command named {expr} is
|
||
present in directories listed in $PATH. Checks for various executable
|
||
extensions on Windows. Returns boolean value describing result of the check.
|
||
|
||
Example: >
|
||
" use custom default viewer script if it's available and installed
|
||
" in predefined system directory, otherwise try to find it elsewhere
|
||
if executable('/usr/local/bin/defviewer')
|
||
fileview * /usr/local/bin/defviewer %c
|
||
else
|
||
if executable('defviewer')
|
||
fileview * defviewer %c
|
||
endif
|
||
endif
|
||
|
||
expand({expr}) *vifm-expand()*
|
||
|
||
Expands environment variables and macros in {expr} (in this order). Returns
|
||
a string. See |vifm-macros|.
|
||
|
||
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')
|
||
" full path to the current file with backslashes
|
||
:echo expand('%c:p:gs!/!\\!')
|
||
|
||
extcached({cache}, {path}, {extcmd}) *vifm-extcached()*
|
||
|
||
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')) }"
|
||
|
||
filereadable({path}) *vifm-filereadable()*
|
||
|
||
Checks whether {path} exists and refers to a non-directory entry and its
|
||
permissions allow reading. Returns boolean value describing result of the
|
||
check.
|
||
|
||
filetype({fnum} [, {resolve}]) *vifm-filetype()*
|
||
|
||
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 number
|
||
|
||
Optional parameter {resolve} is treated as a boolean and specifies whether
|
||
symbolic links should be resolved.
|
||
|
||
fnameescape({expr}) *vifm-fnameescape()*
|
||
|
||
Escapes parameter to make it suitable for use as an argument of a :command.
|
||
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() *vifm-getpanetype()*
|
||
|
||
Retrieves string describing type of current pane. Possible return values:
|
||
regular regular file listing of some directory
|
||
custom custom file list (%u)
|
||
very-custom very custom file list (%U)
|
||
tree tree view
|
||
compare compare view
|
||
|
||
|
||
has({property}) *vifm-has()*
|
||
|
||
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 properties
|
||
are supported (anything else will yield 0):
|
||
unix runs in *nix-like environment (including Cygwin)
|
||
win runs on Windows
|
||
#* whether particular Lua handler exists (|vifm-lua-handlers|)
|
||
|
||
Usage example: >
|
||
" skip user/group on Windows
|
||
if !has('win')
|
||
let $RIGHTS = '%10u:%-7g '
|
||
endif
|
||
|
||
execute 'set' 'statusline=" %t%= %A '.$RIGHTS.'%15E %20d "'
|
||
<
|
||
|
||
input({prompt} [, {initial} [, {completion}]]) *vifm-input()*
|
||
|
||
Creates a command-line prompt to obtain user's input. Initial value can
|
||
be supplied as an optional second parameter, otherwise empty string is used.
|
||
|
||
Optional third parameter specifies kind of completion, which can be one of:
|
||
dir paths to directories
|
||
file paths to files and directories
|
||
"" (empty string, default) no completion
|
||
|
||
Note that behaviour differs from Vim where executing a mapping like >
|
||
nnoremap j :echo input('text: ')<cr>input
|
||
leaves you in a prompt mode with "input" typed in. Vifm will wait for leaving
|
||
the prompt and then continue executing the mapping.
|
||
|
||
Usage example: >
|
||
nnoremap ,m : let $DIR_NAME = input('mkdir: ', '', 'dir')
|
||
\| if $DIR_NAME != ''
|
||
\| execute 'mkdir' fnameescape($DIR_NAME)
|
||
\| endif<cr>
|
||
|
||
layoutis({type}) *vifm-layoutis()*
|
||
|
||
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)
|
||
|
||
Any other value yields 0.
|
||
|
||
Usage example: >
|
||
" automatically split vertically before enabling preview
|
||
:nnoremap w :if layoutis('only') | vsplit | endif | view!<cr>
|
||
<
|
||
|
||
paneisat({loc}) *vifm-paneisat()*
|
||
|
||
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}) *vifm-system()*
|
||
|
||
Runs the command in shell and returns its output (joined standard output and
|
||
standard error streams). All trailing newline characters are stripped to
|
||
allow easy appending to command output. CTRL-C should interrupt the command.
|
||
|
||
Use this function to consume output of external commands that don't require
|
||
user interaction and term() for interactive commands that can 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}]) *vifm-tabpagenr()*
|
||
|
||
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}) *vifm-term()*
|
||
|
||
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'))
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-menus-and-dialogs*
|
||
|
||
When navigating to some path from a menu there is a difference in the end
|
||
location depending on whether the path has a trailing slash. Files normally
|
||
don't have trailing slashes so "file/" won't work. In case of directories
|
||
there are two options: navigate to a directory or inside of it. To allow both
|
||
use cases, the first action is taken for "dir" and the second one for "dir/".
|
||
|
||
Menu commands~
|
||
|
||
:range *vifm-m_:range*
|
||
navigate to a menu line.
|
||
|
||
*vifm-m_:chistory* *vifm-:m_chi*
|
||
:chi[story]
|
||
display menu of saved menus. See |vifm-menus-and-dialogs| for controls,
|
||
also see |vifm-menus-history|.
|
||
:col[der] *vifm-m_:colder* *vifm-m_:col*
|
||
load an older navigation menu if there is one.
|
||
See |vifm-menus-history|.
|
||
:cnew[er] *vifm-m_:cnewer* *vifm-m_:cnew*
|
||
load a newer navigation menu if there is one.
|
||
See |vifm-menus-history|.
|
||
|
||
:exi[t][!] *vifm-m_:exit* *vifm-m_:exi*
|
||
:q[uit][!] *vifm-m_:quit* *vifm-m_:q*
|
||
:x[it][!] *vifm-m_:xit* *vifm-m_:x*
|
||
leave the menu mode.
|
||
|
||
:noh[lsearch] *vifm-m_:nohlsearch*
|
||
*vifm-m_:noh*
|
||
reset search match highlighting.
|
||
|
||
:w[rite] {path} *vifm-m_:write* *vifm-m_:w*
|
||
write all menu lines into the file specified by {path}.
|
||
|
||
Common keys of all menus and dialogs~
|
||
|
||
j, Ctrl-N *vifm-m_j* *vifm-m_CTRL-N*
|
||
move the cursor down.
|
||
k, Ctrl-P *vifm-m_k* *vifm-m_CTRL-P*
|
||
move the cursor up.
|
||
|
||
Enter *vifm-m_Enter*
|
||
select and usually close menu/dialog.
|
||
Ctrl-L *vifm-m_CTRL-L*
|
||
redraw menu/dialog.
|
||
|
||
Escape, Ctrl-C *vifm-m_Escape* *vifm-m_CTRL-C*
|
||
ZZ, ZQ *vifm-m_ZZ* *vifm-m_ZQ*
|
||
q *vifm-m_q*
|
||
close menu/dialog.
|
||
|
||
Common keys of all menus~
|
||
|
||
Ctrl-B, Ctrl-F *vifm-m_CTRL-B* *vifm-m_CTRL-F*
|
||
Ctrl-D, Ctrl-U *vifm-m_CTRL-D* *vifm-m_CTRL-U*
|
||
Ctrl-E, Ctrl-Y *vifm-m_CTRL-E* *vifm-m_CTRL-Y*
|
||
/, ? *vifm-m_/* *vifm-m_?*
|
||
n, N *vifm-m_n* *vifm-m_N*
|
||
[count]G, [count]gg *vifm-m_G* *vifm-m_gg*
|
||
H, M, L *vifm-m_H* *vifm-m_M* *vifm-m_L*
|
||
zb, zt, zz *vifm-m_zb* *vifm-m_zt*
|
||
*vifm-m_zz*
|
||
these keys have the same meaning as in normal mode.
|
||
|
||
zh *vifm-m_zh*
|
||
scroll menu items [count] characters to the right.
|
||
zl *vifm-m_zl*
|
||
scroll menu items [count] characters to the left.
|
||
|
||
zH *vifm-m_zH*
|
||
scroll menu items half the screen width to the right.
|
||
zL *vifm-m_zL*
|
||
scroll menu items half the screen width to the left.
|
||
|
||
|
||
: enter command line mode for menus. *vifm-m_:*
|
||
|
||
|
||
b *vifm-m_b*
|
||
interpret content of the menu as a list of paths and use it to create
|
||
custom view in place of the previously active pane. See
|
||
|vifm-custom-views|.
|
||
B *vifm-m_B*
|
||
same as above, but create an unsorted view.
|
||
|
||
|
||
v *vifm-m_v*
|
||
load menu content into quickfix list of an editor (Vim compatible by
|
||
assumption) or, if the list doesn't have separators after file
|
||
names (colons), open each line as a file name.
|
||
|
||
Navigation menus~
|
||
|
||
This applies to the following menus:
|
||
- |vifm-:bmarks|, |vifm-:bmgo|
|
||
- |vifm-:find|
|
||
- |vifm-:grep|
|
||
- |vifm-:locate|
|
||
- user menu with navigation (|vifm-%M|)
|
||
|
||
gf *vifm-m_gf*
|
||
navigate previously active view to currently selected item. Leaves menu
|
||
mode except for |vifm-:grep| menu. Pressing Enter or l has the same
|
||
effect.
|
||
|
||
e *vifm-m_e*
|
||
open selected path in an editor, stays in menu mode.
|
||
|
||
c *vifm-m_c*
|
||
leave menu preserving file selection and insert file name after :! in
|
||
command-line mode. Does nothing in |vifm-:bmarks| and |vifm-:bmgo|.
|
||
|
||
Note that each of these menus can have additional keys, see below.
|
||
|
||
History menus (:history *)~
|
||
==========================
|
||
|
||
Command-line history menu~
|
||
|
||
Enter, l
|
||
execute the item as a command-line command, search query or local filter.
|
||
c
|
||
leave the menu preserving file selection and insert the item into
|
||
the command-line of appropriate kind.
|
||
|
||
Directory history menu~
|
||
|
||
Enter, l
|
||
navigate into the selected directory.
|
||
|
||
Menu commands history menu~
|
||
|
||
Enter, l
|
||
execute command without leaving the menu.
|
||
c
|
||
insert menu item into the command-line for editing.
|
||
|
||
Other menus~
|
||
===========
|
||
|
||
Apropos (:apropos) menu~
|
||
|
||
Enter, l
|
||
run man on a given topic. Menu won't be closed automatically to allow
|
||
viewing several pages one by one.
|
||
|
||
Bookmarks (:bmarks, :bmgo) menu~
|
||
|
||
Enter, l
|
||
navigate to the selected bookmark.
|
||
dd
|
||
remove bookmark under the cursor.
|
||
|
||
See above for "gf" and "e" keys.
|
||
|
||
Command-line mode abbreviations (:cabbrev) menu~
|
||
|
||
dd
|
||
remove abbreviation under the cursor.
|
||
|
||
Color scheme (:colorscheme) menu~
|
||
|
||
Enter, l
|
||
apply selected colorscheme as if ":colorscheme <name>" was executed on the
|
||
command-line.
|
||
|
||
Commands (:command) menu~
|
||
|
||
Enter, l
|
||
execute the command with empty arguments (|vifm-%a|).
|
||
dd
|
||
remove command under the cursor.
|
||
c
|
||
leave menu preserving file selection and insert right-hand side of selected
|
||
command into the command-line.
|
||
|
||
Directory stack (:dirs) menu~
|
||
|
||
Enter, l
|
||
rotate the stack to put selected directory pair at the top.
|
||
|
||
File (:file) menu~
|
||
|
||
Commands from vifmrc or typed on the command-line are displayed above an empty
|
||
line if it's present. All commands below the empty line come from .desktop
|
||
files.
|
||
|
||
Commands detected as available have "[present]" to the left of them.
|
||
|
||
Enter, l
|
||
run selected command (regardless whether it was detected to be present or
|
||
not).
|
||
c
|
||
leave menu preserving file selection and insert command after :! in the
|
||
command-line mode.
|
||
|
||
Grep (:grep) menu~
|
||
|
||
Enter, l
|
||
open file in an editor set by |vifm-'vicmd'| at given line number. Menu
|
||
won't be closed automatically to allow viewing more than one result.
|
||
|
||
See above for "gf", "e" and "c" keys.
|
||
|
||
Jobs (:jobs) menu~
|
||
|
||
dd
|
||
request cancellation of job under the cursor. The job won't be removed
|
||
from the list, but marked as being cancelled (if cancellation was
|
||
successfully 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
|
||
display errors of selected job if any were collected. They are
|
||
displayed in a new menu, but you can return to jobs menu by pressing h.
|
||
r
|
||
reload the list of jobs.
|
||
|
||
Marks (:marks) menu~
|
||
|
||
Enter, l
|
||
navigate to selected mark.
|
||
dd
|
||
remove mark under the cursor.
|
||
|
||
Media (:media) menu~
|
||
|
||
Enter, l
|
||
behaviour is different for different kinds of lines:
|
||
- mount an unmounted device
|
||
- navigate to the first mount point of a mounted device
|
||
- navigate to a mount point
|
||
- do nothing for "not mounted" or an empty line
|
||
|
||
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.
|
||
|
||
Menus history (:chistory) menu~
|
||
|
||
Enter, l
|
||
load selected menu.
|
||
|
||
Plugins (:plugins) menu~
|
||
|
||
e
|
||
display log messages of selected plugin if any were collected. They are
|
||
displayed in a new menu, but you can return to plugins menu by pressing h.
|
||
gf
|
||
navigate previously active view to the location of selected plugin.
|
||
Leaves menu mode.
|
||
|
||
Trash (:lstrash) menu~
|
||
|
||
r
|
||
restore a file from the trash to its original location.
|
||
dd
|
||
delete file under the cursor.
|
||
|
||
Trashes (:trashes) menu~
|
||
|
||
Enter, l
|
||
navigate into current trash directory.
|
||
dd
|
||
start emptying selected trash in background.
|
||
|
||
Undolist (:undolist) menu~
|
||
|
||
r
|
||
reset undo position to group under the cursor.
|
||
|
||
User menu without navigation (%m macro)~
|
||
|
||
c
|
||
leave menu preserving file selection and insert whole line after :! in
|
||
command-line mode.
|
||
|
||
Volumes (:volumes) menu~
|
||
{only for MS-Windows}
|
||
Enter, l
|
||
navigate into the root of selected drive.
|
||
|
||
Dialog-specific operations~
|
||
==========================
|
||
|
||
Attributes (permissions or properties) dialog~
|
||
|
||
h, Space
|
||
check/uncheck.
|
||
q
|
||
close the dialog.
|
||
r
|
||
(*nix only) (un)set all read bits.
|
||
w
|
||
(*nix only) (un)set all write bits.
|
||
x
|
||
(*nix only) (un)set all execute bits.
|
||
s
|
||
(*nix only) (un)set all special (SetUID, SetGID, Sticky) bits.
|
||
e
|
||
(*nix only) (un)set recursion (for directories only).
|
||
|
||
Possible item states:
|
||
* - checked flag.
|
||
X - selected files have inconsistent value of this flag.
|
||
{only for *nix}
|
||
d - (only for execute flags) means u-x+X, g-x+X or o-x+X argument for the
|
||
chmod program. If you're not on OS X and want to remove execute permission
|
||
bit from all files, but preserve it for directories, set all execute flags
|
||
to 'd' and check 'Set Recursively' flag.
|
||
|
||
Fileinfo (Ctrl-G) dialog~
|
||
|
||
Enter, q
|
||
close the dialog.
|
||
|
||
Sort (:sort) dialog ~
|
||
|
||
h, Space
|
||
switch ascending/descending order.
|
||
q
|
||
close the dialog.
|
||
|
||
There is also a shortcut per sorting key (drawn on the dialog).
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-menus-history*
|
||
|
||
Menus are often used to present results of operations (like finding or grepping
|
||
files). Once closed they can be recreated by repeating a command, but it
|
||
might be inconvenient (require changing directory, finding the command and
|
||
possibly finding position in a menu) and time consuming to re-run the
|
||
operation. To make referring to older menus possible, vifm stores up to 10
|
||
last such menus and provides means for recalling them using familiar set of
|
||
Vim commands.
|
||
|
||
As already hinted above, this doesn't apply to every menu because things like
|
||
|vifm-:version| or |vifm-:commands| rely solely on internal data and don't
|
||
need to be saved. Only menus that are derived from external sources and
|
||
support navigation (like via |vifm-m_gf|) are remembered.
|
||
|
||
Navigating through history~
|
||
|
||
Re-opening the last viewed menu of relevant type is done by running
|
||
|vifm-:copen| command. Once opened |vifm-m_:colder| can be used to view older
|
||
menus and |vifm-m_:cnewer| to view newer ones.
|
||
|
||
Closing a menu after moving through the history remembers the position such
|
||
that running |vifm-:copen| again will open the last viewed menu and allow to
|
||
continue exploring history in both directions.
|
||
|
||
The history always contains menus sorted from oldest to newest. After opening
|
||
more than 10 menus the oldest one is likely to be forgotten. It's not
|
||
guaranteed to happen because after viewing an older menu new entry replaces
|
||
all more recent ones. As an example, assume the history looks like this:
|
||
|
||
1. `:find 1`
|
||
2. `:find 2`
|
||
...
|
||
8. `:find 8` (current element)
|
||
9. `:find 9`
|
||
10. `:find 10`
|
||
|
||
Running `:find 11` results in:
|
||
|
||
1. `:find 1`
|
||
2. `:find 2`
|
||
...
|
||
8. `:find 8`
|
||
9. `:find 11` (current element)
|
||
10. None
|
||
|
||
For convenience, |vifm-m_:colder| and |vifm-m_:cnewer| can be used any time
|
||
you're in a menu, not just after |vifm-:copen|. :cnewer will work only if
|
||
current menu can't be saved and you've moved back in menus history before.
|
||
Behaviour of :colder is like this:
|
||
- if current menu can be stashed, behave as |vifm-m_:quit|, :copen, :colder
|
||
sequence (current menu is stashed the same way as described above)
|
||
- if current menu can't be stashed, behave as |vifm-m_:quit|, :copen sequence
|
||
|
||
Viewing history~
|
||
|
||
In order to avoid enumerating menus looking for the matching one,
|
||
|vifm-:chistory| command can be used to get an overview of saved menus,
|
||
maybe search for one and then open it. The command is also available in menu
|
||
mode (|vifm-m_:chistory|).
|
||
|
||
Related topics~
|
||
|
||
Commands: |vifm-:chistory|, |vifm-:copen|
|
||
Menu commands: |vifm-m_:chistory|, |vifm-m_:colder|, |vifm-m_:cnewer|
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-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, relative 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 |vifm-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 searchable. Only
|
||
file names are taken into account (might be changed in future, searching whole
|
||
lines seems quite reasonable).
|
||
|
||
Sorting~
|
||
|
||
Contrary to search sorting by name works on whole visible part of file path.
|
||
|
||
Highlight~
|
||
|
||
Whole file name is highlighted as one entity, even if there are directory
|
||
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 operation, which
|
||
was undone is normal.
|
||
|
||
Operations~
|
||
|
||
All operations that add files are forbidden for custom views. For example,
|
||
moving/copying/putting files into a custom view doesn't work, because it
|
||
doesn't make much sense.
|
||
|
||
On the other hand, operations that use files of a custom view as a source
|
||
(e.g. yanking, copying, moving file from custom view, deletion) and operations
|
||
that modify names are all allowed.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-compare-views*
|
||
|
||
Kinds~
|
||
|
||
|vifm-: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 distinct.
|
||
|
||
Creation~
|
||
|
||
Arguments passed to |vifm-:compare| form seven 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 output;
|
||
- grouppaths - file system ordering is preferred (this also enables
|
||
displaying identically named files as mismatches).
|
||
|
||
Which files to omit:
|
||
- skipempty - ignore empty files.
|
||
|
||
Comparison tweaks:
|
||
- withicase - ignore case when comparing file names/paths;
|
||
- withrcase - respect case when comparing file names/paths.
|
||
|
||
Which results to show (has no effect for single pane comparison):
|
||
- showidentical - toggle showing of identical files;
|
||
- showdifferent - toggle showing of different files;
|
||
- showuniqueleft - toggle showing of unique top/left files;
|
||
- showuniqueright - toggle showing of unique bottom/right files.
|
||
|
||
Each argument can appear multiple times, the rightmost one of the group is
|
||
considered. Arguments alter default behaviour instead of substituting it.
|
||
|
||
When neither `withicase` nor `withrcase` is specified, case depends on the
|
||
running operating system and the file system on which the files are located.
|
||
|
||
Examples~
|
||
|
||
The defaults corresponds to probably the most common use case of comparing
|
||
files in two trees with grouping by paths, so the following are equivalent: >
|
||
|
||
:compare
|
||
:compare bycontents grouppaths
|
||
:compare bycontents listall ofboth grouppaths
|
||
:compare showidentical showdifferent showuniqueleft showuniqueright
|
||
|
||
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 configuration is predefined.
|
||
|
||
The status bar displays only the initial result of the comparison and can be
|
||
out of date.
|
||
|
||
Behaviour~
|
||
|
||
When two views are being compared against each other the following changes to
|
||
the regular behaviour apply:
|
||
- views are scrolled synchronously (as if |vifm-'scrollbind'| was set);
|
||
- views' cursors are synchronized;
|
||
- local filtering is disabled (its results wouldn't be meaningful);
|
||
- |vifm-zd| excludes groups of adjacent identical files, 1zd gives usual
|
||
behaviour;
|
||
- 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 comparison, file
|
||
name filters are obeyed as well so you end up comparing what you see;
|
||
- directories are not taken into account;
|
||
- symbolic links to directories are ignored.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-startup*
|
||
|
||
On startup vifm determines several variables that are used during execution.
|
||
They are determined in the order they appear below.
|
||
|
||
*vifm-$HOME*
|
||
On *nix systems $HOME is normally present and used as is.
|
||
On Windows systems vifm tries to find correct home directory in the following
|
||
order:
|
||
- $HOME variable;
|
||
- $USERPROFILE variable (on Windows only);
|
||
- a combination of $HOMEDRIVE and $HOMEPATH variables (on Windows only).
|
||
|
||
*vifm-$VIFM*
|
||
vifm tries to find correct configuration directory by checking the following
|
||
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-$MYVIFMRC*
|
||
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.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-configure*
|
||
|
||
See |vifm-startup| section above for the explanations on |vifm-$VIFM| and
|
||
|vifm-$MYVIFMRC|.
|
||
|
||
*vifm-vifmrc*
|
||
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 |vifm-$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 configured globally.
|
||
|
||
Use vifmrc to set settings, mappings, filetypes etc. To use multi line commands
|
||
precede each next line with a slash (whitespace before slash is ignored, but all
|
||
spaces at the end of the lines are saved). For example:
|
||
set
|
||
\smartcase
|
||
equals "setsmartcase". When
|
||
set<space here>
|
||
\ smartcase
|
||
equals "set smartcase".
|
||
|
||
*vifm-vifminfo*
|
||
The $VIFM/vifminfo file contains generic state of the application. You can
|
||
control what is stored vifminfo by setting |vifm-'vifminfo'| option. Vifm
|
||
always writes this file on exit unless |vifm-'vifminfo'| option is empty.
|
||
Marks, bookmarks, commands, histories, filetypes, fileviewers and registers
|
||
in the file are merged with vifm configuration.
|
||
|
||
Generally, runtime configuration has bigger priority during merging, but there
|
||
are some exceptions:
|
||
- directory stack stored in the file is not overwritten unless something 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 contain
|
||
exactly one tab of any kind.
|
||
|
||
*vifm-scripts*
|
||
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.
|
||
|
||
*vifm-colors*
|
||
The $VIFM/colors/ and {prefix}/etc/vifm/colors/ directories contain color
|
||
schemes. Available color schemes are searched in that order, so on name
|
||
conflict the one in $VIFM/colors/ wins.
|
||
|
||
Each color scheme should have ".vifm" extension. This wasn't the case before
|
||
and for this reason the following rules apply during lookup:
|
||
- if there is no file with .vifm extension, all regular files are listed;
|
||
- otherwise only files with .vifm extension are listed (with the extension
|
||
being truncated).
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-sessions*
|
||
|
||
Sessions provide a way to have multiple persistent runtime configurations.
|
||
Think of them as second-level |vifm-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 addition to
|
||
it. One can empty |vifm-'vifminfo'| option and rely solely on sessions, but in
|
||
practice one might want to share some state among instances 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 addition 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 sequence
|
||
of command-line commands and are not meant to be sourced via |vifm-:source|
|
||
command.
|
||
|
||
Storage and naming~
|
||
|
||
`$VIFM/sessions/` directory serves as a storage for sessions. Consequently
|
||
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 |vifm-:write| command) and right before switching to another
|
||
session. To avoid saving in those cases use |vifm-:session| command to detach
|
||
(without saving) from a session before proceeding.
|
||
|
||
Related topics~
|
||
|
||
Commands: |vifm-:session|, |vifm-:delsession|
|
||
Options: |vifm-'sessionoptions'|
|
||
Variables: |vifm-v:session|
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-fuse*
|
||
|
||
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 |vifm-:filetype| or
|
||
|vifm-:filextype| commands. These use special macros, which differ from
|
||
macros in commands unrelated to FUSE. Currently three formats are supported:
|
||
|
||
1) FUSE_MOUNT *vifm-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 |vifm-:filetype| command: >
|
||
:filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR
|
||
<
|
||
|
||
2) FUSE_MOUNT2 *vifm-FUSE_MOUNT2*
|
||
This format allows to use specially formatted files to perform mounting and
|
||
is useful for mounting remotes, for example remote file systems over ftp or
|
||
ssh.
|
||
|
||
Format line:
|
||
FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%FOREGROUND]
|
||
|
||
Example |vifm-:filetype| command: >
|
||
:filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR
|
||
<
|
||
Example file content: >
|
||
root@127.0.0.1:/
|
||
<
|
||
|
||
3) FUSE_MOUNT3 *vifm-FUSE_MOUNT3*
|
||
This format is equivalent to |vifm-FUSE_MOUNT|, but omits unmounting. It
|
||
is useful for cases, when unmounting isn't needed, like when using AVFS.
|
||
|
||
Example |vifm-: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 |vifm-'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 addressed in the future.
|
||
|
||
The mounted FUSE file systems will be automatically unmounted in two cases:
|
||
- when vifm quits (with |vifm-ZZ|, |vifm-:q|, etc. or when killed by signal);
|
||
- when you explicitly leave mount point going up to its parent directory
|
||
(with |vifm-h|, |vifm-Enter| on "../" or ":cd ..") and other pane is not
|
||
in the same directory or its child directories.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-view-look*
|
||
|
||
vifm supports displaying of file list view in two different ways:
|
||
- in a table mode, when multiple columns can be set using |vifm-'viewcolumns'|
|
||
option (see |vifm-column-view| for details);
|
||
- in a multicolumn list manner which looks almost like `ls -x` command
|
||
output (see |vifm-ls-view| for details).
|
||
|
||
The look is local for each view and can be chosen by changing value of the
|
||
|vifm-'lsview'| boolean option.
|
||
|
||
Depending on view look some of keys change their meaning to allow more natural
|
||
cursor moving. This concerns mainly |vifm-h|, |vifm-j|, |vifm-k|, |vifm-l| and other
|
||
similar navigation keys.
|
||
|
||
Also some of options can be ignored if they don't affect view displaying in
|
||
selected look. For example value of |vifm-'viewcolumns'| when |vifm-'lsview'| is
|
||
set.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-ls-view*
|
||
|
||
When this view look is enabled by setting |vifm-'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. |vifm-d|) don't work line-wise like
|
||
they do in Vim, since such operations would be uncommon for file manipulation
|
||
tasks. Thus, for example, |vifm-dd| will remove only current file.
|
||
|
||
By default the view is filled by lines, |vifm-'lsoptions'| can be used to get
|
||
filling by columns.
|
||
|
||
Note that tree-view and compare view inhibit ls-like view.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-column-view*
|
||
|
||
View columns are described by a comma-separated list of column descriptions,
|
||
each of which has the following format >
|
||
[ '-' | '*' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type | literal '}' '.'{0,3}
|
||
where fw stands for full width, tw stands for text width, bar is logical or,
|
||
square brackets denote optional parts and curly braces define range of
|
||
repetitions for a symbol that precedes them.
|
||
|
||
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. Two types are supported:
|
||
|
||
- 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 column,
|
||
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 rendering.
|
||
|
||
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 contents~
|
||
|
||
This is usually a sorting key surrounded with curly braces, e.g. >
|
||
{name},{ext},{mtime}
|
||
<
|
||
{name} and {iname} types are the same and present both for consistency with
|
||
|vifm-'sort'| option.
|
||
|
||
Following types 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 views will be displayed almost as
|
||
if |vifm-'viewcolumns'| is empty, but adding ellipsis for long file names: >
|
||
set viewcolumns=-{name}..,6{}.
|
||
|
||
The last kind of column value is a string literal. The literal is used as a
|
||
column value for every row. The syntax is `{#literal}`, for example: >
|
||
3{#},{#|},{# | }
|
||
This can be used to draw column separators. Mind that for convenience
|
||
literals have different defaults: truncation and automatically determined
|
||
absolute size, which is what you usually want for them. Example: >
|
||
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.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-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 |vifm-:colorscheme| command, but of different forms:
|
||
- :colorscheme color_scheme_name - for the primary color scheme
|
||
- :colorscheme color_scheme_name directory - for local color schemes
|
||
|
||
Look of different parts of the TUI (Text User Interface) is determined in
|
||
this way:
|
||
- Border, TabLine, TabLineSel, TopLineSel, TopLine, CmdLine, ErrorMsg,
|
||
StatusLine, JobLine, SuggestBox and WildMenu are always determined by
|
||
the primary color scheme
|
||
- CurrLine, Selected, Directory, Link, BrokenLink, Socket, Device,
|
||
Executable, Fifo, CmpMismatch, CmpUnmatched, CmpBlank, Win, AuxWin and
|
||
OtherWin are determined by primary color scheme and a set of local color
|
||
schemes, which can be empty
|
||
|
||
There might be a set of local color schemes because they are structured
|
||
hierarchically according to file system structure. For example, having the
|
||
following piece of file system: >
|
||
|
||
~
|
||
`-- bin
|
||
|
|
||
`-- my
|
||
<
|
||
Two color schemes: >
|
||
|
||
# ~/.config/vifm/colors/for_bin.vifm
|
||
highlight Win cterm=none ctermfg=white ctermbg=red
|
||
highlight CurrLine cterm=none ctermfg=red ctermbg=black
|
||
|
||
# ~/.config/vifm/colors/for_bin_my.vifm
|
||
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
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-trash*
|
||
|
||
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
|
||
|vifm-'trash'| option, and exact path to the trash can be set with
|
||
|vifm-'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 |vifm-'trashdir'| to
|
||
"~/.local/share/Trash" to use a "standard" trash directory.
|
||
|
||
There are two scenarios of using trash in vifm:
|
||
|
||
1. As a place for storing files that were cut by |vifm-d| and may be
|
||
inserted to some other place in file system.
|
||
2. As a storage of files, that are deleted but not purged yet.
|
||
|
||
The first scenario uses deletion (|vifm-d|) operations to put files to
|
||
trash and put (|vifm-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 (|vifm-d|) operations for moving files
|
||
to trash directory and |vifm-:empty| command-line command to purge all
|
||
previously deleted files.
|
||
|
||
Deletion and put operations depend on registers, which can point to files in
|
||
trash directory. Normally, there are no nonexistent files in registers, but
|
||
vifm doesn't keep track of modifications under trash directory, so one
|
||
shouldn't expect value of registers to be absolutely correct if trash
|
||
directory was modified not by operation that are meant for it. But this
|
||
won't lead to any issues with operations, since they ignore nonexistent
|
||
files.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-clientserver*
|
||
|
||
vifm supports remote execution of command-line mode commands, remote changing of
|
||
directories and expression evaluation. This is possible using |vifm---remote|
|
||
and |vifm---remote-expr| command-line arguments.
|
||
|
||
To execute a command remotely combine --remote argument with |vifm--c| or
|
||
|vifm--+c|. For example: >
|
||
vifm --remote -c 'cd /'
|
||
vifm --remote '+cd /'
|
||
<
|
||
To change directory not using command-line mode commands one can specify 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
|
||
|vifm---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 |vifm---server-list|
|
||
option. Name of the current one is available via v:servername.
|
||
|
||
*vifm-v:servername*
|
||
v:servername *vifm-servername-variable*
|
||
server name of the running vifm instance. Empty if client-server feature
|
||
is disabled.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-ext-rename*
|
||
|
||
When an editor is run to edit list of file names, contents of the temporary file
|
||
has the following format:
|
||
1. Order of lines correspond to the order of files in a view.
|
||
2. Lines that start with a "#" are comments and are ignored.
|
||
3. Single backslash at the beginning of a line is ignored, so that a file
|
||
starting with a backslash will appear like "\#name".
|
||
|
||
If an operation was rejected due to issues with file names, next time you'll see
|
||
the following in this order:
|
||
1. Last error (in comments).
|
||
2. Original file names (in comments).
|
||
3. Failed list of new names.
|
||
|
||
Mind that |vifm-plugin| will extract list of original names and show them in a
|
||
vertical split.
|
||
|
||
You can cancel renaming by removing all non-comments from the buffer. This
|
||
also erases information about previous edits.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-mouse-using*
|
||
|
||
Note: <ScrollWheelDown> is not available on 32-bit *nix systems, because
|
||
ncurses doesn't support it there (limitation of implementation).
|
||
|
||
Note: these are not available in mappings at the momemnt.
|
||
|
||
*vifm-mouse-overview*
|
||
Normal Mode:
|
||
event position change action ~
|
||
cursor window ~
|
||
<LeftMouse> yes yes <cr> if cursor wasn't moved
|
||
<LeftRelease> no yes
|
||
<MiddleMouse> no yes <c-e>
|
||
<MiddleRelease> no yes
|
||
<RightMouse> yes yes |vifm-:file|
|
||
<RightRelease> no yes
|
||
<ScrollWheelUp> no yes <c-y> or |vifm-:tabprevious|
|
||
<ScrollWheelDown> no yes <c-e> or |vifm-:tabnext|
|
||
|
||
Clicking on or scrolling over an inactive pane (including its title), makes it
|
||
active and does nothing else. Tabs are scrolled when mouse hovers over them.
|
||
|
||
Clicking on the left miller column goes to parent directory and clicking the
|
||
right one opens current entry.
|
||
|
||
Visual Mode:
|
||
event position selection action ~
|
||
cursor ~
|
||
<LeftMouse> yes update <cr> if cursor wasn't moved
|
||
<LeftRelease> no
|
||
<MiddleMouse> no update <c-e>
|
||
<MiddleRelease> no
|
||
<RightMouse> no
|
||
<RightRelease> no
|
||
<ScrollWheelUp> no update <c-y>
|
||
<ScrollWheelDown> no update <c-e>
|
||
|
||
Command-line Mode:
|
||
event position action ~
|
||
cursor ~
|
||
<LeftMouse> yes
|
||
<LeftRelease> no
|
||
<MiddleMouse> no <c-n>
|
||
<MiddleRelease> no
|
||
<RightMouse> no
|
||
<RightRelease> no
|
||
<ScrollWheelUp> no <c-p>
|
||
<ScrollWheelDown> no <c-n>
|
||
|
||
Menu Mode:
|
||
event position action ~
|
||
cursor ~
|
||
<LeftMouse> yes <cr> if cursor wasn't moved
|
||
<LeftRelease> no
|
||
<MiddleMouse> no <c-e>
|
||
<MiddleRelease> no
|
||
<RightMouse> no
|
||
<RightRelease> no
|
||
<ScrollWheelUp> no <c-y>
|
||
<ScrollWheelDown> no <c-e>
|
||
|
||
View Mode:
|
||
event action ~
|
||
~
|
||
<ScrollWheelUp> k
|
||
<ScrollWheelDown> j
|
||
|
||
Clicking on or scrolling over an inactive pane (including its title), detaches
|
||
view mode if it wasn't activated for exploring a file.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-plugin*
|
||
|
||
See |vifm-plugin.txt|.
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-reserved*
|
||
|
||
The following command names are reserved and shouldn't be used for user
|
||
commands.
|
||
|
||
g[lobal]
|
||
v[global]
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-env-vars*
|
||
|
||
|vifm-$VIFM|
|
||
Points to main configuration directory (usually ~/.config/vifm/).
|
||
|
||
|vifm-$MYVIFMRC|
|
||
Points to main configuration file (usually ~/.config/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 Windows:
|
||
vifmrc in the same directory as vifm.exe has higher priority than
|
||
$VIFM/vifmrc).
|
||
|
||
See |vifm-startup| section above for more details.
|
||
|
||
*vifm-$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).
|
||
|
||
--------------------------------------------------------------------------------
|
||
*vifm-see-also*
|
||
|
||
Vim plugin documentation: |vifm-plugin.txt|
|
||
|
||
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
|
||
|
||
--------------------------------------------------------------------------------
|
||
vim:tw=78:fo=tcq2:isk=!-~,^*,^\|,^\":ts=8:sw=4:ft=help:norl:
|