xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
vifm v0.9.1 -----------
This version adds to the list of ways for viewing files by introducing
miller columns view and transposed ls-like view (table view).  Other
developments are related to integration between builtin features as well as
with external applications.

Thanks to everyone who tried out the beta.

Main changes:
 - introduced file view mode known as miller columns or cascading lists;
 - added ability to transpose ls-like view to make it fill by columns;
 - more natural behaviour of movement keys in ls-like view;
 - new `--remote-expr` command-line option can be used to query state of
   running instances;
 - extended retry/ignore/abort query to all file operations;
 - more control over highlight groups via `:highlight` suitable for
   interactive changes;
 - mostly eliminated the need for repeating ga/gA commands through automatic
   size recalculation.

More detailed list of changes.

File operations:
 - added retry/ignore/abort prompt for file copying and directory/file/symlink
   creation when 'syscalls' is on (thanks to einhander);
 - better detection of write errors on file copying.  The error was reported,
   but it wasn't treated as a hard error in a specific case related to caching.

Command-line mode:
 - added :histnext/:histprev commands, which are analogous to Ctrl-I/Ctrl-O
   (patch by Dmitry Frank, a.k.a. dimonomid);
 - added ability to remove filename-specific highlighting rules with
   `:highlight clear {pattern}` (thanks to aleksejrs);
 - changed :filter command to accept pattern (//, ////, {} or {{}}) (thanks to
 - made :siblnext and :siblprev commands respect dot and name filters;
 - made :siblnext and :siblprev accept [count] range (thanks to filterfalse);
 - made :tree pick up list of files from custom view (thanks to filterfalse);
 - made :highlight update file-specific group on exact match of the pattern
   instead of appending new rule (thanks to aleksejrs);
 - remove empty directories which are specified in 'trashdir' with %r and/or %u
   automatically on :empty (thanks to Marcin Kurczewski, a.k.a. rr-).

:set command and options:
 - added "inode" sorting key, which sorts entries by inode number (thanks to
 - added 'millerview' option that enables cascading columns interface for the
   view (thanks to sudo-nice);
 - added 'milleroptions' option that configures miller view;
 - added 'lsoptions' option that allows to get transposed grid in ls-like view
   (thanks to Dmitry Frank, a.k.a. dimonomid);
 - added 'previewprg' option, which can be used to override :fileviewer commands
   either temporarily or permanently (thanks to svenn71);
 - added {root} key to 'viewcolumns' option (complements {ext}) (thanks to Oleg
   Gordienko, a.k.a. gordio);
 - added "u" flag to the 'tuioptions' option.  It enables use of Unicode
   characters in the TUI (Unicode ellipsis instead of "...") (thanks to Oleg
   Gordienko, a.k.a. gordio);
 - added "foldsubkeys" value to the 'suggestoptions' option.  It folds multiple
   suggestions with common prefix into one entry (thanks to AndreaHasani).

Normal and visual modes:
 - added [r/]r/[R/]R normal mode shortcuts that map to :siblprev and :siblnext
   with and without wrapping correspondingly (thanks to filterfalse);
 - do not go to start of line on Ctrl-U/Ctrl-D/Ctrl-F/Ctrl-B/G in ls-like view;
 - H/M/L keys in ls-like view now account for columns;
 - instead of invalidating directory size previously calculated via ga/gA on
   detecting changes in the directory recalculate its size and propagate update
   through its parents (thanks to filterfalse).

 - added %x macro to 'rulerformat' (and thus to 'statusline') as a new name for
   %-, which conflicts with alignment specification and requires explicit width
   specifier (%0-) (thanks to Marcos Cruz).

 - added term() builtin function, which differs from system() only by its
   ability to run interactive applications without confusing vifm's interactions
   with the terminal (thanks to Dmitry Frank, a.k.a. dimonomid);
 - added v:count and v:count1 builtin variables.  They are assigned to count
   passed to : command;
 - don't trigger DirEnter event with previous directory on startup when list of
   files is specified on stdin (thanks to filterfalse).

 - added `--remote-expr` command-line option, which gives ability to query state
   of an instance (thanks to Marcin Kurczewski, a.k.a. rr-).

 - added completion of filename-specific highlight groups for :highlight

Color schemes:
 - added AuxWin highlight group for highlighting auxiliary parts of windows.

TUI (Text User Interface):
 - extend width of the cursor in ls-like view to the width of the cell (thanks
   to Dmitry Frank, a.k.a. dimonomid);
 - indicate preview created with %q with "Command: cmd";
 - duplicate status bar error in dialog that reports sourcing error.  Will need
   to get rid of errors on status bar later.

 - improved performance of mime-type detection when using libmagic (now might be
   about seven times faster by avoiding reinitialization of the library);
 - don't force file list reload after `:!` and rely on change detection.  This
   should result in somewhat better performance (thanks to opennota).

 - documented more details about 'vicmd' and 'vixcmd' options (thanks to
   Sebastian Cyprych).

 - disabled spell checking of vifm files in Vim except for comments.

Only on Windows:
 - fixed running commands with arguments on Windows when 'shell' isn't cmd.exe.

Important fixes:
 - fixed consuming 100% of CPU on certain pattern of running background
   processes (thanks to petRUShka);
 - fixed turning quickview into explore view when preview command doesn't
   contain macros.  Was broken since 0.8;
 - fixed the plugin in neovim (patch by John Shea, a.k.a. coachshea);
 - fixed cloning of files like `.name` to produce `.name(1)` instead of
   `(1).name` (thanks to filterfalse);
 - fixed directory size in statusline (patch by Dmitry Frank, a.k.a. dimonomid);
 - fixed CWD of the process not matching current view after vifm picked up
   change in file system (patch by Daniel Mueller);
 - fixed :normal command resetting selection (thanks to filterfalse);
 - fixed stopping of put operation after copying symbolic link that's broken on
   destination (thanks to filterfalse);
 - fixed a "race" with file system when we could load outdated file list and
   thus miss some file system updates.

See change log for the full list of changes and by whom they were suggested.
Subject SHA-1 Author Date
Version v0.9.1 3113eb06c8d4c20793f86b8a2209820db7aaf52a xaizek 2018-02-05 10:40:02
Run tests in deploy script after archiving on Win 6ac41137ad4e0ae65ac6b7041fe17e58471b4ca2 xaizek 2018-02-03 14:13:28
Skip tests of --remote when compiled without it b55eea1c4422216864cdfd6245075394ec44f701 xaizek 2018-02-03 12:04:36
Fix a typo in documentation of 'autochdir' 7d719af5d9136dc34bc4d006f6c845c6259ba5f8 xaizek 2018-02-02 22:09:58
Update NEWS file for v0.9.1 c1c1d0d27fe93cb6d2683582d460d2d201ec0218 xaizek 2018-02-02 22:08:16
Make it possible to "fake" release date 06a7ecda0968cf041eece4dd2995449bcb34a0e9 xaizek 2018-02-02 17:59:43
Fix reported free space on *nix ff706c8c6ab7e38adccea02591d738f8c375470a Dmitry Frank 2018-02-05 09:59:47
Fix possible crash on `:highlight clear {pattern}` ddab2d2468df7db6a2c5f7cc49914608df8478d4 xaizek 2018-01-28 18:08:00
Fix C key not checking readability of a file fda5f5dc7b3facb3fdaa8de637bd81198b5658f7 xaizek 2018-01-28 15:55:53
Fix :clone and :copy not copying broken symlinks c5f3821f5c99956f4c9edcbaa7a42e5016991fcb xaizek 2018-01-28 15:06:51

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master