Vifm v0.12September 29, 2021

New version makes textual preview asynchronous, provides support for 24-bit colors, improves tree-view and introduces experimental Lua plugins support.

Thanks to everyone who tried out the beta.

Main changes
  • Color schemes and preview now support 24-bit colors.
  • Depth of tree-view can now be limited and directories in it can be folded.
  • Textual preview of files is now done asynchronously.
  • List of files can now be directly piped to programs via new macros.
  • External editing now asks for a re-edit after a failure.
  • Status line can now take up several lines.
  • Vifm has received a more advanced, but currently experimental, extension interface in a form of Lua plugins.
  • New keys for controlling viewer while in view mode.
  • View column separators.
  • New logo.
Demonstration of new features... Hover mouse and wait a bit to start animations.

24-bit colors


Asynchronous preview


Tree improvements


External re-editing


UI improvements


Two Lua plugin examples

More detailed list of changes... Core:
  • Added experimental Lua plugins support.
  • Added interactive re-editing of file names in external editor. Format now supports comments for displaying last error and original file names (thanks to Jose Riha (a.k.a. jose1711) and Diogo Lemos (a.k.a. dmlemos)).
  • Started using quickview's cache in view mode.
  • Extended cache of viewer's output to contain multiple entries (initial version of the cache was added to skip redrawing graphics).
  • Run background programs detached from a terminal (thanks to Miguel Madrid MencĂ­a, a.k.a. mimame).
File operations:
  • Added periodic forced flushing of data on copying data when 'syscalls' is set (thanks to Matthias Braun, a.k.a. mb720).
Invocation:
  • Don't list inaccessible instances on --server-list.
Important fixes:
  • Fixed losing files as a result of executing :copy! & or :move! & when both panes show the same directory (thanks to Hans Bieshaar).
  • Fixed copying of executable files not working on FreeBSD (thanks to makijato).
  • Fixed inability to map escape sequences due to extended keys in terminfo database (patch by M Kelly).
  • Fixed hang on using previewer that takes over control over the terminal (like 7z does to read password) (thanks to PRESFIL).
  • Fixed vifm-convert-dircolors dropping copies of entries that differ only by case (thanks to flux242).
Normal and visual modes:
  • Added zx normal mode key to fold/unfold directories in tree views. The implementation is not optimal at this moment though (thanks to filterfalse, Ben Lu (a.k.a. ayroblu), RR0925 and Alexandre Viau).
Key bindings:
  • Added a and A view mode keys that switch to next and previous viewer of current file correspondingly (thanks to j-xella).
  • Added i view mode key that toggles raw mode (ignoring of defined viewers) (thanks to j-xella).
Command-line mode:
  • Added :plugins command that opens plugins menu.
  • Added :plugin command that manages plugins.
  • Added :st[op] command what behaves like Ctrl-Z. It's to be used in mappings (thanks to GummyGun).
  • Added depth=N parameter to the :tree command (thanks to filterfalse).
  • Added combine pseudo-attribute to cterm parameter of :highlight command. It changes behaviour from overwriting attributes of a parent highlight group (within their hierarchy) to appending to it (thanks to Andrew Savchenko).
  • Added gui, guifg and guibg parameters to :highlight command.
  • Added network mount and subst targets to :volumes menu (patch by Phil Runninger).
  • Made :compare obey file name filters (patch by qsmodo).
  • Allow user-defined commands to include numbers in their names (thanks to anonymous at Vifm Q2A site).
:set command and options:
  • Added %P macro to 'rulerformat' (and thus to 'statusline'), which expands to All, Top, xx% or Bot to indicate position within the view (thanks to iSeeU816).
  • Added 'previewoptions' option to allow tweaking graphics preview a bit (thanks to Joshua Jensch (a.k.a. patroclos) and flux242).
  • Added toptreestats value to 'previewoptions' option, which makes stats appear before the tree (patch by qsmodo).
  • Added literal values to 'viewcolumns' option (thanks to Jose Riha (a.k.a. jose1711), chelovechishko, DieSpinne and rwtallant13).
  • Added %N macro to 'statusline' option, which adds a line break and increases height of the status line (thanks to Jose Riha (a.k.a. jose1711), qsmodo and jcarreja).
  • Added l and r flags to the 'tuioptions' option. It controls truncation of view titles (patch by qsmodo).
  • Added %c 'statusline' macro that displays size of current file-system (thanks to Jose Riha, a.k.a. jose1711).
Macros:
  • Added %Pl and %Pz macros for redirecting list of files to standard input of commands (thanks to PRESFIL).
  • Added %v macro for vertical splitting in terminal multiplexers (patch by qsmodo).
File preview:
  • Allow exploring empty files or output of viewers (thanks to Andrew Savchenko).
  • Implemented asynchronous previewing for textual and pass-through (think sixel) viewers (thanks to StillSteal, laur89, Joshua Jensch (a.k.a. patroclos) and p-kolacz).
  • Detect broken links on preview and report them as such.
Color schemes:
  • Changed semantics of light* color groups to add bold attribute only for terminals with less than 16 colors. Aligns the behaviour with Vim. Affects you only if you relied on that implicit bold attribute (thanks to Jose Riha, a.k.a. jose1711).
Menus and dialogs:
  • Added shortcuts for toggling flags in permissions dialog on *nix (patch by qsmodo).
  • Added some additional information about instance to the :version/:vifm menu.
  • Made contents of map menus easier to comprehend by adding captions.
  • Include shortcut prefix in title of map menus.
  • Always display UID/GID in numeric form in File Info dialog (in parenthesis if the id was resolved to a string).
TUI (Text User Interface):
  • Added support for direct/"true"/24-bit colors for ncurses 6.0 or later (thanks to Anton Kochkov (a.k.a. XVilka) and IvanBarsukov).
  • Added progress indication to the ruler of the view mode (corresponds to new %P macro of 'rulerformat') (thanks to iSeeU816).
Documentation:
  • Document how %i macro affects background jobs.
Only on Windows:
  • Fixed :goto not working with backslashes (thanks to Grueslayer).
  • Fixed processing of keypad keys (thanks to Roland).
  • Fixed :empty leaving empty directories (thanks to Grueslayer).
Packaging:
  • Made it possible to build AppImage for Vifm (patch by michaellee8).
  • Fixed running tests as root user (thanks to Michka Popoff, a.k.a. iMichka).
  • Fixed an issue with packaging on one system (Linux in this case) and building on the other (OS X) (thanks to chenrui333).
Vim-plugin:
  • Made :VifmCs of the plugin handle 24-bit colors.
Other changes:
  • Updated logo of the project (thanks to Hescalalu for making it).
See change log for the full list of changes and by whom they were suggested or implemented.
Download links
Source Code
vifm-0.12.tar.bz2

(signature)
MD52d75f063062681ff899ed2e930525215
SHA1b93f2a6134e78bf1058ae880729c5e22a10c7bd4
RIPEMD160f19ef2e1e2718c2f84026bcad728ffd2b2c7fc53
Win32 Binaries
vifm-w32-0.12-binary.zip

(signature)
MD5ba52d5a286951b4bd4533c3417c7a958
SHA1e5b11c23448dd8f15ca2e9ade695ed1a81249fe5
RIPEMD1608f7f56f197b81825441d799221537abb59946e8f
Win32 Single-Executable Binaries
vifm-w32-se-0.12-binary.zip

(signature)
MD51238feba73c168dc62068cd0ee1d853f
SHA1c51b6135dfb097966967b68f55e54d24df38021e
RIPEMD160a32e91fa85a451bce4eee735ade452f03e12052d
Win64 Single-Executable Binaries
vifm-w64-se-0.12-binary.zip

(signature)
MD570dfa1a901a3fc4b3001bb8e445f66e8
SHA17ca97537b96d51456ca67ba62895eaaf646e7caf
RIPEMD16026be208bd8430c77f6aee93968e0f9a0220f1c11
AppImage (x86-64)
vifm-v0.12-x86_64.AppImage
MD5423bb2bc4eeecdbab6333eb5438bf5da
SHA1335d23ba4cb490e1928f2ecc8567efb02a336ffb
RIPEMD16090753f52f7751a10111df25ffa23ee24272a2b02