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...
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