Vifm v0.8 beta June 19, 2015

removing options , filetypes , commands from 'vifminfo' option (not a big deal, but it's not really useful as well, and maybe potentially harmful);

, , from option (not a big deal, but it's not really useful as well, and maybe potentially harmful); removing 'trash' option as it effectively affects quite a lot things and is better to be enabled;

option as it effectively affects quite a lot things and is better to be enabled; have 'hlsearch' off by default as normally search doesn't select anything and user can accidentally run some operation on too many files with default setup.

Main changes

Added filename specific highlight.

Added custom views, which contrary to regular views can contain files that do not belong to the same directory.

Added job bar to display active backgrounded file operations.

Added command-line mode abbreviations.

Added global configuration and color schemes directory.

Added live search match highlighting.

Added optional per-file progress for file operations.

Added full path patterns ( {{globs}} and //regexp// ).

and ). Added command-line options to control file/directory selection and selection processing to make it easier to use vifm as a file picker.

Color schemes got ".vifm" extension, but the old-style names will still work for now.

XDG specification support.

More detailed list of changes... Added per-file overwrite confirmation on directory merging (thanks to willemw12).

Added detailed list of errors when 'syscalls' is used (thanks to willemw12). Key bindings: Added F key to less-like (file view) mode, which acts similar to tail -F or F key in less (thanks to Daniel Dettlaff, a.k.a. dmilith).

key to less-like (file view) mode, which acts similar to or key in less (thanks to Daniel Dettlaff, a.k.a. dmilith). Added b key to menu mode that creates custom view filled with menu items filtering out those that are not paths.

key to menu mode that creates custom view filled with menu items filtering out those that are not paths. Added zd normal and visual modes key to exclude items from custom views.

normal and visual modes key to exclude items from custom views. Optional per-file progress in dialog mode activated by hitting i while operation is being performed. :set command and options: Added 'chaselinks' option to automatically expand all symbolic links in path of a view (might not work on Windows) (thanks to filterfalse).

option to automatically expand all symbolic links in path of a view (might not work on Windows) (thanks to filterfalse). Added 'mintimeout' option. It enables controlling responsiveness on external events by Vifm (thanks to hofheinz).

option. It enables controlling responsiveness on external events by Vifm (thanks to hofheinz). Added 'wordchars' option to specify which characters in command-line mode should be considered as part of a word (thanks to filterfalse).

option to specify which characters in command-line mode should be considered as part of a word (thanks to filterfalse). Added ^= operation for charset options.

operation for charset options. Added :redr[aw] command to force immediate redraw (thanks to filterfalse).

command to force immediate redraw (thanks to filterfalse). Added %[ and %] macros for 'statusline' / 'ruler' (thanks to ranousse).

and macros for / (thanks to ranousse). Added p to 'shortmess' option to control tilde shortening of path in view titles (thanks to Martin Fischer).

to option to control tilde shortening of path in view titles (thanks to Martin Fischer). Changed default value of 'trashdir' from $VIFM/Trash to %r/.vifm-Trash,$VIFM/Trash (thanks to Joseph LP, a.k.a. ootput).

from to (thanks to Joseph LP, a.k.a. ootput). Normalized sorting keys/view column names: type -> dir , display real mode in octal for mode , make type actually display file type (as mode did before) (thanks to Michal Belica, a.k.a. beli-sk).

-> , display real mode in octal for , make actually display file type (as did before) (thanks to Michal Belica, a.k.a. beli-sk). United last pattern of :substitute command with search history (thanks to filterfalse). Command-line mode: Added :highlight {pattern} for filename specific highlight (thanks to Ink, a.k.a. inknoir, filterfalse and Michael Maddern, a.k.a. madders).

for filename specific highlight (thanks to Ink, a.k.a. inknoir, filterfalse and Michael Maddern, a.k.a. madders). Added :cabbrev , :cnoreabbrev and :cunabbrev commands to manage command-line mode abbreviations (thanks to filterfalse).

, and commands to manage command-line mode abbreviations (thanks to filterfalse). Added Ctrl-X / (slash) key to that inserts last search pattern into current cursor position (thanks to filterfalse).

(slash) key to that inserts last search pattern into current cursor position (thanks to filterfalse). Added Ctrl-] key to trigger abbreviation expansion.

key to trigger abbreviation expansion. Added single-argument form of :file[x]type and :fileviewer commands that lists (in menu mode) currently registered patterns that match specified file name.

and commands that lists (in menu mode) currently registered patterns that match specified file name. Added :cq[uit] command to exit with non-zero exit code and also abort directory choosing (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran).

command to exit with non-zero exit code and also abort directory choosing (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran). Added :trashes? to display sizes of each non-empty trash directories (thanks to Svyatoslav Mishyn, a.k.a. juef).

to display sizes of each non-empty trash directories (thanks to Svyatoslav Mishyn, a.k.a. juef). Added regexp patterns to :file[x]type and :fileviewer commands (thanks to filterfalse).

and commands (thanks to filterfalse). Allow non-printable characters to be arguments of :commands (thanks to filterfalse).

(thanks to filterfalse). Extended :sync command to support selective synchronization (user can choose among location, cursor position, local options and filters) (thanks to filterfalse). Completion: Complete clear subcommand of :highlight . Angle bracket notation: Added <lt> ; angle bracket notation (less-than character, '<') (thanks to filterfalse).

; angle bracket notation (less-than character, '<') (thanks to filterfalse). Map <c-h> and <bs> to different key codes (thanks to fogine). This is caused by inconsistency among terminals, map to both keys and it should work everywhere. Macros: Added %px , %py , %pw and %ph macros that describe location and dimensions of preview area to use in external commands (thanks to Stephano, a.k.a. cao).

, , and macros that describe location and dimensions of preview area to use in external commands (thanks to Stephano, a.k.a. cao). Added %u and %U macros to redirect command output directly into custom view. The second one allows for more customization of file list, which is absence of sorting for now (thanks to filterfalse).

and macros to redirect command output directly into custom view. The second one allows for more customization of file list, which is absence of sorting for now (thanks to filterfalse). No more unjustified inconsistency in processing macros in :! and :file[x]type commands (thanks to Miodrag Tokić, a.k.a. loonies). Scripting: Added system() builtin function that executes command via shell and returns its output.

builtin function that executes command via shell and returns its output. Added full path patterns ( {{globs}} and //regexp// ) (thanks to astrell).

and ) (thanks to astrell). Report error on wrong expression in :if statement and misplaced :else / :endif on file sourcing. Color scheme: Added JobLine highlight group for the job bar. Configuration: Added fallback to use "XDG Base Directory Specification" when failed to find configuration in other places (thanks to Miodrag Tokić, a.k.a. loonies).

Added global configuration {prefix}/etc/vifm/vifmrc and color schemes {prefix}/etc/vifm/colors/* (thanks to astrell and Michael Vetter, a.k.a. jubalh). Performance: Significantly reduced amount of work performed by Vifm in idle state (thanks to hofheinz).

Quit fast on --help / --version (thanks to Svyatoslav Mishyn, a.k.a. juef).

/ (thanks to Svyatoslav Mishyn, a.k.a. juef). Throw away dead directories in directory histories on merging vifminfo files. Otherwise clearing such directories on :history is almost useless. Menus and dialogs: Made calculation of directory size visible in :jobs menu.

menu. Parse output of mandoc version of apropos in :apropos (thanks to Svyatoslav Mishyn, a.k.a. juef). TUI (Text User Interface): Added search match highlighting for file names (thanks to Svyatoslav Mishyn, a.k.a. juef, and willemw12).

Added job bar that displays backgrounded file operations if any (thanks to geo909).

Redraw UI on resize during file operation when 'syscalls' is set.

is set. Redraw UI on resize when dialog is active.

Dynamic dialog dimensions (minimum %30 percent of the screen rather than screen-wide all the time) (thanks to Svyatoslav Mishyn, a.k.a. juef).

Auto-resize position field on the status bar to fit the text (thanks to ranousse). Documentation: Manual page fixes/improvements (thanks to Svyatoslav Mishyn, a.k.a. juef).

Wrapped option names with single quotes in the man page to make it easier to search for options by their names. Packaging: Added one more light color scheme to assets (in two variations astrell-root and astrell-user) (thanks to astrell).

Added lookup for mandoc on *nix to perform manual page to plain text transformation (thanks to Svyatoslav Mishyn, a.k.a. juef).

Added OS X version of sample vifmrc file. Now this one will be used on first run on OS X (thanks to Larry Hynes, a.k.a. larryhynes).

Added dircolors -> vifm conversion script (thanks to Ink, a.k.a. inknoir, Hendrik Jaeger, a.k.a. henk, and Michael Maddern, a.k.a. madders).

Added ".vifm" extension to color schemes (initial rename is performed automatically) (thanks Michael Vetter, a.k.a. jubalh).

Install AUTHORS, COPYING, ChangeLog, INSTALL, NEWS, README and TODO to {prefix}/share/doc/vifm . Install color schemes to {prefix}/share/vifm/colors . Otherwise these are not available after installation.

. Install color schemes to . Otherwise these are not available after installation. Made configure script lookup curs_set in libtinfo.

in libtinfo. Moved checks for build-time tools existence from Makefile to configure script.

Made tests less dependent on environment (thanks to Hendrik Jaeger, a.k.a. henk). Only on Windows: Automatically install sample vifmrc and help file on first start.

and help file on first start. Switch to utf-8 internal representation of paths. This fixes issues when file name encoding doesn't match system encoding (thanks to Stas Panteleev). Major fixes: Fixed undesired file removal on overwriting them with themselves (data loss after confirmation of overwriting files when destination matches source) (thanks to Сергей Соловьёв (Sergej Soloviov)).

Fixed crash on navigation to end of line in command-line mode (thanks to Christian Fillion, a.k.a. cfillion).

Fixed :help (no arguments) when 'vimhelp' is on and automatically installed Vim documentation is used (thanks to ranousse).

(no arguments) when is on and automatically installed Vim documentation is used (thanks to ranousse). Better handling of case related operations.

Fixed :vs .. which used to use wrong base directory.

which used to use wrong base directory. Fixed assertion on including type in 'viewcolumns' value (thanks to Michal Belica, a.k.a. beli-sk).

in value (thanks to Michal Belica, a.k.a. beli-sk). Better FUSE handling on OS X (thanks to Michael Maddern, a.k.a. madders). Vim-plugin: Added K mapping to Vim plugin (quick navigation to documentation, e.g. from vifmrc ). Patch by filterfalse. Other changes: Added --delimiter command-line option. Configures delimiter string on writing out list of paths (like on -f switch) (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran).

command-line option. Configures delimiter string on writing out list of paths (like on switch) (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran). Added --choose-files and --choose-dir command-line switches to specify output location for names of selected files or last visited directory respectively (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran).

and command-line switches to specify output location for names of selected files or last visited directory respectively (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran). Added --on-choose command-line switch to execute a command on selection rather than opening it (thanks to Ross Hadden, a.k.a. rosshadden).

command-line switch to execute a command on selection rather than opening it (thanks to Ross Hadden, a.k.a. rosshadden). Added %FOREGROUND FUSE mounting option, which supersedes %CLEAR and fixes issue with passing input to FUSE mounter (thanks to Johannes, a.k.a. johannesmeng).

FUSE mounting option, which supersedes and fixes issue with passing input to FUSE mounter (thanks to Johannes, a.k.a. johannesmeng). Removed per-view last search pattern. Don't worry, you probably won't even notice it: this doesn't affect regular use case, rather more exotic one, which is hard to notice.

Handle commands that are too long to be passed directly to the shell by breaking them into list of arguments if possible (thanks to filterfalse).

Better handling or unexpectedly unavailable directories on startup and while running (thanks to willemw12).

Define $VIFM_FUSE_FILE environment variable for external commands to communicate path to file used to initiate FUSE mounting of directory we're in (thanks to astrell).

environment variable for external commands to communicate path to file used to initiate FUSE mounting of directory we're in (thanks to astrell). Allowed having multiple file viewers with same rules for choosing them at run-time as for file associations (thanks to filterfalse).

Redirect both standard output and error streams from viewers (already was the case for Windows). See change log for full list of changes and by whom they were suggested. File operations:Key bindings::set command and options:Command-line mode:Completion:Angle bracket notation:Macros:Scripting:Color scheme:Configuration:Performance:Menus and dialogs:TUI (Text User Interface):Documentation:Packaging:Only on Windows:Major fixes:Vim-plugin:Other changes:See change log for full list of changes and by whom they were suggested.

Download links

New version brings several useful improvements of different kinds. The most substantial addition is custom views that allow one to combine files from several directories in one view, which in turn enables processing of search/grep/etc. results similar to handling contents of a regular directory.That change alone affected internal structure quite seriously which combined with operations on system calls from the previous release distant new version far enough from 0.7 to name it 0.8.Version change also gives one a moral right to introduce incompatible changes. So if anyone remembers me postponing changing defaults or something like that and is still waiting on it, please send a reminder (unfortunately I was careless enough to didn't make detailed list of such things). As of now the following items are under evaluation:Please see the README file in packages for links where feedback can be provided.The beta stage will last about two weeks. In case any serious bugs are found during this period, another beta version might be released.