Vifm v0.8.2 betaJuly 2, 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.

The beta stage will last about two weeks. In case any serious bugs are found during this period, another beta version might be released.

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:
  • 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-beta.tar.bz2
MD5392c59a55e00a97865bbb252b5463173
SHA12d5fe63351c316930ec49d43cc70565f4e3db86f
RIPEMD160536d49ac599ba279fde408e818b5ed7f17c0d0b5
Win32 Binaries
vifm-w32-0.8.2-beta-binary.zip
MD5b3c07e0e6784c20fc6accd10551f9630
SHA13bbc8fed22a69ac962cd4583862e9c882f92787c
RIPEMD1602c826d8e1e8a9ff7b5936169854e744e40d6df3e
Win32 Single-Executable Binaries
vifm-w32-se-0.8.2-beta-binary.zip
MD5a141ff5986f9d8fa9d646e7f6f93fe61
SHA11ab8f8addde8999fefe499324f449cb52c2f360f
RIPEMD160b190217a7f6376f2c018571383d3f3d2a94577a6
Win64 Single-Executable Binaries
vifm-w64-se-0.8.2-beta-binary.zip
MD52f0fe8fadf75f0b7bd0713dbc7e2b44e
SHA1e7f12c1831ae4581be6ff4a9dc693acfd0abeb8e
RIPEMD1602d50eae136dc75bf202ab14fd93cd3ab8ddf5755