Vifm v0.9.1February 5, 2018

This version adds to the list of ways for viewing files by introducing miller columns view and transposed ls-like view (grid view). Other developments are related to integration between builtin features as well as with external applications.

Thanks to everyone who tried out the beta.

Main changes
  • Introduced file view mode known as miller columns or cascading lists, which can be enabled via 'millerview' and configured with 'milleroptions'.
  • Added ability to transpose ls-like view to make it fill by columns, see new 'lsoptions' option.
  • More natural behaviour of movement keys in ls-like view.
  • New --remote-expr command-line option that can be used to query state of running instances.
  • Extended retry/ignore/abort query of 'syscalls' to all file operations.
  • More control over highlight groups via :highlight suitable for interactive changes.
  • Mostly eliminated the need for repeating ga/gA commands through automatic size recalculation.
Demonstration of new features... Hover mouse and wait a bit to start animations.

Miller mode with three columns


Miller mode with two columns and parent change keys


Transposed ls-like view


Querying state of a remote instance


Automatic size recalculation

More detailed list of changes... File operations:
  • Added retry/ignore/abort prompt for file copying and directory/file/symlink creation when 'syscalls' is on (thanks to einhander).
  • Better detection of write errors on file copying. The error was reported, but it wasn't treated as a hard error in a specific case related to caching.
Command-line mode:
  • Added :histnext/:histprev commands, which are analogous to Ctrl-I/Ctrl-O (patch by Dmitry Frank, a.k.a. dimonomid).
  • Added ability to remove filename-specific highlighting rules with :highlight clear {pattern} (thanks to aleksejrs).
  • Changed :filter command to accept pattern (//, ////, {} or {{}}) (thanks to rbong).
  • Made :siblnext and :siblprev commands respect dot and name filters.
  • Made :siblnext and :siblprev accept [count] range (thanks to filterfalse).
  • Made :tree pick up list of files from custom view (thanks to filterfalse).
  • Made :highlight update file-specific group on exact match of the pattern instead of appending new rule (thanks to aleksejrs).
  • Remove empty directories which are specified in 'trashdir' with %r and/or %u automatically on :empty (thanks to Marcin Kurczewski, a.k.a. rr-).
:set command and options:
  • Added "inode" sorting key, which sorts entries by inode number (thanks to eco0414).
  • Added 'millerview' option that enables cascading columns interface for the view (thanks to sudo-nice).
  • Added 'milleroptions' option that configures miller view.
  • Added 'lsoptions' option that allows to get transposed grid in ls-like view (thanks to Dmitry Frank, a.k.a. dimonomid).
  • Added 'previewprg' option, which can be used to override :fileviewer commands either temporarily or permanently (thanks to svenn71).
  • Added {root} key to 'viewcolumns' option (complements {ext}) (thanks to Oleg Gordienko, a.k.a. gordio).
  • Added "u" flag to the 'tuioptions' option. It enables use of Unicode characters in the TUI (Unicode ellipsis instead of "...") (thanks to Oleg Gordienko, a.k.a. gordio).
  • Added "foldsubkeys" value to the 'suggestoptions' option. It folds multiple suggestions with common prefix into one entry (thanks to AndreaHasani).
Normal and visual modes:
  • Added [r/]r/[R/]R normal mode shortcuts that map to :siblprev and :siblnext with and without wrapping correspondingly (thanks to filterfalse).
  • Do not go to start of line on Ctrl-U/Ctrl-D/Ctrl-F/Ctrl-B/G in ls-like view.
  • H/M/L keys in ls-like view now account for columns.
  • Instead of invalidating directory size previously calculated via ga/gA on detecting changes in the directory recalculate its size and propagate update through its parents (thanks to filterfalse).
Macros:
  • Added %x macro to 'rulerformat' (and thus to 'statusline') as a new name for %-, which conflicts with alignment specification and requires explicit width specifier (%0-) (thanks to Marcos Cruz).
Scripting:
  • Added term() builtin function, which differs from system() only by its ability to run interactive applications without confusing vifm's interactions with the terminal (thanks to Dmitry Frank, a.k.a. dimonomid).
  • Added v:count and v:count1 builtin variables. They are assigned to count passed to : command.
  • Don't trigger DirEnter event with previous directory on startup when list of files is specified on stdin (thanks to filterfalse).
Invocation:
  • Added --remote-expr command-line option, which gives ability to query state of an instance (thanks to Marcin Kurczewski, a.k.a. rr-).
Completion:
  • Added completion of filename-specific highlight groups for :highlight command.
Color schemes:
  • Added AuxWin highlight group for highlighting auxiliary parts of windows.
TUI (Text User Interface):
  • Extend width of the cursor in ls-like view to the width of the cell (thanks to Dmitry Frank, a.k.a. dimonomid).
  • Indicate preview created with %q with "Command: cmd".
  • Duplicate status bar error in dialog that reports sourcing error.
Performance:
  • Improved performance of mime-type detection when using libmagic (now might be about seven times faster by avoiding reinitialization of the library).
  • Don't force file list reload after :! and rely on change detection. This should result in somewhat better performance (thanks to opennota).
Documentation:
  • Documented more details about 'vicmd' and 'vixcmd' options (thanks to Sebastian Cyprych).
Vim-plugin:
  • Disabled spell checking of vifm files in Vim except for comments.
Only on Windows:
  • Fixed running commands with arguments on Windows when 'shell' isn't cmd.exe.
Important fixes:
  • Fixed consuming 100% of CPU on certain pattern of running background processes (thanks to petRUShka).
  • Fixed turning quickview into explore view when preview command doesn't contain macros. Was broken since 0.8.
  • Fixed the plugin in neovim (patch by John Shea, a.k.a. coachshea).
  • Fixed cloning of files like .name to produce .name(1) instead of (1).name (thanks to filterfalse).
  • Fixed directory size in statusline (patch by Dmitry Frank, a.k.a. dimonomid).
  • Fixed CWD of the process not matching current view after vifm picked up change in file system (patch by Daniel Mueller).
  • Fixed :normal command resetting selection (thanks to filterfalse).
  • Fixed stopping of put operation after copying symbolic link that's broken on destination (thanks to filterfalse).
  • Fixed a "race" with file system when we could load outdated file list and thus miss some file system updates.
  • Fixed reported free space on *nix (make it consistent with what 'df' reports) (patch by Dmitry Frank, a.k.a. dimonomid).
See change log for the full list.
Download links
Source Code
vifm-0.9.1.tar.bz2

(signature)
MD5b3293b1b6fdd14bc2fcab61fdbbd0d05
SHA1b8f0d4a4fdc51ac9e569a5aa11a266414dd034df
RIPEMD1608aa4632177f012131e0de257ffa773850fa01449
Win32 Binaries
vifm-w32-0.9.1-binary.zip

(signature)
MD57879bb4f42312319b0dc3fc07d2e5739
SHA11fd0e332ecf47d6fb25750487e727cbef5099b35
RIPEMD16042954458fa1ff2b992c1c4567bb280d5801486aa
Win32 Single-Executable Binaries
vifm-w32-se-0.9.1-binary.zip

(signature)
MD5fe60d250f104c602e7e85e8af8000539
SHA190b8747ee370510c2a7ddf38c2bb4f9fd42f5795
RIPEMD1605915cfedcfc3d584f5c04ae2e8d55d7d11e8fad2
Win64 Single-Executable Binaries
vifm-w64-se-0.9.1-binary.zip

(signature)
MD5e2f88fa7b3c87f95466cc21f3156421d
SHA1074a545b38badd2bbef1ad75f631d7e5aa370cd0
RIPEMD1606f8148daf4afbcb38fa42a99cd986ee547175a85