Vifm v0.12.1September 21, 2022
Thanks to everyone who tried out the beta.
If you ever wanted to insert result of evaluating an expression into
command-line, now you can. One of the most useful applications of this is
pasting clipboard's contents without the risk of it being processed as user
input (e.g., :<c-r>=system('xsel')).
New :keepsel command-prefix is meant to suppress clearing of selection done
automatically after most of command-line commands thus avoiding the need for
using gs command to restore it. As a common case, the behaviour for :view
command has been changed to not drop selection.
Restoring selection in a newly entered directory can now be done not just from a register populated ahead via yanking selection ("rgs), but just by executing gs to restore selection the directory had before it was left last time. Vifm remembers last 10 locations with non-empty selection.
An arbitrary editor can now be fully integrated via Lua
'vicmd' and 'vixcmd' were always there, but commands specified in these
options could receive Vim-specific arguments they don't expect. Writing a
shell wrapper was an option, but it had to do guesswork while
post-processing arguments meant for Vim, which is error prone. A Lua
handler can now be used instead. It receives full context about editor
invocation and can perfectly forward the request to an arbitrary editor.
Escaping of unprintable characters, less of annoying flickering, slightly better File Info dialog.
Conflict resolution dialog now provides a sub-dialog for comparing conflicting files and is also smarter at picking which actions to offer.
Lua API additions (still experimental)The API now gives some access to layout, tabs and keys.
Unlike :*map commands, keys API allows defining custom selectors (like 2j
in d2j), keys that accept an argument (like a in ma) and keys that
accept selectors (custom or builtin).
If you want to give plugins a try, read overview.
Other
Bulk retargetting of links, optional implicit :cd on command line, macros
that expand to non-empty selection, supporting more <keys>, completion
for `fish` shell.
Escaping of arguments and slashes in paths will now hopefully work better on Windows, which is generally an issue there. Yori shell is now also handled on Windows.
New %N macro can be used to fix image preview in Kitty terminal.
More detailed list of changes...
Core- Added expression pseudo-register (Ctrl-R =) for command-line mode (thanks to Marcos Cruz and Jiji from Vifm Q2A site).
- Added parsing of
\cand\Csequences in regular expressions to force case ignoring or matching respectively (thanks to filterfalse and Safal Piya, a.k.a. mrsafalpiya).
- Changed how location of trash directory is determined. Now starting
vifm --no-configswon't mess anything up if you're using~/.vifm. Can potentially cause some trouble for existing configurations, but shouldn't.
- Added
:keepselcommand. Changes default behaviour after running a :command to not reset selection of a view (thanks to dalvand and sharklasers996). - Added
-skipparameter to:copy/:move/:alink/:rlink. Makes the commands automatically skip files that exist at destination instead of refusing to proceed (thanks to Jose Riha, a.k.a. jose1711). - Added handling of
-in:sessionfor switching to a previous session. - Added
:history exprregmenu for displaying history of expression register values. - Do not reset selection on
:viewcommand (thanks to Alexandre Viau). - Permit directories with trailing slashes supplied by external commands in
:[un]select !cmd(patch by filterfalse).
- Changed [c and ]c to also traverse added/missing entries (thanks to qsmodo).
- Added cl key visual mode (similar to its function in normal mode).
- Extended cl normal mode key to handle selection of multiple files (thanks to aleksejrs).
- Made gs normal mode key remember selection for up to 10 last entered directories (thanks to ratnamhof and Matthias Braun, a.k.a. mb720).
- Added
'autocd'option. Makes invalid :commands be interpreted as an implicit:cdcommand (thanks to Taras Halturin, a.k.a. halturin). - Added %o macro to
'statusline', which expands to Unix permissions in octal form (and to nothing on Windows) (thanks to iSeeU816). - Added
datasyncvalue to'iooptions'option to configure whether writes on file copying when'syscalls'is on are synchronized periodically (thanks to Andrew Savchenko and Afz). - Added
ehistoryvalue to'vifminfo'and'sessionoptions'option. It manages storing of expression register history. - Added optional border for horizontal split layout controlled by newly added
hborderin'fillchars'(patch by qsmodo). - Added
maxtreedepthvalue to'previewoptions'option, which allows limiting depths of the displayed tree (thanks to Afz). - Set
'title'option by default if$TERMisfoot*as its terminfo entry might lacktslandfslattributes (thanks to nobodyatandnothing).
- Added
%Nmacro that prevents detaching viewers from current session (thanks to emorozov). - Added
%pumacro that disables caching of viewer's output (thanks to b0x4it). - Added
%l/%"land%L/%"Lmacros for the list of selected files.%fis not empty if there is no selection, which is not always desirable (thanks to ratnamhof).
- Added angle-bracket notation for alpha keys with Alt and Shift modifiers (
<[am]-s-[a-z]>,<s-[am]-[a-z]>) (thanks to Reece Petersen). - Added angle-bracket notation for numeric keys with Alt modifier (
<[am]-[0-9]>) (thanks to anonymous at Vifm Q2A site) - Added angle-bracket notation for some shifted grey keys:
<s-home>,<s-end>,<s-left>,<s-right>,<s-up>,<s-down>,<s-pageup>,<s-pagedown>,<s-delete>,<s-insert>(patch by M Kelly).
- Extended
has()builtin function to check for Lua handlers. - Don't
expand()macros in environment variables (patch by filterfalse).
- Upgraded Lua from 5.4.3 to 5.4.4
- Added sample plugin for using mpc.
- Added sample plugin for customizing editor.
- Added
vifm.escape()function. - Added
vifm.run()function (similar to:!). - Added
vifm.sessions.current()function. - Added
vifm.keys.add()for adding mappings (can accept selectors or an argument like in 'a) and selectors. - Enable
os.tmpname(). - Exposed minimal API for tabs (includes layout).
- Escape unreadable characters in menus, command-line mode, dialogs and statusbar messages (thanks to MadMaverick9).
- Hide graphics when displaying dialogs or entering menus, more or file info modes (thanks to heelsleeh and PRESFIL).
- Fixed multiple cases of cursor/UI flickering.
- Added
CmpUnmatchedandCmpBlankhighlight groups (thanks to qsmodo).
- Changed conflict dialog to offer "Merge all" option even for files if there are some directories left to process (thanks to dalvand).
- Added comparison action to conflict resolution dialog (thanks to anonymous at Vifm Q2A site and dalvand).
- Display permissions in octal form in File Info dialog and group them with owner/group info (thanks to iSeeU816).
- Reformat File Info dialog to be more compact (thanks to chelovechishko).
- Extended optimizations for globs to cover
something*andsome*thingcases.
- Added
:PeditVifmcommand (and corresponding:PeditVim) to the plugin (thanks to Mukund Mauji, a.k.a. maujim).
- Added initial support for Yori shell on Windows (not everything might work well at this point) (thanks to LinArcX).
- Fixed argument escaping issues for foreground programs on Windows (thanks to fohrums).
- Fixed auto-detection of GUI programs on Windows, which prevents Vifm from waiting on them to finish (thanks to Azin Sharaf).
- Fixed
startin:file[x]typecommands on Windows not being considered as present. - Fixed slashes being doubled in macros like
%"con Windows withcmd.exeas a shell (thanks to Toby Hawkins, a.k.a. HawkinsT).
- Documented that <del> key might correspond to <bs> (thanks to dalvand).
- Fixed building when
fdatasync()call isn't available (thanks to Schrijvers Luc, a.k.a. Begasus). - Fixed severe performance degradation after measuring size of large directory trees.
- Fixed
:compare listuniqueyielding different results depending on which view is active due to not processing bottom files in the current view in some situations. - Fixed graphics not being cleared properly on switching between viewers in view mode.
- Fixed processing of extended keys on OpenBSD.
- Fixed
:.file modifier incorrectly checking for one path being parent of another and producing weird results (/pawas considered parent of/path, withthbeing the result) (thanks to Dennis Preiser, a.k.a. 0xDP). - Fixed
--remoteand--remote-exprfailing if$TERMisn't valid (regression in 0.11-beta) (thanks to b0x4it). - Fixed directory preview resetting after detaching from it (thanks to Luka Markušić, a.k.a. mark2185).
|
Source Code vifm-0.12.1.tar.bz2 (signature) |
|
|||||||
|
Win32 Binaries vifm-w32-0.12.1-binary.zip (signature) |
|
|||||||
|
Win32 Single-Executable Binaries vifm-w32-se-0.12.1-binary.zip (signature) |
|
|||||||
|
Win64 Single-Executable Binaries vifm-w64-se-0.12.1-binary.zip (signature) |
|
|||||||
|
AppImage (x86-64) vifm-v0.12.1-x86_64.AppImage |
|