Vifm v0.8.2July 16, 2016

This release brings a bit of user-friendliness in form of key suggestions and various descriptions provided in the interface. Matching of files has been extended in many ways and become significantly more powerful than before. Menu mode also got several enhancements.

Not sure if it was noticed, but HTTPS protocol is up for related sites since Let's Encrypt started their beta. Everything works fine, so all the links were updated to https protocol.

If you ever wondered which keys are builtin for the command (normal) mode of Vifm, this cheatsheet will show you.

In case you're into using neovim, you might be interesting in checking out alternative Vifm plugin for it.

Thanks to everyone who found the time to try beta version.

Main changes
  • Key suggestions in the interface on ambiguous input (e.g. g).
  • Helpful shortcuts for dialogs (for sort dialog in particular).
  • Key descriptions in :map menus and %z macro for 'statusline' to display some tips.
  • Description of all :commands, 'options' and their values for new multiline version of wildmenu.
  • ANDing, ORing and negating patterns for matching files and new mime-type matcher.
  • File prefixes and suffixes can now be multi-byte, which with extended 'classify' option allows specifying "icons" via custom fonts.
  • Search result highlighting, enabled completion and a way to export the list for menus.
  • An indication of pattern correctness and match state for interactive prompts.
  • :select and :unselect commands to perform automatic file selection (possibly by using output of external application).
  • Cancellation (handling of Ctrl-C) for quick view and view mode loading.
Demonstration of new features... Hover mouse and wait a bit to start animations.

Key suggestions


Quick sort shortcuts


Key descriptions


Wild popup completion


Mime-type matching


"Icons" for files


Searching and completing in menus


Interactive pattern feedback


File [un]selection

More detailed list of changes... Core:
  • Added heuristic that uses null byte as separator for file lists if there is at least one such byte, otherwise normal line separators are used. This affects :[un]select, vifm -, %u, %U, %m and %M (thanks to filterfalse).
  • Changed order of initialization to perform autocommands before startup commands on launch.
Normal and visual modes:
  • Changed ga/gA effect on parent entry (..) to calculate size of current directory (thanks to aleksejrs).
:set command and options:
  • Added 'wildstyle' option to control the way wild menu is displayed. Enables displaying it as a menu with one item per line (thanks to santhoshr and octos).
  • Added 'suggestoptions' option to control displaying of suggestions.
  • Added support of patterns to 'classify' option, so that files can now be decorated based on their names (thanks to elricbk).
  • Added 'cvoptions' option to control when entering/leaving custom views is considered to be equal to entering/leaving directories (thanks to filterfalse).
  • Added "target" sorting key, which sorts files by symbolic link targets (thanks to Marcos Cruz).
  • Added %z 'statusline' macro that inserts text of a short tip picked at random (thanks to qinghao, a.k.a. haobug).
  • Changed type of 'confirm' option. Now it's a set that picks which operations should be confirmed (thanks to Losiara and mvucBmM0).
  • Allow suffixes and prefixes in 'classify' to be of up to eight characters in length (thanks to elricbk).
Command-line mode:
  • Added "filelist" parameter to :sync! that enables synchronization of custom view (thanks to filterfalse).
  • Added :select and :unselect commands (thanks to filterfalse, Russell Urquhart and Marcos Cruz).
  • Added negation to patterns with explicitly specified type (surrounded by {} or //). Put exclamation mark to invert pattern match (thanks to Marcos Cruz).
  • Added mime type patterns ([!]<list-of-globs>) (thanks to Ross Hadden, a.k.a. rosshadden).
  • Added pattern ANDing. Just list decorated patterns one after another and such composite pattern will much when each of them matches (thanks to filterfalse).
  • Added pattern ORing for :file[x]type and :fileviewer commands implemented as a comma-separated list (thanks to filterfalse).
  • Expand environment variables for :edit (thanks to filterfalse).
  • Don't print just table header on :cabbr something, print message that no matches found instead.
  • Use original (before custom view) cursor position on :sync! in custom views (thanks to filterfalse).
File preview:
  • Added cancellation (handling of Ctrl-C) for quick view and view mode loading (thanks to kalterfive).
  • Skip UTF-8 BOM for file preview.
File list:
  • Never add parent entry (..) to very custom view (%U) (thanks to filterfalse).
  • Silently ignore tries to remove parent entry (..) (thanks to aleksejrs).
  • Automatically update custom view entries on rename of their parent directory in the same custom view.
Completion:
  • Added completion of :wincmd argument.
  • Do not reset completion on terminal resize.
  • Some corrections of when completion happens for :find and :grep.
Scripting:
  • Added chooseopt() builtin function that retrieves various parameters of file choosing (thanks to Von Welch).
Menus and dialogs:
  • Added highlighting of search matches in menus.
  • Added :noh[lsearch] command to menu mode.
  • Added quick shortcuts to dialogs (patch by oo-).
  • Added description of builtin keys to :map menus.
  • Added :write command to menus, that writes all menu lines into specified file (thanks to gtors).
  • A bit better delete confirmation messages with number of files to be deleted.
  • Avoid displaying useless search messages about incorrect pattern during interactive search in menus (those that user can't see, but that are shown in :messages).
  • Enabled wildmenu for menus.
TUI (Text User Interface):
  • Added indication of wrong pattern and absence of matches to command-prompt for interactive search/filtering.
Angle bracket notation:
  • Display <c-h> as <bs> only at the beginning of key sequence.
Color schemes:
  • Added SuggestBox highlight group for key suggestion box.
Vim-plugin:
  • Added support for matchit to filetype plugin (patch by filterfalse).
  • Better terminal buffer title for plugin in neovim (thanks to randomizedthinking).
  • Improved syntax highlighting of patterns.
Only on Windows:
  • Fixed escaping for cmd.exe again, for :edit and external command invocations (thanks to Reva Revadigar).
  • Fixed querying file information on 64-bit Windows (thanks to santhoshr).
  • Fixed possible crash on displaying job bar (e.g. after :empty) (thanks to Reva Revadigar).
  • Fixed UTF8 <-> UTF16 conversion, which didn't always work (on surrogate characters it seems) (thanks to Reva Revadigar).
  • Fixed possible unexpectedly long timeouts when waiting for a key (due to limitation of pdcurses).
  • Fixed displaying of wide (CJK) characters in pdcurses (thanks to Reva Revadigar).
  • Fixed capturing output of external applications when 'shell' is "cmd". Was broken since v0.8 in an attempt to make cmd work better with Unicode (but its /U flag affects only input and output streams).
Packaging:
  • Fixed functioning on architectures on which char is unsigned by default (thanks to Ondrej Novy, a.k.a. onovy).
Important fixes:
  • Fixed hanging on sudden terminal loss (regression) (thanks to aleksejrs).
  • Fixed using original file names after a prompt for new destination name (thanks to rbong).
  • Fixed unconditional resetting of executable permission when using cp dialog (thanks to Svyatoslav Mishyn, a.k.a. juef).
  • Fixed remote feature on cygwin (thanks to Cosmin Popescu, a.k.a. cosminadrianpopescu).
  • Fixed epic bug in processing selectors followed by other commands in a mapping. Command which accepted selector was called after tail of sequence is processed. Such case isn't very likely, so it probably didn't affect anyone.
See change log for the full list.
Download links
Source Code
vifm-0.8.2.tar.bz2
MD5925fa713a9694be6fb5ff6f7c3c0b101
SHA11ae4179b2b9a43c440290af0ecc91b9235203be7
RIPEMD1602e451ba17197b01b63c65e245d656e5e361ac990
Win32 Binaries
vifm-w32-0.8.2-binary.zip
MD52f081292a763b895e8069d99e30a9a6f
SHA103b36b4cdbf926d17ccbea2439040bdaaf97cd52
RIPEMD16098c2bf12ad36346a5ada10153186daec39c57c34
Win32 Single-Executable Binaries
vifm-w32-se-0.8.2-binary.zip
MD55bb5f7ec886cd27679cfc2262d9a0261
SHA1d496bbbfd5bf1999603f6fa25e9dde0a50d29c9b
RIPEMD16002346bfdfedaf0f31f938e7294fcd913782f811e
Win64 Single-Executable Binaries
vifm-w64-se-0.8.2-binary.zip
MD5db5580dc92229ac76770e718f373650e
SHA1f2740516983111e96855888bacfcc54e05dc22ff
RIPEMD16091d9c97f7d3393d0047782925b0e88d3472b76a3