Vifm v0.11September 24, 2020
New version finally updates format of vifminfo file unblocking changes such as persistent tabs, sessions and timestamp-based merging of histories. In addition to that there were several noticeable improvements in user interface and important optimizations.Thanks to everyone who tried out the beta.
Main changes
- Added persistent tabs
- Added sessions
- New format of
vifminfofile (old version is imported on first run) - Smarter merging of histories between runs that avoids dropping of new entries
- Version of default color scheme for 256-color terminals
- Customizable tab labels
- Keeping ratio of pane sizes constant on resizes, restarts and tab switching
- Various performance improvements
Demonstration of new features...
Hover mouse and wait a bit to start animations.|
Customization of tab labels ![]() |
New highlight groups ![]() |
Sessions ![]() |
Vim -> Vifm color scheme converter ![]() |
More detailed list of changes...
Normal and visual modes:- Added gF normal mode key which acts like gf, but goes all the way to the ultimate target of the chain of symbolic links (thanks to Alexandre Viau).
- Improve navigation on gf key. Do fewer refreshes and disable filters to make target visible.
- More sensible merging of histories from multiple instances in
vifminfofile (avoids dropping of new entries). - Invalidate cached directory information (size or number of files) on inode change (thanks to Jose Riha, a.k.a. jose1711).
- Invalidate cached directory size when using it to compute size of some parent directory.
- Improve cursor positioning after file operations.
- Made it possible to escape commas in patterns (as usual, by doubling) (thanks to filterfalse).
- Added
:tabo[nly]command that closes all tabs but the current one. - Added
:sessionand:delsessioncommands to manage sessions (thanks to Marcos Cruz). - Added optional
fullparameter for the:restartcommand, which makes it discard essentially all context. This is useful with persistent tabs (thanks to Yusuf Aktepe). - Don't reset histories of views in inactive tabs on
:restart. - Improve differentiation between association and list forms of
:colorschemecommand on startup. This is important if list contains name of color scheme that doesn't exist.
- Added
tabsvalue to'vifminfo'option. It enables persistent tabs (thanks to Cosmin Popescu, a.k.a. cosminadrianpopescu, filterfalse and Neil Griffin, a.k.a. ngriffin7a). - Added
vflag to the'tuioptions'option. It controls whether width of middle border is adjusted to equalize view sizes (thanks to Matthias Braun, a.k.a. mb720). - Added
'sessionoptions'option, which is an alternative to'vifminfo'for session files. - Added
'tablabel'option that specifies format of a single tab's label when non-empty (thanks to aleksejrs). - Added
'tabprefix'and'tabsuffix'options that allow customizing tabline separators (thanks to CoreCube). - Added
treeleafsparentvalue to'dotdirs'option (thanks to filterfalse and Melandel). - Do not require
dhistoryto be present in'vifminfo'forsavedirsto work.
- Added rate and progress bar to progress dialog (patch by Alborz Jafari).
- Added real (fully resolved) path to the File Info dialog (thanks to Alexandre Viau).
- Added number of hard links to the File Info dialog.
- Abort menu, more or file information modes before processing remote commands (thanks to kangshugang).
- Deduplicate elements of the
:filemenu. - Make displaying of spaces in mappings more intelligent by using <space> at the start or end of LHS or RHS.
- Improve handling of long or unknown escape sequences in previews (thanks to bratekarate).
- Use global color scheme for preview on the other pane ignoring its directory-specific color scheme.
- Invalidate textual quickview cache if it contains fewer lines than window height and is incomplete.
- Try harder to preserve position of the splitter. Avoid its drift on terminal resizes and preserve ratio of windows on startup and tab switches (thanks to Shakil Akhtar).
- Prevent internally selected files (e.g., via a range of a
:command) from appearing selected in user interface (thanks to filterfalse). - Reduce width of top line when side borders are hidden (
set tuioptions-=s) (thanks to Svyatoslav Mishyn, a.k.a. juef). - Escape some characters as
^Xin view and tab titles, custom menu titles, on statusline and in terminal title (thanks to filterfalse). - Use the same label for
:grepand:findcustom lists as the one used for:grepand:findmenus (thanks to filterfalse). - Use unexpanded command for title of custom file lists produced using
%uor%Umacros and menus produced using%mor%Mmacros (thanks to filterfalse). - Use name of user-defined command in titles of custom views and menus (thanks to filterfalse).
- Preserve more information in the title on turning custom view into tree using
:tree(thanks to filterfalse). - Limit length of custom file list title to 80 character positions (thanks to filterfalse).
- Detect being run under Wayland (relevant for
:filextypecommands) (thanks to mhdzli). - Make
'title'option work in all terminals which containtslandfslcapabilities (thanks to m-kru). - Update terminal title when in menus (thanks to filterfalse).
- Added
HardLinkhighlight group for regular files with more than one hard link (patch by Hans Bieshaar). - Added
LineNrhighlight group for highlighting line number column of views (thanks to Anton Gepting). - Added
OddLinehighlight group for highlighting every second entry line of a pane (thanks to iSeeU816).
- Added
v:jobcountbuiltin variable that provides number of active jobs (number of lines in:jobsmenu) (thanks to iSeeU816). - Added
v:sessionbuiltin variable that provides name of current session or is set to an empty string.
- Added three MC-like shortcuts to sample
vifmrcfiles (Alt-I, Alt-O and Ctrl-U) (thanks to Hans Bieshaar). - Added global
Default-256color scheme to be used in terminals that support 256-color palette (automatically in samplevifmrc) (thanks to Shakil Akhtar). - Create
$VIFM/colorsdirectory with default color scheme only on the first run (thanks to ranousse). - Use mime-types in associations in sample
vifmrc(thanks to Shakil Akhtar).
- Significantly improved performance of adding files to registers that contain thousands of files. As a result contents of registers is sorted now (thanks to Typo).
- Significantly improved performance of adding files to trash that contains thousands of files. As a result contents of trash is sorted now (thanks to Typo).
- Significantly improved speed of sourcing files (includes processing configuration on startup and
:restart). - Significantly improved speed of handling typical globs (and therefore mime-type matchers) and reduced amount of memory they take up (thanks to yanzhang0219).
- Improve performance of mime-type detection by caching the results.
- Make comparing files by contents (
:compare bycontents) somewhat faster (thanks to maxigaz). - Don't force view reload after every
:commandthat resets selection when there was non-empty selection. This might make metadata of files less up-to-date, but should increase overall performance (thanks to Jose Riha, a.k.a. jose1711). - Avoid reloading source file list after copy or move operation when possible (thanks to Jose Riha, a.k.a. jose1711).
- Added
:VifmCscommand to the plugin for "converting" Vim's color scheme into a Vifm's one (patch by Roman Plášil, a.k.a. Quiark). - Multiple improvements of syntax highlighting.
- Added references to "Menus and dialogs" section of documentation from
:commandsand keys which open menus and dialogs detailed there. - Explicitly documented that macros are expanded in user defined commands (thanks to gcmt).
- Made documentation of
:commandmore comprehensible. - Document that user must disable netrw plugin on his own when enabling
g:vifm_replace_netrw. Vifm's plugin can't do it, because it's loaded after plugins shipped with Vim. - Documented how selection is handled on launching files (like on l or Enter keys).
- Improve documentation on
bycontentsof:compare(thanks to maxigaz). - Somewhat improved documentation on
'ignorecase'and'smartcase'options (thanks to filterfalse). - Fixed Vim version of the documentation lacking description of
%pmacro of'findprg'.
- Added basic support for using PowerShell (pausing doesn't work) (thanks to Fang, a.k.a. peromage).
- Display targets of .lnk-files in file information dialog.
- Implemented capturing output of background applications (thanks to Gene Zharov).
- Follow targets of .lnk-files (thanks to Alexandre Viau).
- Fixed
'chaselinks'(symbolic links weren't resolved). - Fixed creating symbolic links with
'syscalls'being turned on. - Fixed creating symbolic links with spaces in source or target paths.
- Fixed Alt key combinations being broken since v0.9.
- Fixed running non-cmd shells being broken by adding
'shellcmdflag'in 0.10.1. - Fixed issues with non-tiny
'shellcmdflag'(patch by Bas Bossink, a.k.a. basbossink). - Fixed detecting presence of
:file[x]typecommands on Windows when backslashes are present in path (thanks to anonymous and n.e. at Vifm Q2A site).
- Avoid interposing system's
reallocarray(), when it's present (thanks to Ben Boeckel, a.k.a. mathstuf). - Install only one version of sample config and media script, the one which corresponds to operating system being used (thanks to Michael Vetter, a.k.a. jubalh and Ondrej Novy, a.k.a. onovy).
- Clean up tests directory on
make cleanin the top of the tree.
- Fixed generation of
:highlightcommand forOtherWinon writing$VIFM/colors/Default.vifm. The bug caused white background of inactive pane (thanks to Stas Malavin). - Fixed
:move subdir &renaming file in the process and doing weird stuff to multiple files (thanks to 45jqlakjrf87ayte7hy34ter4nguijauzl4eitk). - Fixed graphics preview not being cleared on switching tabs or starting external applications (including on
:shell). - Fixed mapped keys being reinterpreted as builtin keys if RHS of the mapping failed at some point (e.g., contained an unmapped key) (thanks to Seok Won Lee, a.k.a. ijleesw).
- Fixed dialogs not being visible when UI updates are silenced via
<silent>mappings. - Fixed panic on some redraw operations mixing with file operations during terminal resizing (thanks to aca).
Download links
|
Source Code vifm-0.11.tar.bz2 (signature) |
|
|||||||
|
Win32 Binaries vifm-w32-0.11-binary.zip (signature) |
|
|||||||
|
Win32 Single-Executable Binaries vifm-w32-se-0.11-binary.zip (signature) |
|
|||||||
|
Win64 Single-Executable Binaries vifm-w64-se-0.11-binary.zip (signature) |
|



