Vifm v0.8July 09, 2015
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.
Thanks to everyone who was reporting issues during beta period.
Main changes
- Added filename specific highlight (with a script to convert ls
options).
- 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//
).
- 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.
- Ability to use terminal applications to preview graphics (e.g.
w3mimgdisplay
).
Demonstration of new features...
More detailed list of changes...
File operations:
- 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).
- Added b 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.
- 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).
- Added
'mintimeout'
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).
- Added
^=
operation for charset options.
- Added
%[
and %]
macros for 'statusline'
/'ruler'
(thanks to ranousse).
- Added
p
to 'shortmess'
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).
- 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).
- 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).
- Added
:cabbrev
, :cnoreabbrev
and :cunabbrev
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).
- Added Ctrl-] 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.
- Added
:cq[uit]
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).
- Added regexp patterns to
:file[x]type
and :fileviewer
commands (thanks to filterfalse).
- Added
:redr[aw]
command to force immediate redraw (thanks to filterfalse).
- Allow non-printable characters to be arguments of
:commands
(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).
- 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).
- 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).
- 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.
- Added full path patterns (
{{globs}}
and //regexp//
) (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).
- Throw away dead directories in directory histories on merging
vifminfo
files. Otherwise clearing such directories on :history
is almost useless.
Menus and dialogs:
- Added handling of Ctrl-L to sort dialog (thanks to filterfalse).
- Added device id (major and minor numbers) to file info dialog.
- Made calculation of directory size visible in
:jobs
menu.
- Parse output of mandoc version of apropos in
:apropos
(thanks to Svyatoslav Mishyn, a.k.a. juef).
- Display RFC 2822 date without time zone in file info (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.
- 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).
- Append unused space in view columns to the last one with percent sizing type if any (thanks to fogine).
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).
- Added script to update timestamps, so that build system won't be regenerated without real reason. One might want to run it when building from git checkout, which doesn't preserve correct timestamps.
- 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.
- Made configure script lookup
curs_set
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.
- Switch to utf-8 internal representation of paths. This fixes issues when file name encoding doesn't match system encoding (thanks to Stas Panteleev).
Important 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).
- Better handling of case related operations.
- Fixed
:vs ..
which used to use wrong base directory.
- Fixed assertion on including
type
in 'viewcolumns'
value (thanks to Michal Belica, a.k.a. beli-sk).
- Better FUSE handling on OS X (thanks to Michael Maddern, a.k.a. madders).
- Fixed (deep) directory merging (thanks to willemw12).
- Fixed build and work on OpenBSD (at least to some degree that curses implementation there allows). There might be some troubles with non-ascii characters (thanks to hofheinz and Brian Callahan, a.k.a. ibara).
- Fixed copying of fifo, socket and device files with 'syscalls' enabled. Thanks to Svyatoslav Mishyn (a.k.a. juef).
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).
- 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).
- Added
--on-choose
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).
- 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).
- 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.
Download links