Vifm v0.7.8October 25, 2014
New version adds a couple of major features, allows for some more customizations
and makes usual operations more convenient. Finally, file system operations got
progress (it's disabled by default, new implementation needs to be tested in
different environments to become the primary one). Another feature is
multiblock selection ("extended visual mode" if you wish). Vifm also became
friendlier to authors of colorschemes and those who'd like to customize UI a bit
more. Don't forget that Vifm has new site and Wiki.
Demonstration...
Some of changes are easier to see than describe in words, so below are some
animations.
First,
the progress bar:
Next,
multiple blocks and new sub-modes of Visual mode:
Finally,
TUI updates:
Main changes
- Added multiblock "selection" (in quotes because it's also block
deselection and inversion of selection for completeness).
- Added progress bar for file operations. Available only if
'syscalls'
option is set (please be careful with that, check
basic operations on temp files before using this with important data).
- Added names for 256 colors, highlight group for inactive cursor,
:highlight clear
command.
- Some improvements for cancelling operations.
- Better implementation of emptying trash directories.
- New types of conflict resolution.
- Several extensions for filtering with user-defined commands.
- More customizable UI (borders, padding).
- Smarter path completion.
- Separated Vifm and Vim plugin documentation.
- A couple of extensions for Vim plugin (for mail and bulk file
renaming).
More detailed list of changes...
Core:
- Added cancellation (handling of Ctrl-C) for FUSE mounting (but not unmounting).
- Added progress for long-running file system operations. Available only if
'syscalls'
option is set.
- Added "[a]ppend the end" conflict resolution option (appends the rest of file, e.g. if previous operation was terminated) (thanks to Sergei Shilovsky). Available only if
'syscalls'
option is set.
- Added merge all option for name conflict resolution. Same as "merge", but remembers the choice for future conflicts of directories (thanks to willemw12).
- Added skip all option for name conflict resolution (thanks to Miodrag Tokić (a.k.a. loonies)).
- Changed "overwrite all" key from a to O for consistency (thanks to willemw12).
- Implemented creation, removal, copying, moving of files with system calls. Available only if
'syscalls'
option is set.
- Rewrote trash content removal with system calls in background thread (thanks to lyuts and ckester). It's also now visible in
:jobs
menu.
- Several improvements for :lstrash menu (thanks to filterfalse).
- More reliable Ctrl-C detection.
Normal and visual modes:
- Added av normal mode shortcut that activates selection amending mode (thanks to ranousse, Michelle Bonk (a.k.a. unixtechie)).
- Added/updated av/v/V visual mode keys to switch type of current visual mode.
- Added Ctrl-G key to visual selection amending mode, which switches kind of amending (append/remove/invert).
- Added ga and gA keys to visual mode (thanks to geo909).
- Separate visual selection marks ('< and '>), which allows to restore it via gv in both panes (thanks to filterfalse).
- Implement ( and ) keys for
perms
and type
sorting keys (thanks to filterfalse).
- Skip nonexistent directories on Ctrl-O/Ctrl-I.
- Repeat search with last used search pattern on empty pattern of the search mode.
- Taught ga/gA commands to handle selection (thanks to geo909).
Command-line mode:
- Added
i
and I
flags to :filter
command to control filter case sensitivity (thanks to filterfalse).
- Added filter flags to output of
:filter?
command and formatted output as a table.
- Added
:highlight clear
to reset to builtin colors.
- Added
=pattern
special form of user-defined command that sets local filter to the given value (alike /pattern
and filter value
) (thanks to filterfalse).
- Made
:filter
command consider trailing slash for symbolic links that point to directories (thanks to filterfalse).
- Allowed use of
:filter
syntax in user-defined filter commands (e.g. command conf filter/.*\.cfg$/
).
- Made
+
/-
operands after semicolon in command-line range adjust base range end position rather than base cursor position as Vim does (thanks to filterfalse).
:set command and options:
- Added
'syscalls'
boolean option. Chooses external tools/system calls implementation. {EXPERIMENTAL}, {WORK-IN-PROGRESS}, although no data loss so far. The option will be eventually removed. Mostly *nix-like systems are affected.
- Added
'cdpath'
option (thanks to Bruce Hunsaker (a.k.a. hunsakerbn)).
- Added
'tuioptions'
option. Controls padding of file lists in panels and visibility of side borders (thanks to Bruce Hunsaker (a.k.a. hunsakerbn) and Svyatoslav Mishyn (a.k.a. juef)).
- Added
'fillchars'
option. Configures fill character for vertical borders (thanks to Svyatoslav Mishyn (a.k.a. juef)).
- Extended
'slowfs'
option format to allow path prefixes (in particular, it's useful for autofs) (thanks to Евгений Жаров (a.k.a. ezharov)).
Scripting:
- Added logical NOT unary operator (
!
).
- Added
executable()
builtin function that checks whether executable exists at given path or in one of directories listed in $PATH
.
- Added
has()
builtin function that checks whether particular property is enabled (two properties for now: unix
and win
) (thanks to filterfalse).
- Made
expand()
builtin function expand environment variables (thanks to filterfalse).
Performance:
- Optimized speed of checking existence of a directory (important on displaying directory history).
- Automatically remove non-existent directories from directory history on
:history
command to speed up future operations (this clean up is very cheap on composing menu).
Completion:
- Added function name completion on command-line.
- Smart completion for paths. Allows completion of quoted arguments (both
'
and "
types of quotes) and considers argument type context by performing escaping when needed.
Documentation:
- Added full command names to the manual page to ease searching them (thanks to y2kbugger).
- Documented how to use 256 colors in
:highlight
command (thanks to Michael Vetter (a.k.a. jubalh)).
- Made it possible to hide Vifm's documentation from Vim when it's not run by Vifm's :help command (thanks to ranousse).
- Separated Vifm's vimdoc from plugin documentation.
TUI (Text User Interface):
- Added more human-friendly (xterm-like) names for 256 colors (thanks to Michael Vetter (a.k.a. jubalh)).
- Added
OtherLine
highlight group for cursor of inactive pane (thanks to Svyatoslav Mishyn (a.k.a. juef)).
- More accurate scheduling of view updates.
Vim:
- Added file additional mail filetype plugin for Vim (thanks to Pavneet Arora). It allows one to pick attachments via Vifm on
<localleader>a
shortcut.
- Added file renaming filetype plugin for Vim (thanks to Factorial Prime). It displays list of original file names in a vertical split.
- Provided additional repository for Vim plugin (https://github.com/vifm/vifm.vim).
- Make Vim plugin use
cmd.exe
as default shell on Windows (thanks to Jonathan Da Silva).
- Various minor syntax highlight improvements (wrapped lines, numbers, options).
Packaging:
- Added Vim plugin directory to share/vifm/vim on
make install
(thanks Svyatoslav Mishyn (a.k.a. juef)).
- Removed
ltmain.sh
script, which is part of libtool
that's not used anymore (thanks to Hendrik Jaeger (a.k.a. henk)).
- Renamed
configure.in
to configure.ac
(thanks to Hendrik Jaeger (a.k.a. henk)).
make clean
now removes tags
files for Vim documentation generated during build (thanks to Hendrik Jaeger (a.k.a. henk)).
Major fixes:
- Fixed segmentation fault on running vifm with single argument if restored cursor is in the right pane (thanks to Svyatoslav Mishyn, a.k.a. juef).
- Fixed segmentation fault during startup in a small terminal on OS X (thanks to Daniel Dettlaff (a.k.a. dmilith)).
- Fixed segmentation fault on no view history and
:set autochpos
in vifmrc (thanks to ranousse).
- Fixed unexpectedly broken compilation on FreeBSD (thanks to Daniel Dettlaff (a.k.a. dmilith)).
- Fixed
:!!
command, seems to be not working for a while.
- Fixed segmentation fault on Alt-. command in command-line mode (since 0.7.7).
See change log for full list of changes and by whom they were suggested.
Download links