diff options
Diffstat (limited to '.vifm')
-rw-r--r-- | .vifm/colors/Default | 52 | ||||
-rw-r--r-- | .vifm/colors/alycolors | 60 | ||||
-rw-r--r-- | .vifm/colors/dmilith-root | 21 | ||||
-rw-r--r-- | .vifm/colors/dmilith-user | 21 | ||||
-rw-r--r-- | .vifm/colors/istib-solarized-dark | 25 | ||||
-rw-r--r-- | .vifm/colors/juef-zenburn | 21 | ||||
-rw-r--r-- | .vifm/colors/reicheltd-light | 26 | ||||
-rw-r--r-- | .vifm/vifm-help.txt | 3099 | ||||
-rw-r--r-- | .vifm/vifmrc | 314 |
9 files changed, 3639 insertions, 0 deletions
diff --git a/.vifm/colors/Default b/.vifm/colors/Default new file mode 100644 index 0000000..c3c72dd --- /dev/null +++ b/.vifm/colors/Default @@ -0,0 +1,52 @@ +" You can edit this file by hand. +" The " character at the beginning of a line comments out the line. +" Blank lines are ignored. + +" The Default color scheme is used for any directory that does not have +" a specified scheme and for parts of user interface like menus. A +" color scheme set for a base directory will also +" be used for the sub directories. + +" The standard ncurses colors are: +" Default = -1 = None, can be used for transparency or default color +" Black = 0 +" Red = 1 +" Green = 2 +" Yellow = 3 +" Blue = 4 +" Magenta = 5 +" Cyan = 6 +" White = 7 + +" Available style values (some of them can be combined): +" bold +" underline +" reverse or inverse +" standout +" none + +" Vifm supports 256 colors you can use color numbers 0-255 +" (requires properly set up terminal: set your TERM environment variable +" (directly or using resources) to some color terminal name (e.g. +" xterm-256color) from /usr/lib/terminfo/; you can check current number +" of colors in your terminal with tput colors command) + +" highlight group cterm=style ctermfg=foreground_color ctermbg=background_color + +highlight Win cterm=none ctermfg=white ctermbg=black +highlight Directory cterm=bold ctermfg=cyan ctermbg=default +highlight Link cterm=bold ctermfg=yellow ctermbg=default +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight Socket cterm=bold ctermfg=magenta ctermbg=default +highlight Device cterm=bold ctermfg=red ctermbg=default +highlight Fifo cterm=bold ctermfg=cyan ctermbg=default +highlight Executable cterm=bold ctermfg=green ctermbg=default +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight CurrLine cterm=bold ctermfg=default ctermbg=blue +highlight TopLine cterm=none ctermfg=black ctermbg=white +highlight TopLineSel cterm=bold ctermfg=black ctermbg=default +highlight StatusLine cterm=bold ctermfg=black ctermbg=white +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black +highlight Border cterm=none ctermfg=black ctermbg=white diff --git a/.vifm/colors/alycolors b/.vifm/colors/alycolors new file mode 100644 index 0000000..ddaacd6 --- /dev/null +++ b/.vifm/colors/alycolors @@ -0,0 +1,60 @@ +"" +"" vifm colorscheme +"" based on 'Default' & 'istib-solarized-dark' & 'juef-zenburn' +"" +"" Weitian LI <liweitianux@gmail.com> +"" 2014/05/12 +"" + + +"" The standard ncurses colors are: +" Default = -1 = None (can be used for transparency or default color) +" Black = 0 +" Red = 1 +" Green = 2 +" Yellow = 3 +" Blue = 4 +" Magenta = 5 +" Cyan = 6 +" White = 7 + +"" Available style values (some of them can be combined): +" bold +" underline +" reverse/inverse +" standout +" none + +"" Vifm supports 256 colors you can use color numbers 0-255 +" (requires properly set up terminal: set your TERM environment variable +" (directly or using resources) to some color terminal name (e.g. +" xterm-256color) from /usr/lib/terminfo/; you can check current number +" of colors in your terminal with tput colors command) + +"" Syntax: +" highlight group cterm=style ctermfg=fg_color ctermbg=bg_color + + +highlight Win cterm=none ctermfg=default ctermbg=none + +highlight TopLine cterm=none ctermfg=yellow ctermbg=none +highlight TopLineSel cterm=bold ctermfg=magenta ctermbg=none +highlight StatusLine cterm=bold ctermfg=yellow ctermbg=none +highlight Border cterm=none ctermfg=default ctermbg=none + +highlight Selected cterm=bold ctermfg=magenta ctermbg=black +highlight CurrLine cterm=bold ctermfg=yellow ctermbg=blue + +highlight WildMenu cterm=bold,reverse ctermfg=yellow ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=bold ctermfg=magenta ctermbg=black + +highlight Directory cterm=bold ctermfg=blue ctermbg=default +highlight Executable cterm=bold ctermfg=green ctermbg=default +highlight Link cterm=bold ctermfg=cyan ctermbg=default +highlight BrokenLink cterm=bold ctermfg=yellow ctermbg=red +highlight Device cterm=bold ctermfg=yellow ctermbg=default +highlight Socket cterm=bold ctermfg=magenta ctermbg=default +highlight Fifo cterm=none ctermfg=red ctermbg=default + +" vim: set ts=8 sw=4 tw=78 fenc=utf-8 ft=vifm: " diff --git a/.vifm/colors/dmilith-root b/.vifm/colors/dmilith-root new file mode 100644 index 0000000..393d02a --- /dev/null +++ b/.vifm/colors/dmilith-root @@ -0,0 +1,21 @@ +" vim: filetype=vifm : + +" Author: Daniel Dettlaff (a.k.a. dmilith) + +highlight Win cterm=none ctermfg=white ctermbg=black +highlight Directory cterm=bold ctermfg=cyan ctermbg=black +highlight Link cterm=bold ctermfg=yellow ctermbg=black +highlight BrokenLink cterm=bold ctermfg=red ctermbg=none +highlight Socket cterm=bold ctermfg=magenta ctermbg=black +highlight Device cterm=bold ctermfg=red ctermbg=black +highlight Fifo cterm=bold ctermfg=cyan ctermbg=none +highlight Executable cterm=bold ctermfg=green ctermbg=black +highlight Selected cterm=bold ctermfg=magenta ctermbg=black +highlight CurrLine cterm=bold ctermfg=white ctermbg=30 +highlight TopLine cterm=bold ctermfg=white ctermbg=red +highlight TopLineSel cterm=bold ctermfg=yellow ctermbg=red +highlight StatusLine cterm=bold ctermfg=white ctermbg=red +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black +highlight Border cterm=none ctermfg=black ctermbg=red diff --git a/.vifm/colors/dmilith-user b/.vifm/colors/dmilith-user new file mode 100644 index 0000000..06473fc --- /dev/null +++ b/.vifm/colors/dmilith-user @@ -0,0 +1,21 @@ +" vim: filetype=vifm : + +" Author: Daniel Dettlaff (a.k.a. dmilith) + +highlight Win cterm=none ctermfg=white ctermbg=black +highlight Directory cterm=bold ctermfg=cyan ctermbg=black +highlight Link cterm=bold ctermfg=yellow ctermbg=black +highlight BrokenLink cterm=bold ctermfg=red ctermbg=none +highlight Socket cterm=bold ctermfg=magenta ctermbg=black +highlight Device cterm=bold ctermfg=red ctermbg=black +highlight Fifo cterm=bold ctermfg=cyan ctermbg=none +highlight Executable cterm=bold ctermfg=green ctermbg=black +highlight Selected cterm=bold ctermfg=magenta ctermbg=black +highlight CurrLine cterm=bold ctermfg=white ctermbg=30 +highlight TopLine cterm=bold ctermfg=white ctermbg=blue +highlight TopLineSel cterm=bold ctermfg=yellow ctermbg=blue +highlight StatusLine cterm=bold ctermfg=white ctermbg=blue +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black +highlight Border cterm=none ctermfg=black ctermbg=blue diff --git a/.vifm/colors/istib-solarized-dark b/.vifm/colors/istib-solarized-dark new file mode 100644 index 0000000..b81415f --- /dev/null +++ b/.vifm/colors/istib-solarized-dark @@ -0,0 +1,25 @@ +" vim: filetype=vifm : + +" Author: Stéphane (a.k.a. istib) + +highlight Win cterm=none ctermfg=default ctermbg=none + +highlight TopLine cterm=none ctermfg=blue ctermbg=none +highlight TopLineSel cterm=none ctermfg=blue ctermbg=none +highlight StatusLine cterm=none ctermfg=blue ctermbg=none +highlight Border cterm=none ctermfg=blue ctermbg=none + +highlight Selected cterm=bold ctermfg=magenta ctermbg=default +highlight CurrLine cterm=bold ctermfg=default ctermbg=blue + +highlight WildMenu cterm=underline,reverse ctermfg=white ctermbg=black +highlight CmdLine cterm=none ctermfg=white ctermbg=black +highlight ErrorMsg cterm=none ctermfg=red ctermbg=black + +highlight Directory cterm=none ctermfg=cyan ctermbg=default +highlight Link cterm=none ctermfg=yellow ctermbg=default +highlight BrokenLink cterm=none ctermfg=red ctermbg=default +highlight Socket cterm=none ctermfg=magenta ctermbg=default +highlight Device cterm=none ctermfg=red ctermbg=default +highlight Fifo cterm=none ctermfg=cyan ctermbg=default +highlight Executable cterm=none ctermfg=green ctermbg=default diff --git a/.vifm/colors/juef-zenburn b/.vifm/colors/juef-zenburn new file mode 100644 index 0000000..d777c10 --- /dev/null +++ b/.vifm/colors/juef-zenburn @@ -0,0 +1,21 @@ +" vim: filetype=vifm : + +" Author: Svyatoslav Mishyn (a.k.a. juef) + +highlight Win cterm=none ctermfg=188 ctermbg=237 +highlight Directory cterm=none ctermfg=108 ctermbg=default +highlight CmdLine cterm=none ctermfg=188 ctermbg=237 +highlight ErrorMsg cterm=bold ctermfg=115 ctermbg=default +highlight TopLine cterm=none ctermfg=174 ctermbg=235 +highlight TopLineSel cterm=bold ctermfg=174 ctermbg=235 +highlight StatusLine cterm=bold ctermfg=144 ctermbg=235 +highlight Executable cterm=none ctermfg=172 ctermbg=default +highlight Selected cterm=none ctermfg=116 ctermbg=238 +highlight Border cterm=none ctermfg=default ctermbg=235 +highlight CurrLine cterm=none ctermfg=223 ctermbg=235 +highlight WildMenu cterm=bold,reverse ctermfg=144 ctermbg=235 +highlight Link cterm=none ctermfg=142 ctermbg=default +highlight BrokenLink cterm=none ctermfg=181 ctermbg=default +highlight Device cterm=none ctermfg=174 ctermbg=default +highlight Fifo cterm=none ctermfg=109 ctermbg=default +highlight Socket cterm=none ctermfg=magenta ctermbg=default diff --git a/.vifm/colors/reicheltd-light b/.vifm/colors/reicheltd-light new file mode 100644 index 0000000..6d633ff --- /dev/null +++ b/.vifm/colors/reicheltd-light @@ -0,0 +1,26 @@ +" vim: filetype=vifm : + +" Author: Daniel R. (a.k.a. reicheltd) + +highlight Win cterm=none ctermfg=236 ctermbg=255 +highlight Directory cterm=bold ctermfg=21 ctermbg=255 +highlight Link cterm=bold ctermfg=39 ctermbg=default + +highlight BrokenLink cterm=bold ctermfg=red ctermbg=default +highlight Socket cterm=bold ctermfg=magenta ctermbg=default +highlight Device cterm=bold ctermfg=blue ctermbg=default + +highlight Fifo cterm=bold ctermfg=cyan ctermbg=default +highlight Executable cterm=bold ctermfg=red ctermbg=default +highlight Selected cterm=bold ctermfg=200 ctermbg=default + +highlight CurrLine cterm=bold ctermfg=255 ctermbg=27 +highlight TopLine cterm=none ctermfg=236 ctermbg=255 +highlight TopLineSel cterm=bold ctermfg=236 ctermbg=255 + +highlight StatusLine cterm=bold ctermfg=236 ctermbg=255 +highlight WildMenu cterm=underline,reverse ctermfg=236 ctermbg=255 +highlight CmdLine cterm=none ctermfg=236 ctermbg=255 + +highlight ErrorMsg cterm=none ctermfg=red ctermbg=236 +highlight Border cterm=none ctermfg=236 ctermbg=255 diff --git a/.vifm/vifm-help.txt b/.vifm/vifm-help.txt new file mode 100644 index 0000000..61b50aa --- /dev/null +++ b/.vifm/vifm-help.txt @@ -0,0 +1,3099 @@ +vifm(1) Vifm vifm(1) + + + +NAME + vifm - vi file manager + +SYNOPSIS + vifm [OPTION]... + vifm [OPTION]... LWIN_DIR + vifm [OPTION]... LWIN_DIR RWIN_DIR + +DESCRIPTION + Vifm is a ncurses based file manager with vi like keybindings. If you + use vi, vifm gives you complete keyboard control over your files with‐ + out having to learn a new set of commands. + +OPTIONS + The vifm executable will start vifm in the current directory unless it + is given a different directory on the command line. + + <lwinpath> + Starts Vifm in the specified path. + + <lwinpath> <rwinpath> + Starts Vifm in the specified paths. + + Specifying two directories triggers split view even when vifm was in + single-view mode on finishing previous session. To suppress this be‐ + haviour :only command can be put in the vifmrc file. + + When only one path argument is found on command-line, the left/top pane + is automatically set as the current view. + + Paths to files are also allowed in case you want vifm to start with + some archive opened. If you want to select file, prepend its path with + --select. + + -f only used from the vifm.vim script. The selected files are + written to $VIFM/vimfiles and vifm exits. + + --logging + Log some errors to $VIFM/log. Also /var/log/vifm-startup-log + (on *nix) and startup-log in the directory of executable (on + Windows) is used to log startup process (when configuration + directory isn't determined). + + --remote + Sends the rest of command line to the active vifm server (one of + already running instances if any). When there is no server, + quits silently. There is no limit on how many arguments can be + processed. One can combine --remote with -c <command> or +<com‐ + mand> to execute command in already running instance of vifm. + See also "Client-Server" section below. + + -c <command> or +<command> + Run command-line mode <command> on startup. Commands in such + arguments are executed in the order they appear in command line. + Commands with spaces or special symbols must be enclosed in dou‐ + ble or single quotes or all special symbols should be escaped + (the exact syntax strongly depends on shell). + + --help, -h + Show an overview of the commandline options. + + --version, -v + Show version information and quit. + + --no-configs + Don't read vifmrc and vifminfo. + + + See Startup section below for the explanations on $VIFM. + +General keys + Ctrl-C or Escape + cancel most operations. + + Ctrl-C or Escape + clear all selected files. + + Ctrl-L clear and redraw the screen. + +Basic Movement + The basic vi key bindings are used to move through the files and popup + windows. + + k, gk, or Ctrl-P + moves cursor up one line. + + j, gj or Ctrl-N + moves cursor down one line. + + h when 'lsview' is off moves up one directory, otherwise moves + left one file. + + l when 'lsview' is off moves into a directory or launches a file, + otherwise moves left one file. + + gg move to the top of the file list. + + gh moves up one directory. + + gl or Enter + moves into a directory or launches a file. + + G move to the bottom of the file list. + + H move to the first file in the window. + + M move to the file in the middle of the window. + + L move to the last file in the window. + + Ctrl-F or Page Down + move forward one page. + + Ctrl-B or Page Up + move back one page. + + Ctrl-D jump back one half page. + + Ctrl-U jump forward one half page. + + n% move to the file that is n percent from the top of the list (for + example 25%). + + 0 or ^ move cursor to the first column. See 'lsview' option descrip‐ + tion. + + $ move cursor to the last column. See 'lsview' option descrip‐ + tion. + + Space Bar + toggles between the two file lists. + +Movement with Count + Most movement commands also accept a count, 12j would move down 12 + files. + + [count]% + move to percent of the file list. + + [count]j + move down count files. + + [count]k + move up count files. + + [count]G or [count]gg + move to list position count. + +Scrolling panes + zt redraw pane with file in top of list. + + zz redraw pane with file in center of list. + + zb redraw pane with file in bottom of list. + + Ctrl-E scroll pane one line down. + + Ctrl-Y scroll pane one line up. + +Pane manipulation + Second character can be entered with or without Control key. + + Ctrl-W H + move the pane to the far left. + + Ctrl-W J + move the pane to the very bottom. + + Ctrl-W K + move the pane to the very top. + + Ctrl-W L + move the pane to the far right. + + Ctrl-W b + switch to bottom-right window. + + Ctrl-W h + switch to the left pane. + + Ctrl-W j + switch to the pane below. + + Ctrl-W k + switch to the pane above. + + Ctrl-W l + switch to the right pane. + + Ctrl-W o + shortcut for :only + + Ctrl-W p + switch to previous window. + + Ctrl-W s + shortcut for :split + + Ctrl-W t + switch to top-left window. + + Ctrl-W v + shortcut for :vsplit + + Ctrl-W w + switch to other pane. + + Ctrl-W x + exchange panes. + + [count1]Ctrl-W[count2]+ + increase size of the view by count1*count2. + + [count1]Ctrl-W[count2]- + decrease size of the view by count1*count2.. + + [count1]Ctrl-W[count2]< + increase size of the view by count1*count2.. + + [count1]Ctrl-W[count2]> + decrease size of the view by count1*count2.. + + Ctrl-W | + maximize current view. + + Ctrl-W _ + maximize current view. + + Ctrl-W = + make size of two views equal. + +Marks + Marks are set the same way as they are in vi. + + You can use this characters for marks [a-z][A-Z][0-9]. + + m[a-z][A-Z][0-9] + to set a mark for the current file. + + '[a-z][A-Z][0-9] + moves to the file set for the mark. + +Searching + /regular expression pattern[Return] + will highlight all files matching the pattern and go to the next + match. + + ?regular expression pattern[Return] + will highlight all files matching the pattern and go to the pre‐ + vious match. + + [count]n + find the next match of / or ?. + + [count]N + find the previous match of / or ?. + + If 'hlsearch' option is set, hitting n/N to perform search and go to + the first matching item resets current selection in normal mode. It is + not the case if search was already performed on files in the directory, + thus selection is not reset after clearing selection with escape key + and hitting n/N key again. + + [count]f[character] + search forward for file with [character] as first character in + name. Search wraps around the end of the list. + + [count]F[character] + search backward for file with [character] as first character in + name. Search wraps around the end of the list. + + [count]; + find the next match of f or F. + + [count], + find the previous match of f or F. + + Note: f, F, ; and , wrap around list beginning and end when they are + used alone and they don't wrap when they are used as selectors. + +File Filters + There are three basic file filters: + + - dot files filter (excluding "." and ".." special directories, which + appearance is controlled by the 'dotdirs' option) + + - manual filter for file names + + - automatic filter for file names + + - local filter for file names (see description of the "=" normal mode + command) + + Performing operations on manual filter for file names automatically + does the same on automatic one. The file name filter is separated + mainly for convenience purpose and to get more deterministic behaviour. + + The basic vim folding key bindings are used for filtering files. + + Each file list has its own copy of each filter. + + Filtered files are not checked in / search or :commands. + + Files and directories are filtered separately. For this a slash is + appended to a directory name before testing whether it matches the fil‐ + ter. Examples: + + " filter directories which names end with '.files' + :filter /^.*\.files\/$/ + + " filter files which names end with '.d' + :filter /^.*\.d$/ + + " filter files and directories which names end with '.o' + :filter /^.*\.o\/?$/ + + zo Show all of the dot files. + + zf Filter all of the selected files. + + za Toggle the showing and hiding of dot files. + + zm Filter all of the dot files. + + zO Show the files filtered out by filename filter. + + zM Filter the files matching the filename filter. + + zR Remove all filters. + + =regular expression pattern[Return] + filter out files that don't match regular expression. This kind + of filter is automatically reset when directory is changed. + +Other Normal Mode Keys + [count]: + enter command line mode. Count will add range. + + q: open external editor to prompt for command-line command. See + "Command line editing" section for details. + + q/ open external editor to prompt for search pattern to be searched + in forward direction. See "Command line editing" section for + details. + + q? open external editor to prompt for search pattern to be searched + in backward direction. See "Command line editing" section for + details. + + q= open external editor to prompt for filter pattern. See "Command + line editing" section for details. Unlike other q{x} commands + this one doesn't work in Visual mode. + + [count]!! and [count]!<selector> + enter command line mode with entered ! command. Count will mod‐ + ify range. + + Ctrl-O go backward through history. + + Ctrl-I if 'cpoptions' contains "t" flag, <tab> and <c-i> switch active + pane just like <space> does, otherwise it goes forward through + directory history of the current view. + + Ctrl-G creates a window showing detailed information about the current + file. + + Shift-Tab + enters view mode (works only after activating view pane with + :view command). + + ga calculate directory size. + + gA like ga, but force update. + + gf find link destination (like l with 'followlinks' off, but also + finds directories). + + gr only for MS-Windows + same as l key, but tries to run program with administrative + privileges. + + gv go to visual mode restoring last selection. + + gs restore last t selection, like gv for visual mode selection. + + gu<selector> + make names of selected files lowercase. + + [count]guu and [count]gugu + make names of [count] files starting from the current one lower‐ + case. Without [count] only current file is affected. + + gU<selector> + make names of selected files uppercase. + + [count]gUU and [count]gUgU + make names of [count] files starting from the current one upper‐ + case. Without [count] only current file is affected. + + e explore file in the current pane. + + i opens file with associated program even if it's an executable. + + cw rename a file or files. + + cW change only name of file (without extension). + + cl change link target. + + co only for *nix + change file owner. + + cg only for *nix + change file group. + + cp change file attributes (permission on *nix and properties on + Windows). + + [count]C + clone file [count] times. + + [count]dd or d[count]selector + moves the selected files to trash directory (if 'trash' option + is set, otherwise delete). See "Trash directory" section below. + + [count]DD or D[count]selector + removes the selected files. + + Y, [count]yy or y[count]selector + yanks the selected files. + + Y same as yy. + + p will copy the yanked files to the current directory or move the + files to the current directory if they were deleted with dd or + :d[elete] or if the files were yanked from trash directory. See + "Trash directory" section below. + + P moves the last yanked files. The advantage of using P instead + of d followed by p is that P moves files only once. This isn't + important in case you're moving files in the same file system + where your home directory is, but using P to move files on some + other file system (or file systems, in case you want to move + files from fs1 to fs2 and your home is on fs3) can save your + time. + + al puts symbolic links with absolute paths. + + rl puts symbolic links with relative paths. + + t select or unselect (tag) the current file. + + u undo last change. + + Ctrl-R redo last change. + + v enter visual mode. + + V enter visual mode. + + [count]Ctrl-A + increment first number in file name by count (1 by default). + + [count]Ctrl-X + decrement first number in file name by count (1 by default). + + ZQ same as :quit! + + ZZ same as :quit + + . repeat last command line command (not normal mode command) of + this session (does nothing right after startup or :restart com‐ + mand). The command doesn't depend on command-line history and + can be used with completely disabled history. + + ( goto previous group. Groups are defined by primary sorting key. + For name and iname members of each group have same first letter, + for all other sorting keys vifm uses size, uid, ... + + ) goto next group. See ( key description above. + +Using Count + You can use count with commands like yy. + + [count]yy + yank count files starting from current cursor position downward. + + Or you can use count with motions passed to y, d or D. + + d[count]j + delete (count + 1) files starting from current cursor position + upward. + +Registers + vifm supports multiple registers for temporary storing list of yanked + or deleted files. + + Registers should be specified with hitting double quite key followed by + a register name. Count is specified after register name. By default + commands use unnamed register, which has double quote as its name. + + Though all commands accept registers, most of commands ignores them + (for example H or Ctrl-U). Other commands can fill register or append + new files to it. + + Presently vifm supports ", _, a-z and A-Z characters as register names. + + As mentioned above " is unnamed register and has special meaning of the + default register. Every time when you use named registers (a-z and A- + Z) unnamed register is updated to contain same list of files as the + last used register. + + _ is black hole register. It can be used for writing, but its list is + always empty. + + Registers with names from a to z and from A to Z are named ones. Low‐ + ercase registers are cleared before adding new files, while uppercase + aren't and should be used to append new files to the existing file list + of appropriate lowercase register (A for a, B for b, ...). + + Registers can be changed on :empty command if they contain files under + trash directory (see "Trash directory" section below). + + Registers do not contain one file more than once. + + Example: + + "a2yy + + will put names of two files to register a (and to the unnamed regis‐ + ter), + + "Ad + + will remove one file and append its name to register a (and to the + unnamed register), + + p or "ap or "Ap + + will insert previously yanked and deleted files into current directory. + +Selectors + y, d, D, !, gu and gU commands accept selectors. You can combine them + with any of selectors below to quickly remove or yank several files. + + Most of selectors are like vi motions: j, k, gg, G, H, L, M, %, f, F, + ;, comma, ', ^, 0 and $. But there are some additional ones. + + a all files in current view. + + s selected files. + + S all files except selected. + + Examples: + dj - delete file under cursor and one below. + d2j - delete file under cursor and two below. + y6gg - yank all files from cursor position to 6th file in the list. + + When you pass a count to whole command and its selector they are multi‐ + plied. So: + 2d2j - delete file under cursor and four below. + 2dj - delete file under cursor and two below. + 2y6gg - yank all files from cursor position to 12th file in the list. + +Visual Mode + In visual mode work almost all normal mode keys, but they do not accept + selectors. + + Enter save selection and go back to normal mode. + + gv restore previous visual selection. + + v leave visual mode. + + V leave visual mode. + + : enter command line mode. When you leave it selection will be + cleared. + + o switch active selection bound. + + O switch active selection bound. + + gu, u make names of selected files lowercase. + + gU, U make names of selected files uppercase. + +View Mode + This mode tries to imitate the less program. List of builtin shortcuts + can be found below. Shortcuts can be customized using :qmap, :qnoremap + and :qunmap command-line commands. + + Shift-Tab, Tab, q, Q, ZZ + go back to normal mode. + + [count]e, [count]Ctrl-E, [count]j, [count]Ctrl-N, [count]Enter + forward one line (or [count] lines). + + [count]y, [count]Ctrl-Y, [count]k, [count]Ctrl-K, [count]Ctrl-P + backward one line (or [count] lines). + + [count]f, [count]Ctrl-F, [count]Ctrl-V, [count]Space Bar + forward one window (or [count] lines). + + [count]b, [count]Ctrl-B, [count]Alt-V + backward one window (or [count] lines). + + [count]z + forward one window (and set window to [count]). + + [count]w + backward one window (and set window to [count]). + + [count]Alt-Space + forward one window, but don't stop at end-of-file. + + [count]d, [count]Ctrl-D + forward one half-window (and set half-window to [count]). + + [count]u, [count]Ctrl-U + backward one half-window (and set half-window to [count]). + + r, Ctrl-R, Ctrl-L + repaint screen. + + R reload view preserving scroll position. + + [count]/pattern + search forward for ([count]‐th) matching line. + + [count]?pattern + search backward for ([count]‐th) matching line. + + [count]n + repeat previous search (for [count]‐th occurrence). + + [count]N + repeat previous search in reverse direction. + + [count]g, [count]<, [count]Alt-< + go to first line in file (or line [count]). + + [count]G, [count]>, [count]Alt-> + go to last line in file (or line [count]). + + [count]p, [count]% + go to beginning of file (or N percent into file). + + v edit the current file with vim. + + + Ctrl-W H + move the pane to the far left. + + Ctrl-W J + move the pane to the very bottom. + + Ctrl-W K + move the pane to the very top. + + Ctrl-W L + move the pane to the far right. + + + Ctrl-W h + switch to left pane. + + Ctrl-W j + switch to pane below. + + Ctrl-W k + switch to pane above. + + Ctrl-W l + switch to right pane. + + + Ctrl-W b + switch to bottom-right window. + + Ctrl-W t + switch to top-left window. + + + Ctrl-W p + switch to previous window. + + Ctrl-W w + switch to other pane. + + + Ctrl-W o + leave only one pane. + + Ctrl-W s + split window horizontally. + + Ctrl-W v + split window vertically. + + + Ctrl-W x + exchange panes. + + + Ctrl-W + + increase size of the view. + + Ctrl-W - + decrease size of the view. + + Ctrl-W < + increase size of the view. + + Ctrl-W > + decrease size of the view. + + Ctrl-W | + maximize current view. + + Ctrl-W _ + maximize current view. + + Ctrl-W = + make size of two views equal. + + + In general, all "Ctrl-W x" keys above work the same was as in Normal + mode. Active mode is automatically changed on navigating among win‐ + dows. When less-like mode activated on file preview is left using one + by "Ctrl-W x" keys, its state is stored until another file is showed + using preview (it's possible to leave the mode, hide preview pane, do + something else, then get back to the file and show preview pane again + with previously stored state in it). + +Command line Mode + This keys apply to all submodes of the command line mode: command, + prompt and search. + + Down, Up, Left, Right, Home, End and Delete are extended keys and they + are not available if vifm is compiled with --disable-extended-keys + option. + + Esc, Ctrl-C + leave command line mode, cancels input. Cancelled input is + saved into appropriate history and can be recalled later. + + Ctrl-M, Enter + execute command and leave command line mode. + + Ctrl-I, Tab + complete command or its argument. + + Shift-Tab + complete in reverse order. + + Ctrl-_ stop completion and return original input. + + Ctrl-K remove characters from cursor position till the end of line. + + Ctrl-U remove characters from cursor position till the beginning of + line. + + Ctrl-H, Backspace + remove character before the cursor. + + Ctrl-D, Delete + remove character under the cursor. + + Ctrl-B, Left + move cursor to the left. + + Ctrl-F, Right + move cursor to the right. + + Ctrl-A, Home + go to line beginning. + + Ctrl-E, End + go to line end + + Alt-B go to the beginning of previous word. + + Alt-F go to the end of next word. + + Ctrl-W remove characters from cursor position till the beginning of + previous word. + + Alt-D remove characters from cursor position till the beginning of + next word. + + Ctrl-T swap the order of current and previous character and move cursor + forward or, if cursor past the end of line, swap the order of + two last characters in the line. + + Alt-. insert last part of previous command to current cursor position. + Each next call will insert last part of older command. + + Ctrl-G edit command-line content in external editor. See "Command line + editing" section for details. + + Ctrl-N recall more recent command-line from history. + + Ctrl-P recall older command-line from history. + + Up recall more recent command-line from history, that begins as the + current command-line. + + Down recall older command-line from history, that begins as the cur‐ + rent command-line. + +Command line editing + vifm provides a facility to edit several kinds of data, that is usually + edited in command-line mode, in external editor (using command speci‐ + fied by ´vicmd' or 'vixcmd' option). This has at least two advantages + over built-in command-line mode: + - one can use full power of Vim to edit text; + - finding and reusing history entries becomes possible. + + The facility is supported by four input submodes of the command-line: + - command; + - forward search; + - backward search; + - file rename (see description of cw and cW normal mode keys). + + Editing command-line using external editor is activated by the c_CTRL-G + shortcut. It's also possible to do almost the same from Normal and + Visual modes using q:, q/ and q? commands. + + Temporary file created for the purpose of editing the line has the fol‐ + lowing structure: + + 1. First line, which is either empty or contains text already entered + in command-line. + + 2. 2nd and all other lines with history items starting with the most + recent one. Altering this lines in any way won't change history + items stored by vifm. + + After editing application is finished the first line of the file is + taken as the result of operation, when the application returns zero + exit code. If the application returns an error (see :cquit command in + Vim), all the edits made to the file are ignored, but the initial value + of the first line is saved in appropriate history. + +Commands + Commands are executed with :command_name<Return> + + Commented out lines should start with the double quote symbol, which + may be preceded by whitespace characters. + + ´|' can be used to separate commands, so you can give multiple commands + in one line. If you want to use '|' in an argument, precede it with + '\'. + + These commands see '|' as part of their arguments even when it's + escaped: + + :[range]! + :cmap + :cnoremap + :command + :filetype + :fileviewer + :filextype + :map + :mmap + :mnoremap + :nmap + :nnoremap + :noremap + :normal + :qmap + :qnoremap + :vmap + :vnoremap + :windo + :winrun + + To be able to use another command after one of these, wrap it with the + :execute command. An example: + if filetype('.') == 'reg' | execute '!!echo regular file' | endif + + :[count] + + :number + move to the file number. + :12 would move to the 12th file in the list. + :0 move to the top of the list. + :$ move to the bottom of the list. + + :[count]command + The only builtin :[count]command are :[count]d[elete] and + :[count]y[ank]. + + :d3 would delete three files starting at the current file position + moving down. + + :3d would delete one file at the third line in the list. + + :command [args] + + :[range]!program + will execute the program in a shell + + :[range]!command & + + will run the process in the background using vifm's means. + + Programs that write to stdout like ls will create an error message + showing partial output of the command. + + Take note of the space before ampersand symbol, if you omit it, command + will be run in the background using job control of your shell. + + Accepts macros. + + :[range]!! <program> + is the same as :! but will pause the screen before returning to + Vifm. + + :!! will execute the last command. + + :[range]alink[!?] + creates absolute symbolic links of files in directory of other + view. With "?" vifm will open vi to edit filenames. "!" + forces overwrite. + + :[range]alink[!] path + creates absolute symbolic links of files in directory specified + with the path (absolute or relative to directory of other view). + "!" forces overwrite. + + :[range]alink[!] name1 name2... + creates absolute symbolic links of files in directory of other + view giving each next link a corresponding name from the argu‐ + ment list. "!" forces overwrite. + + :apropos manpage + will create a menu of items returned by the apropos command. + Selecting an item in the menu will open the corresponding man‐ + page. By default the command relies on the external "apropos" + utility, which can be customized by altering value of the 'apro‐ + posprg' option. + + :apropos + repeats last :apropos command. + + :cd or :cd ~ or :cd $HOME + change to your home directory. + + :cd - go to previous directory. + + :cd ~/dir + change directory to ~/dir. + + :cd /curr/dir /other/dir + change directory of the current pane to /curr/dir and directory + of the other pane to /other/dir. When using relative paths vifm + assumes that both of them are relative to current directory of + current view. Command will not fail if one of directories is + invalid. Accepts macros. + + :cd! /dir + same as :cd /dir /dir. + + :c[hange] + create a menu window to alter a files properties. + + :[range]chmod + shows file attributes (permission on *nix and properties on Win‐ + dows) change dialog. + + :[range]chmod[!] arg... + only for *nix + changes permissions for files. See 'man chmod' for arg format. + "!" means set permissions recursively. + + :[range]chown + only for *nix + same as co key in normal mode. + + :[range]chown [user][:][group] + only for *nix + changes owner and/or group of files. Operates on directories + recursively. + + :[range]clone[!?] + clones files in current directory. With "?" vifm will open vi + to edit filenames. "!" forces overwrite. Macros are expanded. + + :[range]clone[!] path + clones files to directory specified with the path (absolute or + relative to current directory). "!" forces overwrite. Macros + are expanded. + + :[range]clone[!] name1 name2... + clones files in current directory giving each next clone a cor‐ + responding name from the argument list. "!" forces overwrite. + Macros are expanded. + + :colo[rscheme]? + prints current color scheme name in the status bar. + + :colo[rscheme] + gives a menu with a list of available color schemes. You can + choose default color scheme here. It will be used for view if + no DIRECTORY in colorscheme file fits current path. It's also + used to set border color (except view titles) and colors in the + menus and dialogs. + + :colo[rscheme] color_scheme_name + changes default color scheme to color_scheme_name. + + :colo[rscheme] color_scheme_name directory + associates directory with the color scheme. The directory argu‐ + ment can be both absolute or relative path when :colorscheme + command is executed from command line, but mandatory should be + an absolute path when the command is executed in scripts loaded + at startup (until vifm is completely loaded). + + :comc[lear] + removes all user defined commands. + + :com[mand] + gives a menu of user commands. + + :com[mand] beginning + shows user defined commands that start with the beginning. + + :com[mand] name action + sets a new user command. + Trying to use a reserved command name will result in an error + message. + Use :com[mand]! to overwrite a previously set command. + Unlike vim user commands do not have to start with a capital + letter. User commands are run in a shell by default. To run a + command in the background you must set it as a background com‐ + mand with & at the end of the commands action (:com rm rm %f &). + Command name cannot contain numbers or special symbols (except + '?' and '!'). + + :com[mand] name /pattern + will set search pattern. + + :com[mand] name filter pattern + will set file name filter. + + :com[mand] cmd :commands + will set kind of alias for internal command (like in a shell). + Will pass range given to alias to an aliased command, so running + :%cp after + :command cp :copy %a + equals + :%copy + + :[range]co[py][!?][ &] + copies files to directory of other view. With "?" vifm will + open vi to edit filenames. "!" forces overwrite. + + :[range]co[py][!] path[ &] + copies files to directory specified with the path (absolute or + relative to directory of other view). "!" forces overwrite. + + :[range]co[py][!] name1 name2...[ &] + copies files to directory of other view giving each next file a + corresponding name from the argument list. "!" forces over‐ + write. + + :[range]d[elete][!][ &] + delete selected file or files. "!" means completely remove + file. + + :[range]d[elete][!] [reg] [count][ &] + will delete files to the reg register. "!" means completely + remove file. + + :delc[ommand] command_name + will remove the command_name user command. + + :delm[arks]! + will delete all marks. + + :delm[arks] marks ... + will delete specified marks, each argument is treated as a set + of marks. + + :di[splay] + popup menu with registers content. + + :di[splay] list ... + display the contents of the numbered and named registers that + are mentioned in list (for example "az to display "", "a and "z + content). + + :dirs display directory stack. + + :ec[ho] [<expr>...] + evaluates each argument as an expression and outputs them sepa‐ + rated by a space. See help on :let command for a definition of + <expr>. + + :[range]e[dit] [file...] + will load the selected or passed file or files into vi. Accepts + macros. + + :el[se] + executes commands until next matching :endif if they previously + were not being executed. See also help on :if and :endif com‐ + mands. + + :empty will permanently remove 'rm -fr' files from trash directory. It + will also remove all operations from undolist that have no sense + after :empty and remove all records about files in trash direc‐ + tory from all registers. See "Trash directory" section below. + + :en[dif] + ends conditional block. See also help on :if and :else com‐ + mands. + + :exe[cute] [<expr>...] + evaluates each argument as an expression and joins results sepa‐ + rated by a space to get a single string, which is then executed + as a command-line command. See help on :let command for a defi‐ + nition of <expr>. + + :exi[t][!] + same as :quit. + + :f[ile] + popup menu of programs set for the file type of the current + file. Add ' &' at the end of command to run program in back‐ + ground. + + :f[ile] arg + run associated command that begins with the arg without opening + menu. + + :filet[ype] pat1,pat2,... [{descr}]def_prog[ &],[{descr}]prog2[ &],... + will associate given program list to each of the patterns. + Associated program (command) is used by handlers of l and Enter + keys (and also in the :file menu). If you need to insert comma + into command just double it (",,"). Space followed by an amper‐ + sand as two last characters of a command means running of the + command in the background. Optional description can be given to + each command to ease understanding of what command will do in + the :file menu. Vifm will try the rest of the programs for an + association when the default isn't found. When program entry + doesn't contain any of vifm macros, name of current file is + appended as if program entry ended with %c macro. On Windows + path to executables containing spaces can (and should be for + correct work with such paths) be double quoted. See "Globs" + section below for pattern definition. See also "Automatic FUSE + mounts" section below. Example for zip archives and several + actions: + + filetype *.zip,*.jar,*.war,*.ear + \ {Mount with fuse-zip} + \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR, + \ {View contents} + \ zip -sf %c | less, + \ {Extract here} + \ tar -xf %c, + + :filex[type] pat1,pat2,... [{ description }] def_program,program2,... + same as :filetype, but vifm will ignore this command if it's not running in X. + In X :filextype is equal to :filetype. See "Globs" section below for pattern + definition. See also "Automatic FUSE mounts" section below. + + :filev[iewer] pat1,pat2,... command + will associate given command as a viewer to each of the patterns. Viewer is a + command which output is captured and showed in the second pane of vifm after + running :view command. When the command doesn't contain any of vifm macros, + name of current file is appended as if command ended with %c macro. See + "Globs" section below for pattern definition. Example for zip archives: + + fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c + + :filter[!] regular_expression_pattern + :filter[!] /regular_expression_pattern/ + will filter all the files out of the directory listing that match the regular + expression. Using second variant you can use the bar ('|') symbol without + escaping. Empty regular expression (specified by //, "" or '') means using of + the last search pattern. Use '!' to control state of filter inversion after + updating filter value (also see 'cpoptions' description). Filter is matched + case sensitively on *nix and case insensitively on Windows. + :filter /.o$ would filter all files ending in .o from the filelist. + Note: vifm uses extended regular expressions. + + :filter + reset filter (set it to empty string) and show all files. + + :filter! + same as :invert. + + :filter? + show current value of name and auto filters. + + :[range]fin[d] pattern + will show results of find command in the menu. Searches among selected files if + any. Accepts macros. By default the command relies on the external "find" + utility, which can be customized by altering value of the 'findprg' option. + + :[range]fin[d] -opt... + same as :find above, but user defines all find arguments. Searches among + selected files if any. + + :[range]fin[d] path -opt... + same as :find above, but user defines all find arguments. Ignores selection and + range. + + :[range]fin[d] + repeats last :find command. + + :fini[sh] + Stop sourcing a script. Can only be used in a vifm script file. This is a quick + way to skip the rest of the file. + + :[range]gr[ep][!] pattern + will show results of grep command in the menu. Add "!" to request inversion of + search (look for lines that do not match pattern). Searches among selected + files if any and no range given. Ignores binary files by default. By default + the command relies on the external "grep" utility, which can be customized by + altering value of the 'grepprg' option. + + :[range]gr[ep][!] -opt... + same as :grep above, but user defines all find arguments, which are not escaped. + Searches among selected files if any. + + :[range]gr[ep][!] + repeats last :grep command. "!" of this command inverts "!" in repeated + command. + + :h[elp] + show the help file. + + :h[elp] argument + is the same as using ':h argument' in vim. Use vifm-<something> to get help + on vifm (tab completion works). This form of the command doesn't work when + ´vimhelp' option is off. + + :hi[ghlight] + will show information about all highlight groups in the current directory. + + :hi[ghlight] group-name + will show information on given highlight group of the default color scheme. + + :hi[ghlight] group-name cterm=style | ctermfg=color | ctermbg=color + sets style (cterm), foreground (ctermfg) or/and background (ctermbg) parameters + of highlight groups of the current default color scheme. + + Available style values (some of them can be combined): + - bold + - underline + - reverse or inverse + - standout + - none + + Available group-name values: + - Win - color of all windows (views, dialogs, menus) + - Border - color of vertical parts of the border + - TopLineSel - top line color of the current pane + - TopLine - top line color of the other pane + - CmdLine - the command line/status bar color + - ErrorMsg - color of error messages in the status bar + - StatusLine - color of the line above the status bar + - WildMenu - color of the wild menu items + - CurrLine - line at cursor position in the view + - Selected - color of selected files + - Directory - color of directories + - Link - color of symbolic links in the views + - BrokenLink - color of broken symbolic links + - Socket - color of sockets + - Device - color of block and character devices + - Executable - color of executable files + - Fifo - color of fifo pipes + + Available colors: + - -1 or default or none - default or transparent + - black + - red + - green + - yellow + - blue + - magenta + - cyan + - white + + Light versions of colors are regular colors with bold attribute set. So order + of arguments of :highlight command is important and it's better to put "cterm" + in front of others to prevent it from overwriting attributes set by "ctermfg" or + "ctermbg" arguments. + + Since there are two colors and only one bold attribute it affects both colors + when "reverse" attribute is used when running vifm in terminal emulator. While + linux native console can handle boldness of foreground and background colors + independently, which is for consistency with terminal emulators accessible from + vifm only implicitly by using light versions of colors. + + Here is the hierarchy of highlight groups, which you need to know for using + transparency: + StatusLine + WildMenu + Border + CmdLine + ErrorMsg + Win + Directory + Link + BrokenLink + Socket + Device + Fifo + Executable + Selected + CurrLine + TopLine + TopLineSel + + "none" means default terminal color for highlight groups at the first level of + the hierarchy and transparency for all others. + + :his[tory] + creates a popup menu of directories visited. + + :his[tory] x + x can be: + d[ir] or . show directory history. + c[md] or : show command line history. + s[earch] or / show search history and search forward on l key. + f[search] or / show search history and search forward on l key. + b[search] or ? show search history and search backward on l key. + i[nput] or @ show prompt history (e.g. on one file renaming). + fi[lter] or = show filter history (see description of the "=" normal mode command). + + :if {expr1} + starts conditional block. Commands are executed until next matching :else of + :endif command if {expr1} evaluates to non-zero, otherwise they are ignored. + See also help on :else and :endif commands. + + :invert [f] + invert file name filter. + + :invert? [f] + show current filter state. + + :invert s + invert selection. + + :invert o + invert sorting order of the primary sorting key. + + :invert? o + show sorting order of the primary sorting key. + + :jobs shows menu of current backgrounded processes. + + :let $ENV_VAR = <expr> + sets environment variable. Warning: setting environment variable to an empty + string on Windows removes it. + + :let $ENV_VAR .= <expr> + append value to environment variable. + + Where <expr> could be a single-quoted string, double-quoted string, an environment variable, function call or a concatanation of any of them in any order using the '.' operator. Any whitespace is ignored. + + :locate filename + uses the locate command to create a menu of filenames + Selecting a file from the menu will reload the current file list in vifm + to show the selected file. By default the command relies on the external + "locate" utility (it's assumed that its database is already built), which can be + customized by altering value of the 'locateprg' option. + + :locate + repeats last :locate command. + + :[range]ma[rk][?] x [/full/path] [filename] + Set mark x (a-zA-Z0-9) at /full/path and filename. By default current directory + is being used. If no filename was given and /full/path is current directory + then last file in [range] is used. Using of macros is allowed. Question mark + will stop command from overwriting existing marks. + + :marks create a popup menu of bookmarks. + + :marks list ... + display the contents of the marks that are mentioned in list. + + :mes[sages] + shows previously given messages (up to 50). + + :mkdir[!] dir ... + creates directories with given names. "!" means make parent directories as + needed. Macros are expanded. + + :[range]m[ove][!?][ &] + moves files to directory of other view. With "?" vifm will open vi to edit + filenames. "!" forces overwrite. + + :[range]m[ove][!] path[ &] + moves files to directory specified with the path (absolute or relative to + directory of other view). "!" forces overwrite. + + :[range]m[ove][!] name1 name2...[ &] + moves files to directory of other view giving each next file a corresponding + name from the argument list. "!" forces overwrite. + + :noh[lsearch] + clear selection in current pane. + + :norm[al][!] commands + executes normal mode commands. If "!" is used, mappings will not be used. If + the last command is unfinished it will be aborted as if <esc> or <c-c> was + typed. A ":" should be completed as well. Commands can't start with a space, + so put a count of 1 (one) before it. + + :on[ly] + changes the window to show only the current file directory. + + :popd remove pane directories from stack. + + :pushd[!] /curr/dir [/other/dir] + add pane directories to stack and process arguments like :cd command. + + :pushd exchanges the top two items of the directory stack. + + :pw[d] show the present working directory. + + :q[uit][!] + will exit vifm (add ! if you don't want to save changes or check if there are + any of backgrounded commands still running). + + :[range]y[ank] [reg] [count] + will yank files to the reg register. + + :ls lists windows of active terminal multiplexer (only when terminal multiplexer is + used). This is achieved by issuing proper command for active terminal + multiplexer, thus the list is not handled by vifm. + + :reg[isters] + popup menu with registers content. + + :reg[isters] list ... + display the contents of the numbered and named registers that are mentioned in + list (for example "az to display "", "a and "z content). + + :[range]rename[!] + rename files using vi to edit names. ! means go recursively through directories. + + :[range]rename name1 name2... + rename each of selected files to a corresponding name. + + :restart + will free a lot of things (histories, commands, etc.), reread vifminfo and + vifmrc files and run startup commands passed in the argument list, thus losing + all unsaved changes (e.g. recent history or keys mapped in current session). + + :[range]restore + will restore file from trash directory, doesn't work in any other directory. + See "Trash directory" section below. + + :[range]rlink[!?] + creates relative symbolic links of files in directory of other view. With "?" + vifm will open vi to edit filenames. "!" forces overwrite. + + :[range]rlink[!] path + creates relative symbolic links of files in directory specified with the path + (absolute or relative to directory of other view). "!" forces overwrite. + + :[range]rlink[!] name1 name2... + creates relative symbolic links of files in directory of other view giving each + next link a corresponding name from the argument list. "!" forces overwrite. + + :screen + toggles whether to use the terminal multiplexer or not. + A terminal multiplexer uses pseudo terminals to allow multiple windows to be + used in the console or in a single xterm. Starting vifm from terminal + multiplexer with appropriate support turned on will cause vifm to open a new + terminal multiplexer window for each new file edited or program launched from + vifm. + This requires screen version 3.9.9 or newer for the screen -X argument or tmux + (version or newer 1.8 is recommented). + + :screen? + shows whether integration with terminal multiplexers is enabled. + + Note: the command is called screen for historical reasons (when tmux wasn't yet + supported) and might be changed in future releases, or get an alias. + + :se[t] shows all options that differ from their default value. + + :se[t] all + shows all options. + + :se[t] opt1=val1 opt2='val2' opt3="val3" ... + will set options to given values. + You can use following syntax: + - for all options - option, option? and option& + - for boolean options - nooption, invoption and option! + - for integer options - option=x, option+=x and option-=x + - for string options - option=x + - for string list options - option=x, option+=x and option-=x + - for enumeration options - option=x, option+=x and option-=x + - for enumeration options - option=x + - for set options - option=x, option+=x and option-=x + - for charset options - option=x, option+=x and option-=x + + the meaning: + - option - turn option on (for boolean) or print its value (for all others) + - nooption - turn option off + - invoption - invert option state + - option! - invert option state + - option? - print option value + - option& - reset option to its default value + - option=x or option:x - set option to x + - option+=x - add x to option + - option-=x - remove (or subtract) x from option + + Option name can be prepended and appended by any number of whitespace + characters. + + :sh[ell] + will start a shell. + + :sor[t] + creates a popup menu of different sorting methods, when one can select primary + sorting key. When 'viewcolumns' options is empty and 'lsview' is off, changing + primary sorting key will also affect view look (in particular the second column + of the view will be changed). + + :so[urce] file + reads command-line commands from the file. + + :sp[lit] + switch to a two window horizontal view. + + :sp[lit]! + toggles window horizontal splitting. + + :sp[lit] path + splits the window horizontally to show both file directories. And changes other + pane to path (absolute or relative to current directory of active pane). + + :[range]s[ubstitite]/pattern/string/[flags] + for each file in range replace a match of pattern with string. + + String can contain \0...\9 to link to capture groups (\0 - all match, \1 - + first group, etc.). + + Available flags: + + - i - ignore case (the 'ignorecase' and 'smartcase' options are not used) + + - I - don't ignore case (the 'ignorecase' and 'smartcase' options are not used) + + - g - substitute all matches in each file name (each g toggles this) + + :[range]s[ubstitute]//string/[flags] + will use previous pattern. + + :[range]s[ubstitute] + will repeat previous substitution command. + + :sync [relative path] + change the other panel to the current panel directory or to some path relative + to the current directory. Using macros is allowed. + + :sync! + change the other panel to the current panel directory and synchronize cursor + position. + + :touch file... + will create files. Aborts on errors and won't update time of existing files. + Macros are expanded. + + :[range]tr/pattern/string/ + for each file in range transliterate the characters which appear in pattern to + the corresponding character in string. When string is shorter than pattern, + it's padded with its last character. + + String can contain ...9 to link to capture groups (0 - all match, 1 - first + group, etc.). + + :undol[ist] + show list of latest changes. Add ! to see commands. + + :unl[et][!] $ENV_VAR1 $ENV_VAR2 ... + remove environment variables. Add ! to omit displaying of warnings about + nonexistent variables. + + :ve[rsion] + show menu with version information. + + :vifm same as :version. + + :vie[w] + toggle on and off the quick file view. + + :vie[w]! + turns on quick file view if it's off. + + :volumes + only for MS-Windows + will popup menu with volume list. Hitting l (or Enter) key will open + appropriate volume in the current pane. + + :vs[plit] + switch to a two window vertical view. + + :vs[plit]! + toggles window vertical splitting. + + :vs[plit] path + splits the window vertically to show both file directories. And changes other + pane to path (absolute or relative to current directory of active pane). + + :windo [command...] + Execute command for each pane (same as :winrun % command). + + :winrun type [command...] + Execute command for pane(s), which is determined by type argument: + - ^ - top-left pane + - $ - bottom-right pane + - % - all panes + - . - current pane + - , - other pane + + :w[rite] + write vifminfo file (add ! to force write even if settings weren't changed). + + :wq[!] same as :quit, but ! only disables check of backgrounded commands. + + :x[it][!] + will exit Vifm (add ! if you don't want to save changes). + + + :map lhs rhs + map lhs key sequence to rhs in normal and visual modes. + + :map! lhs rhs + map lhs key sequence to rhs in command line mode. + + + :cm[ap] lhs rhs + map lhs to rhs in command line mode. + + :mm[ap] lhs rhs + map lhs to rhs in menu mode. + + :nm[ap] lhs rhs + map lhs to rhs in normal mode. + + :qm[ap] lhs rhs + map lhs to rhs in view mode. + + :vm[ap] lhs rhs + map lhs to rhs in visual mode. + + + :cm[ap] + lists all maps in command line mode. + + :mm[ap] + lists all maps in menu mode. + + :nm[ap] + lists all maps in normal mode. + + :qm[ap] + lists all maps in view mode. + + :vm[ap] + lists all maps in visual mode. + + + :cm[ap] beginning + lists all maps in command line mode that start with the beginning. + + :mm[ap] beginning + lists all maps in menu mode that start with the beginning. + + :nm[ap] beginning + lists all maps in normal mode that start with the beginning. + + :qm[ap] beginning + lists all maps in view mode that start with the beginning. + + :vm[ap] beginning + lists all maps in visual mode that start with the beginning. + + + :no[remap] lhs rhs + map the key sequence lhs to {rhs} for normal and visual modes, but disallow + mapping of rhs. + + :no[remap]! lhs rhs + map the key sequence lhs to {rhs} for command line mode, but disallow mapping of + rhs. + + + :cno[remap] lhs rhs + map the key sequence lhs to {rhs} for command line mode, but disallow mapping of + rhs. + + :mn[oremap] lhs rhs + map the key sequence lhs to {rhs} for menu mode, but disallow mapping of rhs. + + :nn[oremap] lhs rhs + map the key sequence lhs to {rhs} for normal mode, but disallow mapping of rhs. + + :qn[oremap] lhs rhs + map the key sequence lhs to {rhs} for view mode, but disallow mapping of rhs. + + :vn[oremap] lhs rhs + map the key sequence lhs to {rhs} for visual mode, but disallow mapping of rhs. + + + :unm[ap] lhs + remove the mapping of lhs from normal and visual modes. + + :unm[ap]! lhs + remove the mapping of lhs from command line mode. + + + :cu[nmap] lhs + remove the mapping of lhs from command line mode. + + :mu[nmap] lhs + remove the mapping of lhs from menu mode. + + :nun[map] lhs + remove the mapping of lhs from normal mode. + + :qun[map] lhs + remove the mapping of lhs from view mode. + + :vu[nmap] lhs + remove the mapping of lhs from visual mode. + +Ranges + The ranges implemented include: + 2,3 - from second to third file in the list (including it) + % - the entire directory. + . - the current position in the filelist. + $ - the end of the filelist. + 't - the mark position t. + + Examples: + + :%delete + + would delete all files in the directory. + + :2,4delete + + would delete the files in the list positions 2 through 4. + + :.,$delete + + would delete the files from the current position to the end of the + filelist. + + :3delete4 + + would delete the files in the list positions 3, 4, 5, 6. + + If a backward range is given :4,2delete - an query message is given and + user can chose what to do next. + + The builtin commands that accept a range are :d[elete] and :y[ank]. + +Command macros + The command macros may be used in user commands. + + %a User arguments. When user arguments contain macros, they are + expanded before preforming substitution of %a. + + %c %"c The current file under the cursor. + + %C %"C The current file under the cursor in the other directory. + + %f %"f All of the selected files. + + %F %"F All of the selected files in the other directory list. + + %b %"b Same as %f %F. + + %d %"d Full path to current directory. + + %D %"D Full path to other file list directory. + + %rx %"rx + Full paths to files in the register {x}. In case of invalid + symbol in place of {x}, it's processed with the rest of the line + and default register is used. + + %m Show command output in a menu. + + %M Same as %m, but l (or Enter) key is handled like for :locate and + :find commands. + + %S Show command output in the status bar. + + %s Execute command in split window of active terminal multiplexer + (ignored if not running inside one). + + %i Completely ignore command output. + + Use %% if you need to put a percent sign in your command. + + Note that %m, %M, %s, %S and %i macros are mutually exclusive. Only the + last one of them in the command will take effect. + + You can use filename modifiers after %c, %C, %f, %F, %b, %d and %D + macros. Supported modifiers are: + + - :p - full path + + - :u - UNC name of path (e.g. "\\server" in + "\\server\share"), Windows only. Expands to current computer name + for not UNC paths. + + - :~ - relative to the home directory + + - :. - relative to current directory + + - :h - head of the filename + + - :t - tail of the filename + + - :r - root of the filename (without last extension) + + - :e - extension of the filename (last one) + + - :s?pat?sub? - substitute the first occurrence of pat with sub. You + can use any character for '?', but it must not occur in pat or sub. + + - :gs?pat?sub? - like :s, but substitutes all occurrences of pat with + sub. + + See ':h filename-modifiers' in Vim's documentation for the detailed + description. + + Using %x means expand corresponding macro escaping all characters + that have special meaning. And %"x means using of double quotes and + escape only backslash and double quote characters, which is more use‐ + ful on Windows systems. + + Position and quantity (if there is any) of %m, %M, %S or %s macros in + the command is unimportant. All their occurrences will be removed + from the resulting command. + + %c and %f macros are expanded to file names only, when %C and %F are + expanded to full paths. %f and %F follow this in %b too. + + :com move mv %f %D + would set the :move command to move all of the files selected in the + current directory to the other directory. + + The %a macro will substitute any arguments given in a command into the + command. All arguments are considered optional. ":com lsl !!ls -l %a" + will set the lsl command to execute ls -l with or without an argument. + + :lsl<Return> + will list the directory contents of the current directory. + + :lsl filename<Return> + will list only the given filename. + + The macros can also be used in directly executing commands. ":!mv %f + %D" would move the current directory selected files to the other direc‐ + tory. + + Appending & to the end of a command will cause it to be executed in the + background.Typically you want to run two kinds of external commands in + thebackground: + - GUI applications that doesn't fork thus block vifm (:!sxiv %f &); + - console tools that do not work with terminal (:!mv %f %D &). + + You don't want to run terminal commands, which require terminal input + oroutput something because they will mess up vifm's TUI. Anyway, if you + did runsuch a command, you can use Ctrl-L key to update vifm's TUI. + + Rewriting the example command with macros given above with background‐ + ing: + + :!mv %f %D & + + Note that %m, %M, %s, %S and %i macros have bigger priority than &. So + command containing at least one of them can't be backgrounded and " &" + at the end will be just silently ignored. + +Command backgrounding + Copy and move operation can take a lot of time to proceed. That's why + vifm supports backgrounding of this two operations. To run :copy, + :move or :delete command in the background just add " &" at the end of + a command. + + For each background operation a new thread will be created. Currently + job cannot be stopped or paused. + + You can see if command is still running in the :jobs menu. Back‐ + grounded commands have progress instead of process id at the line + beginning. + + Background operations cannot be undone. + +Globs + :filetype, :filextype and :fileviewer commands support globs to match + file names. Here is a short overview of globs and some important + points that one needs to know about them. + + Only names of files are matched by the globs, not full paths. E.g. + :filetype Makefile make %c + will match files with name "Makefile" regardless whether it's in root + or home directory. + + *, ?, [ and ] are treated as special symbols in the pattern. E.g. + :filetype * less %c + matches all files. One can use character classes for escaping, so + :filetype [*] less %c + matches only one file name, the one which contains only asterisk sym‐ + bol. + + * means any number of any characters (possibly an empty substring), + with one exception: asterisk at the pattern beginning doesn't match dot + in the first position. E.g. + :fileviewer *.zip,*.jar zip -sf %c + associates using of zip program to preview all files with zip or jar + extensions as listing of their content. + + ? means any character at this position. E.g. + :fileviewer ?.out file %c + calls file tool for all files which has exactly one character before + their extension (e.g. a.out, b.out). + + Square brackets designate character class, which means that whole char‐ + acter class matches against any of characters listed in it. For exam‐ + ple + :fileviewer *.[ch] highlight -O xterm256 -s dante --syntax c %c + makes vifm call highlight program to colorize source and header files + in C language for a 256-color terminal. Equal command would be + :fileviewer *.c,*.h highlight -O xterm256 -s dante --syntax c %c + + Inside square brackets ^ or ! can be used for symbol class negotiation + and the - symbol to set a range. ^ and ! should appear right after the + opening square bracket. For example + :filetype *.[!d]/ inspect_dir + associates inspect_dir as additional handler for all directories that + have one character extension unless it's "d" letter. And + :filetype [0-9].jpg sxiv + associates sxiv picture viewer only for JPEG-files that contain single + digit in their name. + +:set options + Local options + These are kind of options that are local to a specific view. So + you can set ascending sorting order for left pane and descending + order for right pane. + + aproposprg + type: string + default: "apropos %a" + Specifies format for an external command to be invoked by the + :apropos command. The format supports expanding of macros, spe‐ + cific for a particular *prg option, and %% sequence for insert‐ + ing percent sign literally. This option should include the %a + macro to specify placement of arguments passed to the :apropos + command. If the macro is not used, it will be implicitly added + after a space to the value of this option. + + autochpos + type: boolean + default: true + When disabled vifm will set cursor to the first line in the view + after :cd and :pushd commands instead of saved cursor position. + Disabling this will also make vifm clear information about cur‐ + sor position in the view history on :cd and :pushd commands (and + on startup if autochpos is disabled in the vifmrc). l key in + the :history . menu is treated like :cd command. This option + affects bookmarks, file position will not preserved. + + columns co + type: int + default: terminal width on startup + Terminal width in characters. + + classify + type: string list + default: ":dir:/" + Specifies file name prefixes and suffixes depending on file + types. The format is: [{prefix}]:{filetype}:[{suffix}]. Either + {prefix} or {suffix} or both of them can be omitted (which is + the default for all unspecified file types), this means empty + {prefix} and/or {suffix}. {prefix} and {suffix} should consist + exactly of one character. Elements are separated by commas. + Neither prefixes nor suffixes are part of file names, so they + don't affect commands which operate on file names in any way. + Comma (',') character should not be used. List of file type + names can be found in the description of filetype() function. + + confirm cf + type: boolean + default: true + Ask about permanent deletion of files (on D or :delete! command + or on undo/redo operation). + + cpoptions cpo + type: charset + default: "fst" + Contains a sequence of single-character flags. Each flag + enables behaviour of older versions of vifm. Flags: + f - when included, running :filter command results in not + inverted (matching files are filtered out) and :filter! in + inverted (matching files are left) filter, when omitted, meaning + of the exclamation mark changes to the opposite; + s - when included, yy, dd and DD normal mode commands act on + selection, otherwise they operate on current file only; + t - when included, <tab> (thus <c-i>) behave as <space> and + switch active pane, otherwise <tab> and <c-i> go forward in the + view history. + + dotdirs + type: set + default: nonrootparent + Controls displaying of dot directories. The following values + are possible: + - rootparent - show "../" in root directory of file system + - nonrootparent - show "../" in non-root directories of file + system + Note that empty directories will always contain "../" entry + regardless of value of this option. "../" will disappear at the + moment at least one file is created inside the directory. + + fastrun + type: boolean + default: false + With this option turned on you can run partially entered com‐ + mands with unambiguous beginning using :! (e.g. :!Te instead of + :!Terminal or :!Te<tab>). + + findprg + type: string + default: "find %s %a -print , -type d \( ! -readable -o ! -exe‐ + cutable \) -prune" + Specifies format for an external command to be invoked by the + :find command. The format supports expanding of macros, spe‐ + cific for a particular *prg option, and %% sequence for insert‐ + ing percent sign literally. This option should include the %s + macro to specify placement of list of paths to search in and the + %a macro to specify placement of arguments passed to the :find + command. If some of the macros are not used, they will be + implicitly added after a space to the value of the option in the + following order: %s, %a. + + %s and %a macro can slightly change their meaning depending on + :find command arguments. When the first argument points to an + existing directory, %s is assigned all arguments and %a is left + empty. Otherwise, %s is assigned a dot (".") meaning current + directory or list of selected filenames if any. %a is assigned + arguments when first argument starts with a dash ("-"), other‐ + wise an escaped version of arguments, prepended by "-name" (on + *nix) or "-iname" (on Windows) predicate. + + followlinks + type: boolean + default: true + Follow links on l or Enter. + + fusehome + type: string + default: "($TMPDIR | $TEMP | $TEMPDIR | $TMP)/vifm_FUSE/" + Directory to be used as a root dir for FUSE mounts. Value of + the option can contain environment variables (in form + "$envname"), which will be expanded (prepend it with a slash to + prevent expansion). The value should expand to an absolute + path. + + If you change this option, vifm won't remount anything. It + affects future mounts only. See "Automatic FUSE mounts" section + below for more information. + + gdefault gd + type: boolean + default: false + When on, 'g' flag is on for :substitute by default. + + grepprg + type: string + default: "grep -n -H -I -r %i %a %s" + Specifies format for an external command to be invoked by the + :grep command. The format supports expanding of macros, spe‐ + cific for a particular *prg option, and %% sequence for insert‐ + ing percent sign literally. This option should include the %i + macro to specify placement of "-v" string when inversion of + results is requested, the %a macro to specify placement of argu‐ + ments passed to the :grep command and the %s macro to specify + placement of list of files to search in. If some of the macros + are not used, they will be implicitly added after a space to the + value of the 'grepprg' option in the following order: %i, %a, + %s. + + Example of setup to use ack (http://beyondgrep.com/) instead of + grep: + set grepprg=ack\ -H\ -r\ %i\ %a\ %s + or The Silver Searcher (https://github.com/ggreer/the_sil‐ + ver_searcher): + set grepprg=ag\ --line-numbers\ %i\ %a\ %s + + + history hi + type: integer + default: 15 + Maximum number of directories in the view history and lines in + the prompt, command line and search histories. + + hlsearch hls + type: bool + default: true + Highlight all matches of search pattern. + + iec type: boolean + default: false + Use KiB, MiB, ... instead of KB, MB, ... + + ignorecase ic + type: boolean + default: false + Ignore case in search patterns (:substitute, / and ? commands) + and characters after f and F commands. It doesn't affect file + filtering. + + incsearch is + type: boolean + default: false + When this option is set, search will be performed starting from + initial cursor position each time search pattern is changed. + + laststatus ls + type: boolean + default: true + Controls if status bar is visible. + + lines type: int + default: terminal height on startup + Terminal height in lines. + + locateprg + type: string + default: "locate %a" + Specifies format for an external command to be invoked by the + :locate command. The format supports expanding of macros, spe‐ + cific for a particular *prg option, and %% sequence for insert‐ + ing percent sign literally. This option should include the %a + macro to specify placement of arguments passed to the :locate + command. If the macro is not used, it will be implicitly added + after a space to the value of this option. + + lsview type: boolean + default: false + type: local + When this option is set, directory view will be displayed in + multiple columns with filenames similar to output of `ls -x` + command. See ls-like view section below for format description. + + rulerformat ruf + type: string + default: "%=%l-%S " + Determines the content of the ruler. Its width is 13 characters + and it's right aligned. Following macros are supported: + %l - file number + %L - total number of files in view (including filtered) + %- - number of filtered files + %S - number of showed files + %= - separation point between left and right align items + %% - percent sign + + Percent sign can be followed by optional minimum field width. + Add '-' before minimum field width if you want field to be right + aligned. Example: + + set rulerformat="%=%2l-%S [%L] " + + runexec + type: boolean + default: false + Run executable file on Enter or l. + + scrollbind scb + type: boolean + default: false + When this option is set, vifm will try to keep difference of + scrolling positions of two windows constant. + + scrolloff so + type: int + default: 0 + Minimal number of screen lines to keep above and below the cur‐ + sor. If you want cursor line to always be in the middle of the + view (except at the beginning or end of the file list), set this + option to some large value (e.g. 999). + + shell sh + type: string + default: $SHELL or "sh" or "cmd" (on MS-Windows) + Full path to the shell to use to run external commands. + + shortmess shm + type: charset + default: "" + Contains a sequence of single-character flags. Each flag + enables shortening of some message displayed by vifm in the TUI. + Flags: + T - truncate status-bar messages in the middle if they are too + long to fit on the command line. "..." will appear in the mid‐ + dle. + + slowfs type: string list + default: "" + only for *nix + A list of mounter fs name beginnings (first column in /etc/mtab + or /proc/mounts) that work too slow for you. This option can be + used to stop vifm from making some requests to particular kinds + of file systems that can slow down file browsing. Currently + this means don't check if directory has changed and do not check + if target of symbolic links exists. + + smartcase scs + type: boolean + default: false + Overrides the ignorecase option if the search pattern contains + at least one upper case character. Only used when ignorecase + option is enabled. It doesn't affect file filtering. + + sort type: string list + default: +name on *nix and +iname on Windows + type: local + Sets list of sorting keys (first item is primary key, second is + secondary key, etc.): + [+-]ext - sort by extension + [+-]name - sort by name (including extension) + [+-]iname - sort by name (including extension, ignores case) + [+-]gid - sort by group id (*nix only) + [+-]gname - sort by group name (*nix only) + [+-]mode - sort by mode (*nix only) + [+-]perms - sort by permissions string (*nix only) + [+-]uid - sort by owner id (*nix only) + [+-]uname - sort by owner name (*nix only) + [+-]size - sort by size + [+-]atime - sort by time accessed + [+-]ctime - sort by time changed + [+-]mtime - sort by time modified + + ´+' means ascending sort for this key, and '-' means descending sort. + + In case name (iname on Windoes) is skipped, it will be added at the end + automatically. + + This option also changes view columns according to primary sorting key + set, unless 'viewcolumns' option is not empty. + + sortnumbers + type: boolean + default: false + type: local + Natural sort of (version) numbers within text. + + statusline stl + type: string + default: "" + Determines the content of the status line (the line right above + command-line). Empty string means use same format like in pre‐ + vious versions. Following macros are supported: + + - %t - file name (considering value of the 'classify' option) + + - %A - file attributes (permissions on *nix or properties on + Windows) + + - %u - user name or uid (if it cannot be resolved) + + - %g - group name or gid (if it cannot be resolved) + + - %s - file size in human readable format + + - %E - size of selected files in human readable format, same as + %s when no files are selected, except that it will never + show size of ../ in visual mode, since it cannot be + selected + + - %d - file modification date (uses 'timefmt' option) + + - all 'rulerformat' macros + + Percent sign can be followed by optional minimum field width. + Add '-' before minimum field width if you want field to be right + aligned. Example: + + set statusline=" %t%= %A %10u:%-7g %15s %20d " + + On Windows file properties include next flags (upper case means + flag is on): + A - archive + H - hidden + I - content isn't indexed + R - readonly + S - system + C - compressed + D - directory + E - encrypted + P - reparse point (e.g. symbolic link) + Z - sparse file + + sortorder + type: enumeration + default: ascending + Sets sort order for primary key: ascending, descending. + + tabstop ts + type: integer + default: value from curses library + Number of spaces that a Tab in the file counts for. + + timefmt + type: string + default: " %m/%d %H:%M" + Format of time in file list. See man date or man strf‐ + time for details. + + timeoutlen tm + type: integer + default: 1000 + The time in milliseconds that is waited for a mapped key + in case of already typed key sequence is ambiguous. + + trash type: boolean + default: true + Use trash directory. See "Trash directory" section + below. + + trashdir + type: string + default: "$HOME/.vifm/Trash" + Sets path to trash directory. Value of the option can + contain environment variables (in form "$envname"), which + will be expanded (prepend it with a slash to prevent + expansion). The value should expand to an absolute path. + + Will attempt to create the directory if it does not + exist. See "Trash directory" section below. + + undolevels ul + type: integer + default: 100 + Maximum number of changes that can be undone. + + vicmd type: string + default: "vim" + The actual command used to start vi. Ampersand sign at + the end (regardless whether it's preceded by space or + not) means backgrounding of command. + + viewcolumns + type: string + default: "" + type: local + Format string containing list of columns in the view. + When this option is empty view columns to show are chosen + automatically using sorting keys (see 'sort') as a base. + Value of this option is ignored if 'lsview' is set. See + Column view section below for format description. + + An example of setting the options for both panes (note + vifm-windo command): + windo set viewcolumns=-{name}..,6{size},11{perms} + + vixcmd type: string + default: value of vicmd + The command used to start vi when in X. Ampersand sign + at the end (regardless whether it's preceded by space or + not) means backgrounding of command. + + vifminfo + type: set + default: bookmarks + + Controls what will be saved in the $VIFM/vifminfo file. + options - all options that can be set with the :set command + filetypes - associated programs and viewers + commands - user defined commands (see :command description) + bookmarks - bookmarks, except special ones like '< and '> + tui - state of the user interface (sorting, number of + windows, quick + view state, active view) + dhistory - directory history + state - file name and dot filters and terminal multiplex‐ + ers integration + state + cs - default color scheme + savedirs - save last visited directory (needs dhistory) + chistory - command line history + shistory - search history (/ and ? commands) + phistory - prompt history + fhistory - filter history (see description of the "=" normal + mode command) + dirstack - directory stack overwrites previous stack, unless + stack of + current session is empty + registers - registers content + + vimhelp + type: boolean + default: false + Use vim help format. + + wildmenu wmnu + type: boolean + default: false + Controls whether possible matches of completion will be + shown above the command line. + + wrap type: boolean + default: true + Controls whether to wrap text in quick view. + + wrapscan ws + type: boolean + default: true + Searches wrap around end of the list. + +Mappings + Since it's not easy to enter special characters there are several spe‐ + cial sequences that can be used in place of them. They are: + + <cr> Enter key + + <bs> Backspace key + + <tab> <s-tab> + Tabulation and Shift+Tabulation keys + + <esc> <space> <home> <end> <left> <right> <up> <down> <pageup> <page‐ + down> + Keys with obvious names. + + <del> <delete> + Delete key. <del> and <delete> mean different codes, but + <delete> is more common. + + <c-a>,<c-b>,...,<c-z>,<c-[>,<c->,<c-]>,<c-^>,<c-_> + Control + some key. + + <a-a>,<a-b>,...,<a-z> + <m-a>,<m-b>,...,<m-z> Alt + some key. + + <a-c-a>,<a-c-b>,...,<a-c-z> + <m-c-a>,<m-c-b>,...,<m-c-z> only for *nix + Alt + Ctrl + some key. + + <f0> - <f63> + Functional keys + + <c-f1> - <c-f12> + only for MS-Windows + Functional keys with Control key pressed. + + <a-f1> - <a-f12> + only for MS-Windows + Functional keys with Alt key pressed. + + <s-f1> - <s-f12> + only for MS-Windows + Functional keys with Shift key pressed. + + vifm removes whitespace characters at the beginning and end of com‐ + mands. That's why you may want to use <space> at the end of rhs in + mappings. For example: + + cmap <f1> man<space> + + will put "man " in line when you hit the <f1> key in the command line + mode. + +Expression syntax + Supported expressions is a subset of what VimL provides. + + Expression syntax summary, from least to most significant: + + vifm-expr1 expr2 == expr2 equal + expr2 != expr2 not equal + + vifm-expr2 expr3 . expr3 .. string concatenation + + vifm-expr3 "string" string constant, \ is special + 'string' string constant, ' is doubled + $VAR environment variable + function(expr1, ...) function call + + ".." indicates that the operations in this level can be concatenated. + + expr1 + ----- + expr2 {cmp} expr2 + + Compare two expr2 expressions, resulting in a 0 if it evaluates to + false or 1 if it evaluates to true. + + equal == + notequal != + + Examples: + 'a' == 'a' evaluates to 1 + 'a' == 'b' evaluates to 0 + + expr2 + ----- + expr3 . expr3 .. string concatenation + + Examples: + 'a' . 'b' = 'ab' + 'aaa' . '' . 'c' = 'aaac' + + expr3 + ----- + + string + ------ + "string" string constant + + Note that double quotes are used. + + A string constant accepts these special characters: + \b backspace <bs> + \e escape <esc> + \n newline + \r return <cr> + \t tab <tab> + \\ backslash + \" double quote + + Examples: + "\"Hello,\tWorld!\"" + "Hi,\nthere!" + + literal-string + -------------- + ´string' string constant + + Note that single quotes are used. + + This string is taken as it is. No backslashes are removed or have a + special meaning. The only exception is that two quotes stand for one + quote. + + Examples: + 'All\slashes\are\saved.' + 'This string contains doubled single quotes ''here''' + + environment variable + -------------------- + $VAR environment variable + + The String value of any environment variable. When it is not defined, + the result is an empty string. + + Examples: + 'This is my $PATH env: ' . $PATH + 'vifmrc at ' . $MYVIFMRC . ' is used.' + + function call + ------------- + function(expr1, ...) function call + + See Functions section below. + + Examples: + "'" . filetype('.') . "'" + filetype('.') == 'reg' + +Functions + USAGE RESULT DESCRIPTION + + expand({expr}) String Expand macros in {expr}. + filetype({fnum}) String Returns file type from position. + + expand({expr}) + Expands macros in {expr} just like it's done for command-line commands. + Returns a string. See "Command macros" section above. Examples: + " percent sign + :echo expand('%%') + " the last part of directory name of the other pane + :echo expand('%D:t') + + filetype({fnum}) + The result is a string, which represents file type and is one of the + list: + exe executables + reg regular files + link symbolic links + dir directories + char character devices + block block devices + fifo pipes + sock *nix domain sockets + ? unknown file type (should never appear) + Parameter {fnum} can have following values: + - '.' to get type of file under the cursor in the active pane + +Menus and dialogs + General + + j, k - move. + <Escape>, Ctrl-C, ZZ, ZQ - quit. + <Return>, l - select and exit the menu. + Ctrl-L - redraw the menu. + + Escape, Ctrl-C, ZZ, ZQ, q - quit. + + In all menus + + Ctrl-B/Ctrl-F + Ctrl-D/Ctrl-U + Ctrl-E/Ctrl-Y + / and ?, n/N + [num]G/[num]gg + H/M/L + zb/zt/zz + zh - scroll menu items [count] characters to the right. + zl - scroll menu items [count] characters to the left. + zH - scroll menu items half of screen width characters to the right. + zL - scroll menu items half of screen width characters to the left. + + All these keys have the same meaning as in normal mode (but not L in + filetype menu). + + : - enter command line mode for menus (currently only :exi[t], :q[uit], + :x[it] and :{range} are supported). + + Apropos menu + + l key won't close the menu allowing user to pick another man page, use + :q to close the menu. + + Commands menu + + dd on a command to remove. + + Bookmarks menu + + Escape or Ctrl-C to abort j and k to move through. + dd on a bookmark to remove. + + Directory stack menu + + Pressing l or Enter on directory name will rotate stack to place + selected directory pair at the top of the stack. + + Filetype menu + + Commands from vifmrc or typed in command-line are displayed above empty + line. All commands below empty line are from .desktop files. + + Fileinfo dialog + + Enter - close dialog + q - close dialog + + Sort dialog + + h - switch ascending/descending. + Space - switch ascending/descending. + q - close dialog + + Attributes (permissions or properties) dialog + + h - check/uncheck. + Space - check/uncheck. + q - close dialog + + Item states: + + - * - checked flag. + + - X - means that it has different value for files in selection. + + - d (*nix only) - (only for execute flags) means u-x+X, g-x+X or o-x+X + argument for the chmod program. If you want to remove execute right + from all files, but preserve it for directories, set all execute + flags to 'd' and check ´Set Recursively' flag. + +Startup + On startup vifm determines several variables that are used during the + session. They are determined in the order they appear below. + + On *nix systems $HOME is normally present and used as is. On Windows + systems vifm tries to find correct home directory in the following + order: + - $HOME variable; + - $USERPROFILE variable; + - a combination of $HOMEDRIVE and $HOMEPATH variables. + + vifm tries to find correct configuration directory by checking the fol‐ + lowing places: + - $VIFM variable; + - parent directory of the executable file (on Windows only); + - $HOME/.vifm directory; + - $APPDATA/Vifm directory (on Windows only). + + vifm tries to find correct configuration file by checking the following + places: + - $MYVIFMRC variable; + - vifmrc in parent directory of the executable file (on Windows only); + - $VIFM/vifmrc file. + +Configure + See Startup section above for the explanations on $VIFM and $MYVIFMRC. + + The vifmrc file contains commands that will be executed on vifm + startup. See $MYVIFMRC variable description for search algorithm used + to find vifmrc. Use it to set settings, mappings, filetypes etc. To + use multi line commands precede each next line with a slash (whitespace + before slash is ignored, but all spaces at the end of the lines are + saved). For example: + set + \smartcase + equals "setsmartcase". When + set<space here> + \ smartcase + equals "set smartcase". + + The $VIFM/vifminfo file contains session settings. You may edit it by + hand to change the settings, but it's not recommended to do that, edit + vifmrc instead. You can control what settings will be saved in + vifminfo by setting ´vifminfo' option. Vifm always writes this file on + exit unless 'vifminfo' option is empty. Bookmarks, commands, directory + history, filetypes, fileviewers and registers in the file are merged + with vifm configuration (which has bigger priority). + + The $VIFM/scripts directory can contain shell scripts. vifm modifies + it's PATH environment variable to let user run those scripts without + specifying full path. All subdirectories of the $VIFM/scripts will be + added to PATH too. Script in a subdirectory overlaps script with the + same name in all its parent directories. + + The $VIFM/colors directory contains color schemes. + +Automatic FUSE mounts + vifm has a builtin support of automated FUSE file system mounts. It is + implemented using file associations mechanism. To enable automated + mounts, one needs to use a specially formated program line in filetype + or filextype commands. Currently two formats are supported: + + 1) FUSE_MOUNT This format should be used in case when all information + needed for mounting all files of a particular type is the same. E.g. + mounting of tar files don't require any file specific options. + + Format line: + FUSE_MOUNT|mounter %SOURCE_FILE %DESTINATION_DIR [%CLEAR] + + Example filetype command: + :filetype FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR + + 2) FUSE_MOUNT2 This format allows one to use specially formatted files + to perform mounting and is useful for mounting remotes, for example + remote file systems over ftp or ssh. + + Format line: + FUSE_MOUNT2|mounter %PARAM %DESTINATION_DIR [%CLEAR] + + Example filetype command: + :filetype FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR + + Example file content: + root@127.0.0.1:/ + + All % macros are expanded by vifm at runtime and have the following + meaning: + - %SOURCE_FILE is replaced by full path to selected file + - %DESTINATION_DIR is replaced by full path to mount directory, which + is created by vifm basing on the value of 'fusehome' option. + - %PARAM value is filled from the first line of file (whole line), + though in the future it can be changed to whole file content + - %CLEAR means that you want to clear screen before running mount + command. + + %CLEAR is an optional macro. Other macros are not mandatory, but mount + commands likely won't work without them. + + The mounted FUSE file systems will be automatically unmounted in two + cases: + + - when vifm quits (with ZZ, :q, etc. or when killed by signal) + + - when you explicitly leave mount point going up to its parent direc‐ + tory (with h, Enter on "../" or ":cd ..") and other pane is not in + the same directory or its child directories. + +View look + vifm supports displaying of file list view in two different ways: + + - in a table mode, when multiple columns can be set using 'viewcolumns' + option (see Column view section below for details); + + - in a multicolumn list manner which looks almost like `ls -x` command + output (see ls-like view section below for details). + + The look is local for each view and can be chosen by changing value of + the ´lsview' boolean option. + + Depending on view look some of keys change their meaning to allow more + natural cursor moving. This concerns mainly h, j, k, l and other simi‐ + lar navigation keys. + + Also some of options can be ignored if they don't affect view display‐ + ing in selected look. For example value of 'viewcolumns' when 'lsview' + is set. + +ls-like view + When this view look is enabled by setting 'lsview' option on, vifm will + display files in multiple columns. Number of columns depends on the + length of the longest file name present in current directory of the + view. Whole file list is automatically reflowed on directory change, + terminal or view resize. + + View looks close to output of `ls -x` command, so files are listed left + to right in rows. + + In this mode file manipulation commands (e.g. d) don't work line-wise + like they do in Vim, since such operations would be uncommon for file + manipulating tasks. Thus, for example, dd will remove only current + file. + +Column view + View columns are described by a comma-separated list of column descrip‐ + tions, each of which has the following format + [ '-' ] [ fw ( [ '.' tw ] | '%' ) ] '{' type '}' '.'{0,3} + where fw stands for full width and tw stands for text width. + + So it basically consists of four parts: + 1. Optional alignment specifier + 2. Optional width specifier + 3. Mandatory column name + 4. Optional cropping specifier + + Alignment specifier + + It's an optional minus sign as the first symbol of the string. + + Specifies type of text alignment within a column. Two types are sup‐ + ported: + + - left align + set viewcolumns=-{name} + + - right align (default) + set viewcolumns={name} + + Width specifier + + It's a number followed by a percent sign, two numbers (second one + should be less than or equal to the first one) separated with a dot or + a single number. + + Specifies column width and its units. There are tree size types: + + - absolute size - column width is specified in characters + set viewcolumns=-100{name},20.15{ext} + results in two columns with lengths of 100 and 20 and a reserved + space of five characters on the left of second column. + + - relative (percent) size - column width is specified in percents of + view width + set viewcolumns=-80%{name},15%{ext},5%{mtime} + results in three columns with lengths of 80/100, 15/100 and 5/100 of + view width. + + - auto size (default) - column width is automatically determined + set viewcolumns=-{name},{ext},{mtime} + results in three columns with length of one third of view width. + There is no size adjustment to content, since it will slow down ren‐ + dering. + + Columns of different sizing types can be freely mixed in one view. + Though sometimes some of columns can be seen partly or be completely + invisible if there is not enough space to display them. + + Column name + + This is just a sort key surrounded with curly braces, e.g. + {name},{ext},{mtime} + {name} and {iname} keys are the same and present both for consistency + with ´sort' option. + + Empty curly braces ({}) are replaced with the default secondary column + for primary sort key. So after the next command view will be displayed + almost as if 'viewcolumns' is empty, but adding ellipsis for long file + names: + set viewcolumns=-{name}..,6{}. + + Cropping specifier + + It's from one to three dots after closing curly brace in column format. + + Specifies type of text truncation if it doesn't fix in the column. Cur‐ + rently tree types are supported: + + - truncation - text is truncated + set viewcolumns=-{name}. + results in truncation of names that are too long too fit in the view. + + - adding of ellipsis - ellipsis on the left or right are added when + needed + set viewcolumns=-{name}.. + results in that ellipsis are added at the end of too long file names. + + - none (default) - text can pass column boundaries + set viewcolumns=-{name}...,{ext} + results in that long file names can partially be written on the ext + column. + +Color schemes + The color schemes in vifm can be applied in two different ways: + + - as the default (or main) color scheme + + - as local to a panel color scheme + + Both types are set using |vifm-:colorscheme| command, but of different + forms: + + - :colorscheme color_scheme_name - for the default color scheme + + - :colorscheme color_scheme_name directory - for local color schemes + + Look of different parts of the TUI (Text User Interface) is determined + in this way: + + - Border, TopLineSel, TopLine, CmdLine, ErrorMsg, StatusLine and Wild‐ + Menu are always determined by the default color scheme + + - CurrLine, Selected, Directory, Link, BrokenLink, Socket, Device, Exe‐ + cutable, Fifo and Win are determined by default color scheme and a + set of local colorschemes, which can be empty + + There might be a set of local color schemes because they are structured + hierarchically according to file system structure. For example, having + the following piece of file system: + + ~ + `-- bin + | + `-- my + + Two color schemes: + + # ~/.vifm/colors/for_bin + highlight Win cterm=none ctermfg=white ctermbg=red + highlight CurrLine cterm=none ctermfg=red ctermbg=black + + # ~/.vifm/colors/for_bin_my + highlight CurrLine cterm=none ctermfg=green ctermbg=black + + And these three commands in the vifmrc file: + + colorscheme Default + colorscheme for_bin ~/bin + colorscheme for_bin_my ~/bin/my + + File list will look in the following way for each level: + + - ~/ - Default color scheme + black background + cursor with blue background + + - ~/bin/ - mix of Default and for_bin color schemes + red background + cursor with black background and red foreground + + - ~/bin/my/ - mix of Default, for_bin and for_bin_my color schemes + red background + cursor with black background and green foreground + +Trash directory + vifm has support of trash directory, which is used as temporary storage + for deleted files or files that were cut. Using trash is controlled by + the ´trash' option, and exact path to the trash can be set with + 'trashdir' option. Trash directory in vifm differs from the system- + wide one by default, because of possible incompatibilities of storing + deleted files among different file managers. But one can set + 'trashdir' to "~/.local/share/Trash" to use a "standard" trash direc‐ + tory. + + There are two scenarios of using trash in vifm: + + 1. As a place for storing files that were cut by "d" and may be + inserted to some other place in file system. + + 2. As a storage of files, that are deleted but not purged yet. + + The first scenario uses deletion ("d") operations to put files to trash + and put ("p") operations to restore files from trash directory. Note + that such operations move files to and from trash directory, which can + be long term operations in case of different partitions or remote + drives mounted locally. + + The second scenario uses deletion ("d") operations for moving files to + trash directory and :empty command-line command to purge all previously + deleted files. + + Deletion and put operations depend on registers, which can point to + files in trash directory. Normally, there are no nonexistent files in + registers, but vifm doesn't keep track of modifications under trash + directory, so one shouldn't expect value of registers to be absolutely + correct if trash directory was modified not by operation that are meant + for it. But this won't lead to any issues with operations, since they + ignore nonexistent files. + +Client-Server + vifm supports remote execution of command-line mode commands as well as + remote changing of directories. This is possible using --remote com‐ + mand-line argument. + + To execute a command remotely combine --remote argument with -c <com‐ + mand> or +<command>. For example: + vifm --remote -c 'cd /' + vifm --remote '+cd /' + + To change directory not using command-line mode commands one can spec‐ + ify paths right after --remote argument, like this: + vifm --remote / + vifm --remote ~ + vifm --remote /usr/bin /tmp + + At the moment there is no way of specifying, which instance of vifm + should arguments be sent. The main purpose of --remote argument is to + provide support of using vifm as a single-instance application. + +Plugin + Plugin for using vifm in vim as a file selector. + + Commands: + + :EditVifm select a file or files to open in the current buffer. + :SplitVifm split buffer and select a file or files to open. + :VsplitVifm vertically split buffer and select a file or files to + open. + :DiffVifm select a file or files to compare to the current file + with + :vert diffsplit. + :TabVifm select a file or files to open in tabs. + + Each command accepts up to two arguments: left pane directory and right + pane directory. After arguments are checked, vifm process is spawned + in a special "file-picker" mode. To pick files just open them either + by pressing l, i or Enter keys, or by running :edit command. If no + files are selected, file under the cursor is opened, otherwise whole + selection is passed to the plugin and opened in vim. + + The plugin have only two settings. It's a string variable named + g:vifm_term to let user specify command to run gui terminal. By + default it's equal to ´xterm -e'. And another string variable named + g:vifm_exec, which equals "vifm" by default and specifies path to + vifm's executable. To pass arguments to vifm use g:vifm_exec_args, + which is empty by default. + + To use the plugin copy the vifm.vim file to either the system wide + vim/plugin directory or into ~/.vim/plugin. + + If you would prefer not to use the plugin and it is in the system wide + plugin directory add + + let loaded_vifm=1 + + to your ~/.vimrc file. + +Reserved + The following command names are reserved and shouldn't be used for user + commands. + + g[lobal] + v[global] + +SEE ALSO + Website: http://vifm.sourceforge.net/ + + Esperanto translation of the documentation by Sebastian Cyprych: + http://cyprych.neostrada.pl/tekstoj/komputiloj/vifm-help.eo.html + +AUTHOR + Vifm was written by ksteen <ksteen@users.sourceforge.net> + And currently is developed by xaizek <xaizek@openmailbox.org> + + + + Oct 19, 2013 vifm(1) diff --git a/.vifm/vifmrc b/.vifm/vifmrc new file mode 100644 index 0000000..3b4a1be --- /dev/null +++ b/.vifm/vifmrc @@ -0,0 +1,314 @@ +"" +"" ~/.vifm/vifmrc +"" +"" Weitian LI <liweitianux@gmail.com> +"" 2014/05/12 +"" + +""" general settings {{{ +" This is the actual command used to start vi. The default is vim. +" If you would like to use another vi clone such Elvis or Vile +" you will need to change this setting. +set vicmd=vim +" set vicmd=elvis\ -G\ termcap +" set vicmd=vile + +" Trash Directory +" The default is to move files that are deleted with dd or :d to +" the trash directory. If you change this you will not be able to move +" files by deleting them and then using p to put the file in the new location. +" I recommend not changing this until you are familiar with vifm. +" This probably shouldn't be an option. +set trash + +" This is how many directories to store in the directory history. +set history=100 + +" Follow links on l or Enter. +set followlinks + +" With this option turned on you can run partially entered commands with +" unambiguous beginning using :! (e.g. :!Te instead of :!Terminal or :!Te<tab>). +set fastrun + +" Natural sort of (version) numbers within text. +set sortnumbers + +" Maximum number of changes that can be undone. +set undolevels=100 + +" If you installed the vifm.txt help file set vimhelp. +" If would rather use a plain text help file set novimhelp. +set novimhelp + +" If you would like to run an executable file when you +" press return on the file name set this. +set norunexec + +" Use KiB, MiB, ... instead of KB, MB, ... +set iec + +" Selected color scheme +"colorscheme Default +colorscheme alycolors + +" The FUSE_HOME directory will be used as a root dir for all FUSE mounts. +" Unless it exists with write/exec permissions set, vifm will attempt to +" create it. +set fusehome=/tmp/vifm_FUSE + +" Format for displaying time in file list. For example: +" TIME_STAMP_FORMAT=%m/%d-%H:%M +" See man date or man strftime for details. +set timefmt=%m/%d\ %H:%M + +" Show list of matches on tab complition in command-line mode +set wildmenu + +" Ignore case search unless it contains at least one uppercase letter +set ignorecase +set smartcase + +" Use increment searching (search while typing) +set incsearch + +" Don't highlight search results automatically +"set nohlsearch + +" Try to leave some space from cursor to upper/lower border in lists +set scrolloff=4 + +" Don't do to much requests to slow file systems +set slowfs=curlftpfs + +" Set custom status line look +set statusline=" %t%= %A %10u:%-7g %15s %20d " + +" What should be saved automatically between vifm runs +" Like in previous versions of vifm +" set vifminfo=options,filetypes,commands,bookmarks,dhistory,state,cs +" Like in vi +set vifminfo=dhistory,savedirs,chistory,state,tui,shistory, + \phistory,fhistory,dirstack,registers,bookmarks +""" settings }}} + +""" marks {{{ +" :mark mark /full/directory/path [filename] +mark h ~/ +mark b ~/bin/ +mark d ~/documents/ +mark m ~/music/ +mark o ~/office/ +mark p ~/pictures/ +mark u ~/unix/ +mark x ~/private/ +""" marks }}} + +""" mappings {{{ +" to speed up +nmap ; : + +nmap s :shell<cr> +nmap S :sort<cr> +nmap w :view<cr> +nmap o :!gvim --remote-tab-silent %f<cr> +nmap O :!gvim %f<cr> +" open file in the background using its default program +nmap gb :file &<cr>l + +" Yank current directory path into the clipboard +nmap yd :!echo %d | xclip %i<cr> + +" Yank current file path into the clipboard +nmap yf :!echo %c:p | xclip %i<cr> + +" Mappings for faster renaming +nmap I cw<c-a> +nmap cc cw<c-u> +nmap A cw<c-w> + +" Opening console in current directory +nmap ,t :!xterm &<cr> + +" Opening vim to edit .vifmrc +nmap ,c :execute ':!vim $MYVIFMRC' | restart<cr> +" Opening gvim to edit .vifmrc +nmap ,C :!gvim --remote-tab-silent $MYVIFMRC &<cr> + +" Toggle wrap setting on ,w key +nmap ,w :set wrap!<cr> + +nmap <f3> :!less %f<cr> +nmap <f4> :edit<cr> +nmap <f5> :copy<cr> +nmap <f6> :move<cr> +nmap <f7> :mkdir<space> +nmap <f8> :delete<cr> +""" mappings }}} + +""" command {{{ +" :com[mand] command_name action +" The following macros can be used in a command +" %a is replaced with the user arguments. +" %c the current file under the cursor. +" %C the current file under the cursor in the other directory. +" %f the current selected file, or files. +" %F the current selected file, or files in the other directory. +" %b same as %f %F. +" %d the current directory name. +" %D the other window directory name. +" %m run the command in a menu window +command df df -h %m 2> /dev/null +command diff vim -d %f %F +command zip zip -r %f.zip %f +command run !! ./%f +command make !!make +command vgrep vim "+grep %a" +""" command }}} + +""" filetype & fileview {{{ +" The file type is for the default programs to be used with +" a file extension. +" :filetype pattern1,pattern2 [{desc}]defaultprogram[ &],[{desc}]program2 +" :fileviewer pattern1,pattern2 consoleviewer +" The other programs for the file type can be accessed with the :file command +" The command macros %f, %F, %d, %F may be used in the commands. +" The % macro is ignored. To use a % you must put %%. + +" For automated FUSE mounts, you must register an extension with :file[x]type +" in one of following formats: +" +" :filetype extensions FUSE_MOUNT|some_mount_command using %SOURCE_FILE and %DESTINATION_DIR variables +" %SOURCE_FILE and %DESTINATION_DIR are filled in by vifm at runtime. +" A sample line might look like this: +" :filetype *.zip,*.jar,*.war,*.ear FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR +" +" :filetype extensions FUSE_MOUNT2|some_mount_command using %PARAM and %DESTINATION_DIR variables +" %PARAM and %DESTINATION_DIR are filled in by vifm at runtime. +" A sample line might look like this: +" :filetype *.ssh FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR +" %PARAM value is filled from the first line of file (whole line). +" Example first line for SshMount filetype: root@127.0.0.1:/ +" +" You can also add %CLEAR if you want to clear screen before running FUSE +" program. + +" Pdf +filetype *.pdf zathura %f,apvlv %f,xpdf %f +fileview *.pdf pdftotext -nopgbrk %c - + +" PostScript +filextype *.ps,*.ps.gz gv %c %i & + +" Djvu +filextype *.djvu apvlv %f + +" Audio +filetype *.wav,*.mp3,*.flac,*.ogg,*.m4a + \ {Play using ffplay} + \ ffplay %c, + \ {Play using MPlayer} + \ mplayer %f, +fileviewer *.mp3 mp3info + +" Video +filextype *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.vob,*.flv + \ {View using ffplay} + \ ffplay -fs %c, + \ {View using Dragon} + \ dragon %f, + \ {View using mplayer} + \ mplayer %f, +fileviewer *.avi,*.mp4,*.wmv,*.dat,*.3gp,*.ogv,*.mkv,*.mpg,*.vob + \ ffprobe -pretty %c 2>&1 + +" Web +filetype *.html,*.htm links,mozilla,uzbl-browser %f %i & + +" Object +filetype *.o nm %f | less + +" Image +filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm + \ {View in feh} + \ feh -FZ %d --start-at %d/%c 2>/dev/null &, + \ {View in sxiv} + \ sxiv, + \ {View in gpicview} + \ gpicview %c, +fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm + \ convert -identify %f -verbose /dev/null + +" MD5 +filetype *.md5 + \ {Check MD5 hash sum} + \ md5sum -c %f, + +" FuseZipMount +filetype *.zip,*.jar,*.war,*.ear + \ {Mount with fuse-zip} + \ FUSE_MOUNT|fuse-zip %SOURCE_FILE %DESTINATION_DIR, + \ {View contents} + \ zip -sf %c | less, + \ tar -xf %c, +fileviewer *.zip,*.jar,*.war,*.ear zip -sf %c + +" ArchiveMount +filetype *.tar.bz2,*.tbz2,*.tgz,*.tar.gz + \ {Mount with archivemount} + \ FUSE_MOUNT|archivemount %SOURCE_FILE %DESTINATION_DIR, +fileviewer *.tgz,*.tar.gz tar -tzf %c +fileviewer *.tar.bz2,*.tbz2 tar -tjf %c + +" Rar2FsMount +filetype *.rar + \ {Mount with rar2fs} + \ FUSE_MOUNT|rar2fs %SOURCE_FILE %DESTINATION_DIR, + +" IsoMount +filetype *.iso + \ {Mount with fuseiso} + \ FUSE_MOUNT|fuseiso %SOURCE_FILE %DESTINATION_DIR, + +" SshMount +filetype *.ssh + \ {Mount with sshfs} + \ FUSE_MOUNT2|sshfs %PARAM %DESTINATION_DIR, + +" FtpMount +filetype *.ftp + \ {Mount with curlftpfs} + \ FUSE_MOUNT2|curlftpfs -o ftp_port=-,,disable_eprt %PARAM %DESTINATION_DIR, + +" Fuse7z +filetype *.7z + \ {Mount with fuse-7z} + \ FUSE_MOUNT|fuse-7z %SOURCE_FILE %DESTINATION_DIR, + +" Office files +filextype *.doc,*.docx,*.xls,*.xlsx libreoffice %f & +fileview *.docx, docx2txt.pl %f - + +" Qt projects +filextype *.pro qtcreator %f & + +" Directories +filextype */ + \ {View in thunar} + \ Thunar %f &, +fileview .*/,*/ tree %f + +" Open all other files with default system programs (you can also remove all +" :file[x]type commands above to ensure they don't interfere with system-wide +" settings). By default all unknown files are opened with 'vi[x]cmd' +" uncommenting one of lines below will result in ignoring 'vi[x]cmd' option +" for unknown file types. +" For *nix: +" filetype * xdg-open +" For OS X: +" filetype * open +" For Windows: +" filetype * start, explorer +""" filetype & fileview }}} + +" vim: set ts=8 sw=4 tw=78 fenc=utf-8 ft=vifm: " |