vifm Changelog

What's new in vifm 0.13.0 Beta

Mar 19, 2023
  • Highlights:
  • Faster file-system navigation with a new searching/filtering submode
  • Hitting <c-y> after / or = allows finding and opening consecutive path components without leaving command-line mode. In this mode keys like <c-o>/<c-n>/<c-p>/<left>/<home>/etc. help to refine cursor position or go to parent directory if necessary.
  • More interactive :compare
  • You can now see stats about file comparison on the status bar and have an option to easily re-run the comparison while toggling visibility of some of the groups.
  • Also, default file alignment is more natural now. do and dp handle selection. You can force ignoring or respecting case in paths. Performance and memory consumption have been improved in various cases.
  • Mouse support and TUI improvements:
  • Once mouse support is enabled, you should be able to perform simple browsing with just your mouse for those cases when it's more convenient.
  • Conflict dialog now always presents basic file metadata for comparison. Detailed progress dialog has ETA. Ls-like view can now have a fixed number of columns.
  • Other:
  • Formatting of tabs in Lua. Changing register's content via an editor. Explicitly prompting user for input via input() function.
  • Fixes:
  • V0.12.1 was supposed to improve escaping on Windows, but it simultaneously made one old bug more prominent, effectively making things much worse in some cases. This release remedies that.
  • %N macro has been adjusted to fix integration with image preview of Kitty v0.27+.
  • Lots of fixes related to search and various combinations of 'hlsearch', 'incsearch' in different modes.

New in vifm 0.12.1 (Sep 21, 2022)

  • Changes overview:
  • Expression register for command-line prompts (Ctrl-R =).
  • 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')`).
  • Selection handling improvements:
  • 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.
  • TUI improvements:
  • 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).
  • Other:
  • Bulk retargetting of links, optional implicit `:cd` on command line, macros that expand to non-empty selection, supporting more `<keys>`.
  • Fixes:
  • 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.

New in vifm 0.12.0 (Sep 29, 2021)

  • New version makes textual preview asynchronous, provides support for 24-bit colors, improves tree-view and introduces experimental Lua plugins support.
  • 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.

New in vifm 0.12.0 Beta (Sep 15, 2021)

  • 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 in vifm 0.11.0 (Sep 25, 2020)

  • Recommend against setting 'shellcmdflag' to "-ic" value.
  • Made it possible to escape commas in patterns (as usual, by doubling). Thanks to filterfalse.
  • Don't display number of hard links in File Info dialog on Windows. It's always zero there.
  • Follow targets of .lnk-files on Windows on gF.
  • Fixed ga and gA on symlinks to directories on their own (regression in 0.11-beta) and as part of selection. Thanks to filterfalse.
  • Fixed an issue with undesired cache invalidation for symbolic link to directories, which caused performance issue (regression in 0.11-beta).
  • Fixed `:sync! all` not synchronizing local filter of a tree with `set cvoptions=localfilter`. Thanks to filterfalse.
  • Fixed documentation in Vim format linking section about globs instead of section on patterns in the description of :filetype, :filextype and :fileviewer commands.
  • Fixed zd adding ".." directory even with 'dotdirs' not containing "treeleafsparent".
  • Fixed tab labels of pane tabs being messed up (regression in 0.11-beta).
  • Fixed highlighting of search matches in preview (regression in 0.11-beta).

New in vifm 0.11.0 Beta (Sep 10, 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.
  • The beta stage will last about two weeks. In case any serious bugs are found
  • During this period, another beta version might be released.
  • Main changes:
  • - Added persistent tabs
  • - Added sessions
  • - New format of vifminfo file (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
  • See change log for the full list of changes and by whom they were suggested or
  • Implemented.

New in vifm 0.10.1 (Jul 30, 2019)

  • Command-line mode:
  • Added :cds command that navigates to path obtained by substitution in the current path (thanks to j-xella).
  • Added :hideui command that hides interface to show previous commands' output (thanks to dikiy).
  • Added one more invocation format of :colorscheme command, which picks the first available color scheme that is supported by the terminal (thanks to Jose Riha, a.k.a. jose1711).
  • Always preserve tabs on :restart (thanks to mwgkgk).
  • Refuse to compare directory against itself via :compare command (thanks to Jose Riha, a.k.a. jose1711).
  • :set command and options:
  • Added fileroot view column, which displays full name of directories and symbolic links to directories and only root of name for everything else (thanks to chelovechishko).
  • Added 'shellcmdflag' option that allows customizing how shell is invoked. Enables running it in interactive mode, which can make shell aliases and functions work (thanks to Ink (a.k.a. inknoir), John Shea (a.k.a. coachshea) and randomizedthinking).
  • Added L flag to 'shortmess' option to display only last directory in tab line instead of full path (thanks to chelovechishko).
  • Added ^= operation for string list options (thanks to SearyBlue).
  • Added ^= operation for options of set kind.
  • Added rpreview: key to 'milleroptions' option that allows enabling preview of files (thanks to Svadkos and Tom Jansen).
  • Added %p macro to 'findprg' option. It works as a mix between %a and %A macros: usually contains arguments passed to :find command, but unlike %a doesn't include any predicates (thanks to Sitaram Chamarty and Tuan Bui, a.k.a. tuanbass).
  • Added `space` and `nospace` values to `'sizefmt'` option (patch by zsugabubus).
  • Do not add leading comma to string list options on set opt+=item.
  • Don't create trash directory on startup if 'trash' is off (patch by zsugabubus).
  • Key bindings:
  • Improved <silent> to do not forcefully update screen after the mapping if no screen updates were skipped.
  • Completion:
  • Complete user name in paths after initial tilde (e.g., :cd ~r<tab> => :cd ~root).
  • Macros:
  • Added %pd macro that makes preview output directly affect terminal circumventing curses interface, which could be used to display sixel images (thanks to Tom Jansen).
  • Color schemes:
  • Added OtherWin highlight group for highlighting inactive pane (thanks to John Fred Fadrigalan, a.k.a. cevhyruz).
  • Menus and dialogs:
  • Added indication of entry's availability to :file, :file[x]type and :fileviewer menus.
  • Added [ and ] bindings to :media menu that provide navigation between devices (patch by zsugabubus).
  • Added decorations to :media menu (patch by zsugabubus).
  • React to Enter in :media menu on device lines, mount on "not mounted" line and do nothing otherwise (patch by zsugabubus).
  • Show empty lines in :media only if there is enough vertical space (patch by zsugabubus).
  • Removed empty line from :file and similar menus for case when vifm was configured with --disable-desktop-files flag (second time).
  • Scripting:
  • Added extcached() builtin function, which can be used to improve performance of file queries by caching results of external commands (thanks to Matthias Braun, a.k.a. mb720).
  • Invocation:
  • Try to preserve symbolic links in current path when starting vifm by checking value of $PWD (thanks to Vigi).
  • Core:
  • Resolve symbolic links for mime-type matchers (thanks to Vigi).
  • Do not check for view changes while suggestions are visible. It can mess up TUI, especially in combination with preview (thanks to ks1c).
  • File operations:
  • Preserve extended attributes on copying files (thanks to hutou).
  • Don't throw away errors that were ignored by the user, display them at the end of operation.
  • Consume input during foreground file operations. Otherwise it remains buffered and is processed after the operation is over, which might not be the intent of the user.
  • Reduce number of options available on file conflict when source and destination are the same to avoid confusion (options that overwrite do nothing in this case) (thanks to aleksejrs).
  • File preview:
  • Do not complain about empty output of a graphics previewer for view mode.
  • Clear preview before displaying suggestions (thanks to ks1c).
  • TUI (Text User Interface):
  • Renamed filename filter to "permanent filter" consisting of "explicit" (ex-manual) and "implicit" (ex-automatic) parts (thanks to Sitaram Chamarty).
  • Changed file rename prompt to indicate whether full name or only its root is being changed.
  • Try to determine widths of printed character more accurately.
  • Drop leading space implicitly added to time columns in views (thanks to laggardkernel).
  • Integration:
  • Added info= field to parser of 'mediaprg' output. It provides custom message for the media (patch by zsugabubus).
  • Added udisks2 backend to vifm-media script (bundled script for managing media). Requires python and dbus module for it to be installed (because udisks2 and dbus are too shitty to be used on command-line) (thanks to Tykin).
  • Added vifm-media-osx script that is configured to be used (via 'mediaprg') on OS X (patch by Von Welch).
  • Added FUSE_MOUNT3 filetype format, which is equivalent to FUSE_MOUNT, but doesn't perform unmounting. Helpful to use with something like avfs (thanks to Jose Riha, a.k.a. jose1711).
  • Error stream from 'mediaprg' isn't considered anymore when deciding if mounting/unmounting was successful. While technically an incompatible change, it's unlikely to cause any issues.
  • Spawn 'mediaprg' in foreground to allow interactions with the user, like providing a password (patch by zsugabubus).
  • Properly remove FUSE mount points if they are symbolic links.
  • Assume that any `$TERM` value that starts with `xterm-`, `rxvt-` or `screen-` supports terminal title (thanks to Matthias Braun, a.k.a. mb720).
  • Documentation:
  • Better documentation for TabLine and TabLineSel highlighting groups (thanks to mwgkgk).
  • Clearer documentation/description for :*unmap commands and 'vicmd'/'vixcmd' options (thanks to chelovechishko).
  • Improve documentation of patterns and globs (thanks to afsheenb).
  • Improved documentation on filters (thanks to Sitaram Chamarty).
  • Document more details about expansion of FUSE macros.
  • Make documentation of 'findprg' more readable.
  • Vim-plugin:
  • Added :Vifm command as an alias for :EditVifm (patch by rbong).
  • Added optional splitting of the embedded terminal (g:vifm_embed_split). Has support for Vim's <mods> and <count> (patch by rbong).
  • Added option to synchronize working directory of the embedded instance of vifm with the Vim host (g:vifm_embed_cwd) (patch by rbong).
  • Added ability to replace netrw with vifm (g:vifm_replace_netrw and g:vifm_replace_netrw_cmd) (patch by rbong).
  • Added autodetection of `*.vifm` files as files with `vifm` filetype to the plugin (patch by Anton Kochkov, a.k.a. XVilka).
  • Configuration:
  • Added example of using xsel to sample vifmrc file (thanks to chelovechishko).
  • Enabled 'vimhelp' in sample vifmrc file by default.
  • Performance:
  • Added caching to quickview for a single file to avoid fileviewer being called more often than needed (thanks to agguser).
  • Try to avoid superfluous screen updates related to cursor position.
  • Remember when file doesn't match any file-specific highlighting groups for better performance (thanks to Gomme Bidule).
  • Generate faster regular expressions by vifm-convert-dircolors (thanks to Gomme Bidule).
  • Only on Windows:
  • Upgraded to PDCurses 3.8 (was 3.4) for Windows. This allows using 256 colors inside ConEmu. Note that ConEmu has issues processing 256 colors on the last line of the screen, so avoid using them for status line (thanks to dancread).
  • Other changes:
  • Don't error on trash creation failure due to read-only file system (patch by zsugabubus).
  • Important fixes:
  • Fixed losing files on failed move operation. Source files were deleted assuming they were copied successfully, even when errors regarding some of them were ignored by the user (thanks to zsugabubus).
  • Fixed vifm not making use of large number of color pairs when they are available (thanks to Jose Riha (a.k.a. jose1711) and Hans Petter Jansson (a.k.a. hpjansson)).
  • Fixed color pairs being exhausted on Windows when default color ends up being used often, this caused highlighting to go awry (thanks to dancread).
  • Fixed textual output of graphical previewers not being displayed in view mode (thanks to agguser).
  • Fixed DirEnter autocommand being called with view being in a mixed state of old and new location (thanks to Kendrick Taylor, a.k.a. sixcircuit).

New in vifm 0.10.1 Beta (Jul 15, 2019)

  • Added file preview to miller mode
  • Added preview macro to directly output to terminal, which enables use of Sixel graphics for previewing
  • Added udisks2 backend to vifm-media script (bundled script for managing media) and version of the script for OS X
  • Updated code to make use of large amount of color pairs when available
  • unctionality of previously separate neovim-vifm plugin got merged into the main plugin
  • Multiple improvements to :media menu
  • Improved performance in several use cases (quickview, lots of unhighlighted files, unnecessary cursor updates and redraws)

New in vifm 0.10 Beta (Oct 30, 2018)

  • Added tabs which either operate on the level of layout or level ofindividual panes
  • Added ability to synchronize contents of registers among multipleinstances
  • Added menu for managing media (relies on helper that does themanaging)
  • Improved cursor positioning and control over it
  • Ability to colorize statusline

New in vifm 0.9.1 (Feb 5, 2018)

  • Introduced file view mode known as miller columns or cascading lists, which can be enabled via 'millerview' and configured with 'milleroptions'.
  • Added ability to transpose ls-like view to make it fill by columns, see new 'lsoptions' option.
  • More natural behaviour of movement keys in ls-like view.
  • New `--remote-expr` command-line option that can be used to query state of running instances.
  • Extended retry/ignore/abort query of 'syscalls' to all file operations.
  • More control over highlight groups via `:highlight` suitable for interactive changes.
  • Mostly eliminated the need for repeating ga/gA command through automatic size recalculation.

New in vifm 0.9.1 Beta (Jan 22, 2018)

  • 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.

New in vifm 0.9 (Aug 10, 2017)

  • Introduced tree-like representation of files
  • Added directory comparison facilities
  • Added ability to restore last navigation menu
  • Background operations and programs can now be cancelled
  • Dismissed error output of external programs can now be queried
  • Added shell completion for bash and zsh
  • Now it's possible to configure mappings in dialogs

New in vifm 0.8.1 (Jan 25, 2016)

  • New minor version delivers primarily various small improvements of different
  • kinds. There is also improvement of navigation via named bookmarks (or tags),
  • which can ease keeping track of what is where, and an ability to apply
  • settings to specific directories or sub-trees (via combination of autocommands
  • and local options).
  • Thanks to everyone who was reporting issues during beta period.
  • Main changes:
  • added local options, which work until directory change;
  • added named bookmarks (paths are associated with tags);
  • added autocommands (with DirEnter event);
  • added ability to sort by regexp-extracted part of file name;
  • added builtin directory preview (similar to `tree`);
  • added a way to communicate menu contents to Vim quickfix;
  • added "more" mode that is used to handle status bar content that doesn't fit
  • on the screen;
  • IPC got new (safe) implementation with listing/targeting of active instances,
  • it's enabled by default again;
  • updating local view settings from vifmrc now affects both panes (:windo is
  • not necessary);
  • more predictive cursor updates on directory reload;
  • improvements related to expression and command parsing.
  • More detailed list of changes.
  • Command-line mode:
  • added :setl[ocal] and :setg[lobal] commands to manage values of local options
  • that are specific to current directory and are reset on directory change,
  • similar to local options of Vim;
  • added :pu[t] command that inserts files into current directory (thanks to
  • mvucBmM0);
  • added :winc[md] command-line command (thanks to fogine);
  • added exclamation mark to :shell to suppress spawning new teminal multiplexer
  • pane (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu).
  • :set command and options:
  • added :set foo+=bar syntax for string options (append value);
  • added 'deleteprg' option, which specifies program to run on files that are
  • permanently removed;
  • added 'dirsize' option to control how size of directories is displayed in
  • file views. This enables one to see number of files in a directory rather
  • than its size (thanks to Martin Fischer);
  • added optional %u and %U macros to 'findprg', 'grepprg', and 'locateprg' that
  • allow immediate redirection of command output into custom view without
  • opening a menu (thanks to filterfalse);
  • added 'iooptions' option to configure file system operations. Contains only
  • "fastfilecloning" for btrfs so far (thanks to aleksejrs);
  • added special treatment for "*" as value of 'slowfs', which might be useful
  • in case of very slow handling of requests to mounts enumeration (patch by
  • Cosmin Popescu, a.k.a. cosminadrianpopescu);
  • added handling of "%u" in trash specification on *nix, which is replaced with
  • real user ID (thanks to Regis);
  • allow 'shell' to specify a shell argument on *nix (thanks to loongw);
  • added 'sortgroups' option and "groups" sorting key, which allow sorting by
  • parts of file names (thanks to aleksejrs);
  • added 'title' option to control whether title of terminal should be set.
  • Enabled by default if old title can be restored (thanks to Svyatoslav Mishyn,
  • a.k.a. juef);
  • make "p" in 'tuioptions' affect padding in quick view and view mode;
  • changed 'fusehome' default from temporary directory to data directory (that
  • is $XDG_DATA_HOME/.local/share/fuse/ or $VIFM/fuse/ depending on which parent
  • directory exists, the second one exists by definition, but first might not)
  • (thanks to aleksejrs and to Hendrik Jaeger, a.k.a. henk);
  • changed default value of 'trashdir' on *nix again, this time to
  • "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash". This way it's safer for
  • privacy, although using %r is not very safe in general (thanks to Regis).
  • Configuration:
  • make :set, :filter and :normal zo (and alike) in vifmrc affect all views,
  • thus obsoleting use of :winrun or :windo for this purpose (they still work,
  • the new way is a simpler and more obvious one). This is related to commands
  • executed during vifmrc processing (not those in the right-hand side of
  • mappings, commands, etc.);
  • automatically create ~/.vifm/scripts containing small README file if the
  • directory doesn't exist on startup (thanks to fogine).
  • Core:
  • added autocommands (DirEnter event and :au[tocmd] command) (thanks to
  • filterfalse).
  • File operations:
  • added retry/ignore/abort prompt for file/directory removal when 'syscalls'
  • is on (thanks to Robert Sarkozi);
  • make use of file cloning feature of btrfs when possible and enabled in
  • 'iooptions' (thanks to aleksejrs);
  • preserve file timestamps on copying files with 'syscalls' on (thanks to
  • mvucBmM0);
  • employ inotify on GNU/Linux for more precise watching directories for
  • changes;
  • copy timestamps and permissions on merging directories (thanks to willemw12).
  • Navigation:
  • added named bookmarks (paths are associated with tags). This adds :bmark,
  • :bmarks, :bmgo and :delbmarks command-line commands. Also there is new
  • "bmarks" value for 'vifminfo' (thanks to Schmalzhaf Stefan).
  • Normal and visual modes:
  • accept [count] for "h" and "gh";
  • added zr normal mode key to reset local filter (thanks to filterfalse);
  • ctrl-W | and Ctrl-W _ now can set window size to given count (thanks to
  • filterfalse).
  • Key bindings:
  • remapping of builtin keys that are followed by selectors (e.g.
  • `:nnoremap d y`) (thanks to mvucBmM0).
  • Color schemes:
  • changed default colorscheme to invert colors of the current line.
  • Documentation:
  • documented %= for 'statusline' and 'rulerformat';
  • make --select option more prominent in documentation (thanks to Svyatoslav
  • Mishyn, a.k.a. juef);
  • documented difference between paths in menu with and without trailing slash
  • (thanks to filterfalse).
  • Macros:
  • added %pc macro that splits preview command in two pices: preview command and
  • clear command (thanks to Tomek K., a.k.a. TomiCode).
  • Menus and dialogs:
  • added B key to menus, which acts like b, but creates unsorted (very custom)
  • view (thanks to filterfalse);
  • added "v" key to menu mode that loads current contents into quickfix list of
  • editor (Vim compatible one is assumed) (thanks to filterfalse);
  • added handling of dd in :trashes, :trashes? and :lstrashes, which either
  • deletes an item in trash or empties trash (thanks to Svyatoslav Mishyn,
  • a.k.a. juef);
  • somewhat more informative error titles on issues during file operations;
  • provide conflict resolution options in a dialog rather than on the
  • command-line, which is hard to read with so many options;
  • expand "~" in menus on navigation.
  • Packaging:
  • removed vifmrc-converter. It's been around for four years and not needed any
  • more (thanks to filterfalse);
  • removed contents of autoconf.sh, autoreconf covers what was there (there is a
  • notice in that script now about it just in case) (thanks to Hendrik Jaeger,
  • a.k.a. henk);
  • added --with-sanitize=basic|thread|leak option to configure script;
  • added missing script that's necessary for %s macro in GNU screen. Was lost
  • for a long time;
  • work around compilation on systems where MAX_ARG_STRLEN is defined, but
  • unusable (thanks to Marcin Juszkiewicz, a.k.a. hrw, Michel Normand and
  • Michael Vetter, a.k.a. jubalh);
  • put right-hand side of user-defined commands into separate scope of
  • if-else-endif expressions. This prevents affecting of regular input by
  • malformed user-defined command.
  • Scripting:
  • added :elseif command (thanks to filterfalse);
  • added &option syntax for :let command;
  • added && and || operators to expression parser (thanks to filterfalse);
  • added getpanetype() builtin function that retrieves type of current pane
  • (thanks to filterfalse);
  • added layoutis() builtin function that answers queries about current
  • interface configuration (thanks to fogine);
  • added paneisat() builtin function that answers queries about current pane
  • position (thanks to fogine);
  • added inline comments to allow less verbose commenting in configuration;
  • rewrote expression parser to prevent side-effects from occurring until syntax
  • is checked.
  • TUI (Text User Interface):
  • added match numbers to search messages on status bar (patch by Cosmin
  • Popescu, a.k.a. cosminadrianpopescu);
  • added dynamic view column alignment (specified by "*", just like "-" for left
  • alignment) (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu);
  • added "more" mode that is used to handle status bar content that doesn't fit
  • on the screen (thanks to Bruce Hunsaker, a.k.a. hunsakerbn, and Svyatoslav
  • Mishyn, a.k.a. juef);
  • added builtin directory preview (thanks to Damian Ariel Perticone and
  • Alexandre Viau);
  • added "fileext" sorting key, which sorts files by extensions and directories
  • by name (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu);
  • added "nitems" sorting, which sorts by number of items in a directory (thanks
  • to filterfalse);
  • added "nlinks" sorting key to display number of hard links to a file on *nix
  • systems (thanks to filterfalse);
  • normalize surrounding spaces in menu and dialog titles;
  • lower minimum supported terminal width and height from 30x10 to 20x5;
  • update cursor position on file disappearing in more predictable way. Use the
  • closes file to the previously active one that still exists (thanks to
  • ranousse);
  • display lower bound on item count in status bar progress messages (e.g. on
  • :grep).
  • Important fixes:
  • assume UTF-8 sequences can be broken (thanks to Svyatoslav Mishyn, a.k.a.
  • juef);
  • made setting title inside terminal multiplexers (when terminal type is
  • "screen*") work;
  • check file system sensitivity on OS X (thanks to loongw);
  • fixed startup on Windows 10 (thanks to th1rdey3 and Robert Sarkozi);
  • fixed swapped absolute/relative link creation on :alink/:rlink commands
  • (patch by MadMaverick9);
  • multiple fixes for custom views (thanks to filterfalse);
  • more careful treating of files with colons in their names for menus and
  • custom views (thanks to aleksejrs);
  • fixed ranges for :yank, 0.8 regression (thanks to Marius Schmidl);
  • fixed crash on copy-like operations that move several files into subdirectory
  • of another view (thanks to Marius Schmidl);
  • fixed creation of intermediate directories on merging directories (thanks to
  • willemw12).
  • Vim-plugin:
  • added set of :*Vim commands to vifm run from Vim plugin, which overrule
  • initial :*Vifm command behaviour (thanks to Ross Hadden, a.k.a. rosshadden);
  • changed plugin to do not depend on location of vifm. g:vifm_home is ignored
  • from now on (thanks to aleksejrs).
  • Only on Windows:
  • display directory size on Windows more correctly;
  • improvements in running commands with special characters and/or spaces
  • (thanks to Stas Malavin).
  • Other changes:
  • added handling of "-" command-line argument specified in place of directory
  • path as instruction to read list of files from stdin;
  • added --server-list and --server-name command-line options that enumerates
  • names of currently running vifm servers and sets name of target/this instance
  • respectively;
  • added optional argument for --logging parameter that specifies path to
  • startup log (thanks to Cosmin Popescu, a.k.a. cosminadrianpopescu);
  • invalidate directory size (calculated via ga/gA) if noticed that directory
  • was changed. This affects all parent directories as well, way easier to see
  • what needs recalculation after file moving/removal;
  • warn about --remote command being disabled at build-time (thanks to
  • Svyatoslav Mishyn, a.k.a. juef);
  • do not finish argument parsing after finding --help or --version, continue
  • and validate the rest of command-line (thanks to Svyatoslav Mishyn, a.k.a.
  • juef);
  • display incomplete file name on rename instead of failing with error on
  • Unicode conversion issues.

New in vifm 0.8.1 beta (Jan 25, 2016)

  • New minor version delivers primarily various small improvements of different
  • kinds. There is also improvement of navigation via named bookmarks (or tags),
  • which can ease keeping track of what is where, and an ability to apply
  • settings to specific directories or sub-trees (via combination of autocommands
  • and local options).
  • The beta stage will last about two weeks. In case any serious bugs are found
  • during this period, another beta version might be released.
  • Main changes:
  • added local options, which work until directory change;
  • added named bookmarks (paths are associated with tags);
  • added autocommands (with DirEnter event);
  • added ability to sort by regexp-extracted part of file name;
  • added builtin directory preview (similar to `tree`);
  • added a way to communicate menu contents to Vim quickfix;
  • IPC got new (safe) implementation with listing/targeting of active instances,
  • it's enabled by default again;
  • updating local view settings from vifmrc now affects both panes (:windo is
  • not necessary);
  • more predictive cursor updates on directory reload;
  • improvements related to expression and command parsing.
  • More detailed list of changes.
  • Command-line mode:
  • added :setl[ocal] and :setg[lobal] commands to manage values of local options
  • that are specific to current directory and are reset on directory change,
  • similar to local options of Vim;
  • added :pu[t] command that inserts files into current directory (thanks to
  • mvucBmM0);
  • added :winc[md] command-line command (thanks to fogine);
  • added exclamation mark to :shell to suppress spawning new teminal multiplexer
  • pane (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu).
  • :set command and options:
  • added :set foo+=bar syntax for string options (append value);
  • added 'deleteprg' option, which specifies program to run on files that are
  • permanently removed;
  • added 'dirsize' option to control how size of directories is displayed in
  • file views. This enables one to see number of files in a directory rather
  • than its size (thanks to Martin Fischer);
  • added optional %u and %U macros to 'findprg', 'grepprg', and 'locateprg' that
  • allow immediate redirection of command output into custom view without
  • opening a menu (thanks to filterfalse);
  • added 'iooptions' option to configure file system operations. Contains only
  • "fastfilecloning" for btrfs so far (thanks to aleksejrs);
  • added special treatment for "*" as value of 'slowfs', which might be useful
  • in case of very slow handling of requests to mounts enumeration (patch by
  • Cosmin Popescu, a.k.a. cosminadrianpopescu);
  • added handling of "%u" in trash specification on *nix, which is replaced with
  • real user ID (thanks to Regis);
  • allow 'shell' to specify a shell argument on *nix (thanks to loongw);
  • added 'sortgroups' option and "groups" sorting key, which allow sorting by
  • parts of file names (thanks to aleksejrs);
  • make "p" in 'tuioptions' affect padding in quick view and view mode;
  • changed 'fusehome' default from temporary directory to data directory (that
  • is $XDG_DATA_HOME/.local/share/fuse/ or $VIFM/fuse/ depending on which parent
  • directory exists, the second one exists by definition, but first might not)
  • (thanks to aleksejrs and to Hendrik Jaeger, a.k.a. henk);
  • changed default value of 'trashdir' on *nix again, this time to
  • "%r/.vifm-Trash-%u,$VIFM/Trash,%r/.vifm-Trash". This way it's safer for
  • privacy, although using %r is not very safe in general (thanks to Regis).
  • Configuration:
  • make :set, :filter and :normal zo (and alike) in vifmrc affect all views,
  • thus obsoleting use of :winrun or :windo for this purpose (they still work,
  • the new way is a simpler and more obvious one). This is related to commands
  • executed during vifmrc processing (not those in the right-hand side of
  • mappings, commands, etc.);
  • automatically create ~/.vifm/scripts containing small README file if the
  • directory doesn't exist on startup (thanks to fogine).
  • Core:
  • added autocommands (DirEnter event and :au[tocmd] command) (thanks to
  • filterfalse).
  • File operations:
  • added retry/ignore/abort prompt for file/directory removal when 'syscalls'
  • is on (thanks to Robert Sarkozi);
  • make use of file cloning feature of btrfs when possible and enabled in
  • 'iooptions' (thanks to aleksejrs);
  • preserve file timestamps on copying files with 'syscalls' on (thanks to
  • mvucBmM0);
  • employ inotify on GNU/Linux for more precise watching directories for
  • changes.
  • Navigation:
  • added named bookmarks (paths are associated with tags). This adds :bmark,
  • :bmarks, :bmgo and :delbmarks command-line commands. Also there is new
  • "bmarks" value for 'vifminfo' (thanks to Schmalzhaf Stefan).
  • Normal and visual modes:
  • accept [count] for "h" and "gh";
  • added zr normal mode key to reset local filter (thanks to filterfalse);
  • ctrl-W | and Ctrl-W _ now can set window size to given count (thanks to
  • filterfalse).
  • Key bindings:
  • remapping of builtin keys that are followed by selectors (e.g.
  • `:nnoremap d y`) (thanks to mvucBmM0).
  • Color schemes:
  • changed default colorscheme to invert colors of the current line.
  • Documentation:
  • documented %= for 'statusline' and 'rulerformat';
  • make --select option more prominent in documentation (thanks to Svyatoslav
  • Mishyn, a.k.a. juef);
  • documented difference between paths in menu with and without trailing slash
  • (thanks to filterfalse).
  • Macros:
  • added %pc macro that splits preview command in two pices: preview command and
  • clear command (thanks to Tomek K., a.k.a. TomiCode).
  • Menus and dialogs:
  • added B key to menus, which acts like b, but creates unsorted (very custom)
  • view (thanks to filterfalse);
  • added "v" key to menu mode that loads current contents into quickfix list of
  • editor (Vim compatible one is assumed) (thanks to filterfalse);
  • added handling of dd in :trashes, :trashes? and :lstrashes, which either
  • deletes an item in trash or empties trash (thanks to Svyatoslav Mishyn,
  • a.k.a. juef);
  • somewhat more informative error titles on issues during file operations;
  • provide conflict resolution options in a dialog rather than on the
  • command-line, which is hard to read with so many options;
  • expand "~" in menus on navigation.
  • Packaging:
  • removed vifmrc-converter. It's been around for four years and not needed any
  • more (thanks to filterfalse);
  • removed contents of autoconf.sh, autoreconf covers what was there (there is a
  • notice in that script now about it just in case) (thanks to Hendrik Jaeger,
  • a.k.a. henk);
  • added --with-sanitize=basic|thread|leak option to configure script;
  • added missing script that's necessary for %s macro in GNU screen. Was lost
  • for a long time;
  • work around compilation on systems where MAX_ARG_STRLEN is defined, but
  • unusable (thanks to Marcin Juszkiewicz, a.k.a. hrw, Michel Normand and
  • Michael Vetter, a.k.a. jubalh);
  • put right-hand side of user-defined commands into separate scope of
  • if-else-endif expressions. This prevents affecting of regular input by
  • malformed user-defined command.
  • Scripting:
  • added :elseif command (thanks to filterfalse);
  • added &option syntax for :let command;
  • added && and || operators to expression parser (thanks to filterfalse);
  • added getpanetype() builtin function that retrieves type of current pane
  • (thanks to filterfalse);
  • added layoutis() builtin function that answers queries about current
  • interface configuration (thanks to fogine);
  • added paneisat() builtin function that answers queries about current pane
  • position (thanks to fogine);
  • added inline comments to allow less verbose commenting in configuration;
  • rewrote expression parser to prevent side-effects from occurring until syntax
  • is checked.
  • TUI (Text User Interface):
  • added match numbers to search messages on status bar (patch by Cosmin
  • Popescu, a.k.a. cosminadrianpopescu);
  • added dynamic view column alignment (specified by "*", just like "-" for left
  • alignment) (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu);
  • added "more" mode that is used to handle status bar content that doesn't fit
  • on the screen (thanks to Bruce Hunsaker, a.k.a. hunsakerbn, and Svyatoslav
  • Mishyn, a.k.a. juef);
  • added builtin directory preview (thanks to Damian Ariel Perticone and
  • Alexandre Viau);
  • added "fileext" sorting key, which sorts files by extensions and directories
  • by name (patch by Cosmin Popescu, a.k.a. cosminadrianpopescu);
  • added "nitems" sorting, which sorts by number of items in a directory (thanks
  • to filterfalse);
  • added "nlinks" sorting key to display number of hard links to a file on *nix
  • systems (thanks to filterfalse);
  • normalize surrounding spaces in menu and dialog titles;
  • lower minimum supported terminal width and height from 30x10 to 20x5;
  • update cursor position on file disappearing in more predictable way. Use the
  • closes file to the previously active one that still exists (thanks to
  • ranousse);
  • display lower bound on item count in status bar progress messages (e.g. on
  • :grep).
  • Important fixes:
  • assume UTF-8 sequences can be broken (thanks to Svyatoslav Mishyn, a.k.a.
  • juef);
  • made setting title inside terminal multiplexers (when terminal type is
  • "screen*") work;
  • check file system sensitivity on OS X (thanks to loongw);
  • fixed startup on Windows 10 (thanks to th1rdey3 and Robert Sarkozi);
  • fixed swapped absolute/relative link creation on :alink/:rlink commands
  • (patch by MadMaverick9);
  • multiple fixes for custom views (thanks to filterfalse);
  • more careful treating of files with colons in their names for menus and
  • custom views (thanks to aleksejrs);
  • fixed ranges for :yank, 0.8 regression (thanks to Marius Schmidl);
  • fixed crash on copy-like operations that move several files into subdirectory
  • of another view (thanks to Marius Schmidl);
  • fixed creation of intermediate directories on merging directories (thanks to
  • willemw12).
  • Vim-plugin:
  • added set of :*Vim commands to vifm run from Vim plugin, which overrule
  • initial :*Vifm command behaviour (thanks to Ross Hadden, a.k.a. rosshadden);
  • changed plugin to do not depend on location of vifm. g:vifm_home is ignored
  • from now on (thanks to aleksejrs).
  • Only on Windows:
  • display directory size on Windows more correctly;
  • improvements in running commands with special characters and/or spaces
  • (thanks to Stas Malavin).
  • Other changes:
  • added handling of "-" command-line argument specified in place of directory
  • path as instruction to read list of files from stdin;
  • added --server-list and --server-name command-line options that enumerates
  • names of currently running vifm servers and sets name of target/this instance
  • respectively;
  • added optional argument for --logging parameter that specifies path to
  • startup log (thanks to Cosmin Popescu, a.k.a. cosminadrianpopescu);
  • invalidate directory size (calculated via ga/gA) if noticed that directory
  • was changed. This affects all parent directories as well, way easier to see
  • what needs recalculation after file moving/removal;
  • warn about --remote command being disabled at build-time (thanks to
  • Svyatoslav Mishyn, a.k.a. juef);
  • do not finish argument parsing after finding --help or --version, continue
  • and validate the rest of command-line (thanks to Svyatoslav Mishyn, a.k.a.
  • juef);
  • display incomplete file name on rename instead of failing with error on
  • Unicode conversion issues.

New in vifm 0.8 (Jan 25, 2016)

  • New version brings several useful improvements of different kinds. The most
  • substantial addition is custom views that allow one to combine files from
  • several directories in one view, which in turn enables processing of
  • search/grep/etc. results similar to handling contents of a regular directory.
  • Thanks to everyone who was reporting issues during beta period.
  • Also reminding about #vifm@Freenode IRC channel, color schemes preview at
  • http://vifm.info/colorschemes.shtml and introducing http://q2a.vifm.info Q&A
  • site for general usage questions.
  • Main changes:
  • added filename specific highlight (with a script to convert ls options);
  • added custom views, which contrary to regular views can contain files that do
  • not belong to the same directory;
  • added job bar to display active backgrounded file operations;
  • added command-line mode abbreviations;
  • added global configuration and color schemes directory;
  • added live search match highlighting;
  • added optional per-file progress for file operations;
  • added full path patterns ({{globs}} and //regexp//);
  • added command-line options to control file/directory selection and selection
  • processing to make it easier to use vifm as a file picker;
  • color schemes got ".vifm" extension, but the old-style names will still work
  • for now;
  • XDG specification support;
  • ability to use terminal applications to preview graphics (e.g.
  • w3mimgdisplay).
  • File operations:
  • added per-file overwrite confirmation on directory merging (thanks to
  • willemw12);
  • added detailed list of errors when 'syscalls' is used (thanks to willemw12).
  • Key bindings:
  • added F key to less-like (file view) mode, which acts similar to `tail -F` or
  • F key in less (thanks to Daniel Dettlaff, a.k.a. dmilith);
  • added b key to menu mode that creates custom view filled with menu items
  • filtering out those that are not paths;
  • added zd normal and visual modes key to exclude items from custom views;
  • optional per-file progress in dialog mode activated by hitting "i" while
  • operation is being performed.
  • :set command and options:
  • added 'chaselinks' option to automatically expand all symbolic links in path
  • of a view (might not work on Windows) (thanks to filterfalse);
  • added 'mintimeout' option. It enables controlling responsiveness on external
  • events by Vifm (thanks to hofheinz);
  • added 'wordchars' option to specify which characters in command-line mode
  • should be considered as part of a word (thanks to filterfalse);
  • added ^= operation for charset options;
  • added %[ and %] macros for 'statusline'/'ruler' (thanks to ranousse);
  • added "p" to 'shortmess' option to control tilde shortening of path in view
  • titles (thanks to Martin Fischer);
  • changed default value of 'trashdir' from "$VIFM/Trash" to
  • "%r/.vifm-Trash,$VIFM/Trash" (thanks to Joseph LP, a.k.a. ootput);
  • normalized sorting keys/view column names: "type" -> "dir", display real mode
  • in octal for "mode", make "type" actually display file type (as "mode" did
  • before) (thanks to Michal Belica, a.k.a. beli-sk);
  • united last pattern of :substitute command with search history (thanks to
  • filterfalse).
  • Command-line mode:
  • added :highlight {pattern} for filename specific highlight (thanks to Ink,
  • a.k.a. inknoir, filterfalse and Michael Maddern, a.k.a. madders);
  • added :cabbrev, :cnoreabbrev and :cunabbrev commands to manage command-line
  • mode abbreviations (thanks to filterfalse);
  • added Ctrl-X / (slash) key to that inserts last search pattern into current
  • cursor position (thanks to filterfalse);
  • added Ctrl-] key to trigger abbreviation expansion;
  • added single-argument form of :file[x]type and :fileviewer commands that
  • lists (in menu mode) currently registered patterns that match specified file
  • name;
  • added :cq[uit] command to exit with non-zero exit code and also abort
  • directory choosing (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran);
  • added :trashes? to display sizes of each non-empty trash directories (thanks
  • to Svyatoslav Mishyn, a.k.a. juef);
  • added regexp patterns to :file[x]type and :fileviewer commands (thanks to
  • filterfalse);
  • added :redr[aw] command to force immediate redraw (thanks to filterfalse);
  • allow non-printable characters to be arguments of :commands (thanks to
  • filterfalse);
  • extended :sync command to support selective synchronization (user can choose
  • among location, cursor position, local options and filters) (thanks to
  • filterfalse).
  • Completion:
  • complete `clear` subcommand of :highlight.
  • Angle bracket notation:
  • added angle bracket notation (less-than character, '

New in vifm 0.8 beta (Jan 25, 2016)

  • New version brings several useful improvements of different kinds. The most
  • substantial addition is custom views that allow one to combine files from
  • several directories in one view, which in turn enables processing of
  • search/grep/etc. results similar to handling contents of a regular directory.
  • That change alone affected internal structure quite seriously which combined
  • with operations on system calls from the previous release distant new version
  • far enough from 0.7 to name it 0.8.
  • Version change also gives one a moral right to introduce incompatible changes.
  • So if anyone remembers me postponing changing defaults or something like that
  • and is still waiting on it, please send a reminder (unfortunately I was
  • careless enough to didn't make detailed list of such things). As of now the
  • following items are under evaluation:
  • removing "options", "filetypes", "commands" from 'vifminfo' option (not a
  • big deal, but it's not really useful as well, and maybe potentially
  • harmful);
  • removing 'trash' option as it effectively affects quite a lot things and is
  • better to be enabled;
  • have 'hlsearch' off by default as normally search doesn't select anything
  • and user can accidentally run some operation on too many files with default
  • setup.
  • Please see the README file in packages for links where feedback can be
  • provided.
  • The beta stage will last about two weeks. In case any serious bugs are found
  • during this period, another beta version might be released.
  • Main changes:
  • added filename specific highlight;
  • added custom views, which contrary to regular views can contain files that do
  • not belong to the same directory;
  • added job bar to display active backgrounded file operations;
  • added command-line mode abbreviations;
  • added global configuration and color schemes directory;
  • added live search match highlighting;
  • added optional per-file progress for file operations;
  • added full path patterns ({{globs}} and //regexp//);
  • added command-line options to control file/directory selection and selection
  • processing to make it easier to use vifm as a file picker;
  • color schemes got ".vifm" extension, but the old-style names will still work
  • for now;
  • XDG specification support.
  • File operations:
  • added per-file overwrite confirmation on directory merging (thanks to
  • willemw12);
  • added detailed list of errors when 'syscalls' is used (thanks to willemw12).
  • Key bindings:
  • added F key to less-like (file view) mode, which acts similar to `tail -F` or
  • F key in less (thanks to Daniel Dettlaff, a.k.a. dmilith);
  • added b key to menu mode that creates custom view filled with menu items
  • filtering out those that are not paths;
  • added zd normal and visual modes key to exclude items from custom views;
  • optional per-file progress in dialog mode activated by hitting "i" while
  • operation is being performed.
  • :set command and options:
  • added 'chaselinks' option to automatically expand all symbolic links in path
  • of a view (might not work on Windows) (thanks to filterfalse);
  • added 'mintimeout' option. It enables controlling responsiveness on external
  • events by Vifm (thanks to hofheinz);
  • added 'wordchars' option to specify which characters in command-line mode
  • should be considered as part of a word (thanks to filterfalse);
  • added ^= operation for charset options;
  • added %[ and %] macros for 'statusline'/'ruler' (thanks to ranousse);
  • added "p" to 'shortmess' option to control tilde shortening of path in view
  • titles (thanks to Martin Fischer);
  • changed default value of 'trashdir' from "$VIFM/Trash" to
  • "%r/.vifm-Trash,$VIFM/Trash" (thanks to Joseph LP, a.k.a. ootput);
  • normalized sorting keys/view column names: "type" -> "dir", display real mode
  • in octal for "mode", make "type" actually display file type (as "mode" did
  • before) (thanks to Michal Belica, a.k.a. beli-sk);
  • united last pattern of :substitute command with search history (thanks to
  • filterfalse).
  • Command-line mode:
  • added :highlight {pattern} for filename specific highlight (thanks to Ink,
  • a.k.a. inknoir, filterfalse and Michael Maddern, a.k.a. madders);
  • added :cabbrev, :cnoreabbrev and :cunabbrev commands to manage command-line
  • mode abbreviations (thanks to filterfalse);
  • added Ctrl-X / (slash) key to that inserts last search pattern into current
  • cursor position (thanks to filterfalse);
  • added Ctrl-] key to trigger abbreviation expansion;
  • added single-argument form of :file[x]type and :fileviewer commands that
  • lists (in menu mode) currently registered patterns that match specified file
  • name;
  • added :cq[uit] command to exit with non-zero exit code and also abort
  • directory choosing (thanks to Jeet Sukumaran, a.k.a. jeetsukumaran);
  • added :trashes? to display sizes of each non-empty trash directories (thanks
  • to Svyatoslav Mishyn, a.k.a. juef);
  • added regexp patterns to :file[x]type and :fileviewer commands (thanks to
  • filterfalse);
  • added :redr[aw] command to force immediate redraw (thanks to filterfalse);
  • allow non-printable characters to be arguments of :commands (thanks to
  • filterfalse);
  • extended :sync command to support selective synchronization (user can choose
  • among location, cursor position, local options and filters) (thanks to
  • filterfalse).
  • Completion:
  • complete `clear` subcommand of :highlight.
  • Angle bracket notation:
  • added angle bracket notation (less-than character, '

New in vifm 0.7.8 (Jan 25, 2016)

  • 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 frequently asked
  • 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.
  • 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).
  • 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 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).

New in vifm 0.7.7 (May 20, 2014)

  • Vifm has had support for navigation by file number for years, finally it can display those numbers
  • Support of trash directories got better with ability to have trash per mount point and new trash menus
  • Command-line mode now has Ctrl-X prefixed keys that insert parts of filenames and filters (kind of Ctrl-R in Vim)
  • Bookmarks are now timestamped for more predictable management (mainly deletion and overwriting)
  • For security reasons remote commands are now disabled at configuration stage by default
  • Most of long-running operations (:find, :copy, etc.) now can be cancelled by pressing Ctrl-C
  • Menus with list of files got unified "gf" (for navigation) and "e" (for editing) shortcuts
  • Several fixes and %n macro for better integration with terminal multiplexers
  • Ability to sort list view with disabled grouping of directories
  • Expression parser was extended in a couple of ways
  • Added three more sample color schemes

New in vifm 0.7.6 (Nov 12, 2013)

  • Main changes:
  • Added interactive local filter.
  • Added external editing of command-line content with 'vicmd'.
  • Added integration with tmux.
  • Added options to configure external commands for :apropos, :find, :grep and :locate commands.
  • Added desktop entry file (*nix only) and updated application icon.
  • Fixed build for some combinations of OS/environments (OS X, 32/64-bit cygwin, Windows).
  • Performance:
  • Increased performance of (re)loading content for view mode
  • Key bindings:
  • Process [count] passed to gUU, gU, gUgU, gu, guu and gugu commands.
  • Made all Ctrl-W x keys available in view mode
  • Changed meaning of the R key in view mode from redrawing view to reloading it preserving scroll position
  • Normal and visual modes related changes:
  • Added q:, q/, q? and q= keys (q= is defined for normal mode only) to prompt for command-line in external editor.
  • Added "=" normal mode key, which activates file name filtering.
  • Command-line mode related changes:
  • Added "=" and "filter" values for :history command, to show history of local filter.
  • Added Ctrl-G key to start editing in external editor (for editing command, search pattern and file renames).
  • Added optional argument for :invert command to control more kinds of inversion
  • Better order of command validity checks.
  • Show better error message on unmatched quotes in command arguments.
  • Store cancelled prompt input in prompt history.
  • Check destination path existence before changing directory to it on :sync command.
  • Use last search pattern as filename filter when :filter command gets an empty argument (:filter//, :filter"", :filter'')
  • Match only filename against pattern in :fileviewer instead of full path.
  • set command and options:
  • Added 'aproposprg', 'findprg', 'grepprg' and 'locateprg' options to specify external commands format.
  • Added "fhistory" to 'vifminfo', which controls storing of local filter history.
  • Added "f" flag to 'cpoptions' option. It controls initial state of filename filter inversion for :filter[!] {regex} command
  • From now on not absolute paths for the 'fusehome' options are rejected.
  • Expand environment variables in values of the 'fusehome' and 'trashdir' options
  • More adequate reaction on setting 'trashdir' option to wrong value.
  • Do not reset selection on search when 'hlsearch' is reset.
  • File filtering:
  • Distinguish files and directories in filename filter by appending a slash to names of directories.
  • Separated file name filter into manual and automatic, mainly for convenience.
  • TUI (Text User Interface):
  • Preserve current cursor position on view resorting.
  • Force split-view when two paths are specified on command-line
  • Consider 'classify' option on displaying file name in the statusbar
  • For Vim:
  • Added syntax and filetype plugins for command-line editing buffers
  • Updated syntax file to highlight more elements
  • Only on Windows:
  • Filter files in case insensitive way on Windows.
  • Don't wait finishing of GUI applications on Windows
  • Other changes:
  • Added integration with tmux.
  • Added desktop entry file
  • Added merge option for name conflict resolution, which allows for merging two directories overwriting files with matching names.
  • Updated application icon
  • Don't overwrite directory stack stored in vifminfo on exit unless it was changed in current session.
  • Improved documentation on several subjects.
  • Display error after sourcing file with unmatched :if/:endif statements
  • Major fixes:
  • Fixed configuration when wcscasecmp(), wcsncasecmp() or set_escdelay() functions is not available
  • Fixed reserving of about 1 GiB piece of memory on 256-color terminals (sorry about that).
  • Fixed running of executable with symbols that require escaping in their name (*nix only). Strangely enough, it wasn't noticed before.
  • Fixed terminal hang after executing several external commands in a row
  • Fixed search of the first element in file list when displaying of parent directory is disabled.
  • Fixed fails on running executables when 'fastrun' option is on

New in vifm 0.7.5 (May 13, 2013)

  • Configuration:
  • Added --without/[with]-dyn-X11 flag to the configure script to control static/dynamic linking against libX11 library.
  • Don't use libtool in build process on *nix platforms
  • Documentation:
  • Slightly updated plugin related documentation.
  • Macros:
  • Added macros that are expanded to register's content
  • set command and options:
  • Added 'shortmess' option and its first flag: "T" to shorten long status-bar messages
  • Added "perms" sorting key on *nix
  • Added new type of option (charset) and used it for 'cpoptions' and 'shortmess' options.
  • Color scheme related changes:
  • Added sample color schemes
  • Don't fallback to default colors on try to switch to a colorscheme, which is not supported by terminal.
  • TUI (Text User Interface):
  • Added parsing of escape codes in the preview pane.
  • Added parsing of escape codes in explore (less-like) mode.
  • Don't redraw file list for explore window on resize.
  • Less updates for window in explore mode on resize.
  • Menus and dialogs:
  • Changed the way title of the permissions dialog is composed.
  • Command-line mode related changes:
  • Allowed exclamation mark for the :sync command (to force synchronization of cursor position when used without arguments).
  • Don't store last command-line command for the dot normal mode command between sessions. Also it doesn't depend on command-line history anymore and can be used with completely disabled history.
  • Made :execute process its arguments just like :echo command (thanks to Daniel Dettlaff, a.k.a. dmilith, which made me discover old behaviour).
  • Don't accept arguments to the :help command when 'vimhelp' option is off.
  • Only on Windows:
  • Pause on failed execution of a help command. Thanks to filterfalse.
  • Pause when execution of shell command fails (e.g. on `:!foobar-does-not-exist`).
  • Other changes:
  • Added Gentoo live ebuild.
  • Added expand() builtin function to expand macros
  • Less-like mode now highlights multiple matches in a line.
  • Less-like mode is now updated immediately when one changes 'wrap' option.
  • Save dot files filter state in vifminfo.
  • Major fixes:
  • Various changes in configuration using autotools.
  • Removed using of libtool in build process on *nix-like systems.
  • vifminfo file update on Windows (broken in 0.7.4b).
  • Various issues with displaying wide characters (e.g. Chinese).
  • Ctrl-W H/J/K/L shortcuts and less-like view.
  • Issues with calling Vim on :help command.

New in vifm 0.7.4b Beta (Jan 9, 2013)

  • This version is a minor bugfix release. It doesn't contain any new features. The release fixes more than 17 bugs found since version 0.7.4a.
  • Because of promise not to release anything without beta-testing, even this bugfix release has a beta stage, which should last about two weeks. In case some bugs will be found, a second beta will be released in a week.
  • Fixes are related to the following subjects:
  • Interaction with the screen tool
  • Working with registers (old, but unreported bugs).
  • Rights elevation and dot directories on Windows.
  • Processing of vifminfo file
  • Handling of colorscheme files
  • Displaying of CJK characters
  • 'classify' option

New in vifm 0.7.4a (Jan 9, 2013)

  • 0.7.4 package contains configuration files of autotools of different versions. As a result it's not always possible to build vifm 0.7.4 by running `./configure && make`. The author is sorry about wasted time of users spent on building vifm with partially broken build system.
  • Anyway this mistake has also a good point. 0.7.4a fixes several bugs, some of which are related to new features.

New in vifm 0.7.3a (Jun 25, 2012)

  • Completion:
  • Better completion for :colorscheme command.
  • Documentation:
  • Added a section about color schemes to the documentation.
  • Documented that %m, %M, %s, %S and %i have bigger priority than &.
  • Documented that %m, %M, %s, %S and %i are mutually exclusive.
  • Documented treating of whitespace around option names in :set command.
  • :set command and options:
  • Allowed whitespace after option name in :set command.
  • Added checks for correct value of 'tabstop' and 'timeoutlen' options.
  • Reset 'columns' and 'lines' options to real number of columns.
  • Reset value of 'scrolloff' option to zero on attempt to assign a negative value to it.
  • Faster execution of `:set sort=foo sortorder sortnumbers` in vifmrc.
  • TUI (Terminal User Interface):
  • Faster redrawing of statusbar with "-- VISUAL --" message after "Press Enter" message.
  • Command-line mode related changes:
  • Expand tilde in the second argument of :colorscheme command.
  • Forbid relative paths in :colorscheme command until vifm is completely loaded.
  • Pass range given to alias to an aliased command.
  • Performance:
  • Faster Ctrl-W x, Ctrl-W o, Ctrl-W s, Ctrl-W v, Ctrl-W =, Ctrl-W , Ctrl-W -, Ctrl-W +, Ctrl-W |, Ctrl-W _.
  • Faster redraw on terminal resizing.
  • Made file filtering using regular expressions work faster (matters when directory contains several thousands files).
  • Draw quickview on startup only once.
  • Normal and visual modes related changes:
  • Show correct number of selected files in visual mode after n and N keys.
  • And bug fixes.

New in vifm 0.7.2a (Mar 16, 2012)

  • This is no a real release, just repacked version of the previous one.
  • There are two reasons for doing this:
  • sources of 0.7.2 were packed without the root directory included
  • binaries for Windows of 0.7.2 are missing data/vifm-help.txt file

New in vifm 0.7.2 (Feb 25, 2012)

  • set command and options:
  • Added 'rulerformat' option.
  • Added 'statusline' option.
  • Added 'columns' and 'lines' options.
  • Added 'trashdir' option.
  • Command-line mode related changes:
  • Added optional argument for the :sync command.
  • Added support for running :cmap, :nmap and :vmap with one argument.
  • Added recursive mode for :rename command.
  • Added :let and :unlet commands to work with environment variables.
  • Added :windo and :winrun commands.
  • Never change active view on :restart command.
  • Allowed using of macros with :clone command.
  • Angle bracket notation:
  • Added .
  • Only on Windows:
  • Added embedded icon.
  • Added file properties dialog.
  • Show "Sorting directory..." message only for big directories.
  • Change console title.
  • Made determining of home directory more intelligent.
  • Made 'sortnumbers' work.
  • Avoid unnecessary directory view updates (like after C key).
  • Allow using of backward slashes in :rename command.
  • Let :s and :gs filename modifiers change slash type.
  • Properly quit vifm on console closing.
  • Added :u filename modifier for UNC computer name.
  • Added file attributes in status bar and file info view.
  • Normal and visual modes related changes:
  • Added ctrl-w p, ctrl-w b and ctrl-w t normal mode keys.
  • Configuration:
  • Added $VIFM and $MYVIFMRC environment variables.
  • Now vifm will add all subdirectories of ~/.vifm/scripts to PATH.
  • Better check for old-style color schemes file.
  • For Vim:
  • Added g:vifm_exec_args variable for the plugin.
  • Other changes:
  • Added --select command line argument.
  • Added --remote command line argument.
  • Added support for character classes in globals.
  • Restore terminal title on exit.
  • Reset dot and filename filters if they hide bookmarked file.
  • Made vifm react faster on external changes.

New in vifm 0.7.1 (Nov 16, 2011)

  • Changed meaning of :split command (so replace it with :vsplit in your vifmrc).
  • Added backgrounding of :copy, :move, :delete, ga and gA commands.
  • Added horizontal splitting and keys to control size of the panes.
  • Added less-like view mode.
  • Made some changes to the Vim plugin.
  • Windows version was made much more usable.
  • Changes in details
  • :set command and options:
  • Added 'scrollbind', 'wrapscan', 'incsearch', 'cpoptions', 'laststatus' and 'tabstop' options.
  • Make 'ignorecase' and 'smartcase' affect f and F.
  • Don't use position in the view on ' key, when 'autochpos' is off.
  • Angle bracket notation:
  • Added support for more angle bracket notations in mappings (, , , , , , , , , , , , , , , ..., ).
  • Added , ..., , , ..., , , ..., , only for Windows.
  • Added as synonyms for (where X is a key).
  • Added angle bracket notation and as synonyms for .
  • Added Ctrl + Alt + letter combinations, only for *nix.
  • Command-line mode related changes:
  • Added :split! to toggle between only and split view.
  • Added :file to quick run one of associated commands.
  • Added backgrounding of :copy, :move and :delete commands.
  • Added :delete!.
  • Added :execute, :source commands.
  • Added support for using environment variables as :cd or :pushd arguments.
  • Added support for :substitute command without arguments.
  • Added notation to run internal vifm commands from user defined commands.
  • Allowed exclamation mark for :view command (to prevent view closing).
  • Allowed question mark for :mark command (to prevent bookmark overwriting).
  • Completion:
  • Added completion of environment variables (:cd, :pushd, :! and :!!).
  • Normal and visual modes related changes:
  • Added '(' and ')' keys for normal and visual modes.
  • Added Ctrl-A and Ctrl-X keys (normal and visual modes).
  • Added e key for normal mode.
  • Made i key work in visual mode.
  • Made ga and gA work in background.
  • Better cW command.
  • Clean selection after i key in normal mode.
  • Menus and dialogs:
  • Added year in the file info dialog (on Ctrl-G).
  • Added zh, zl, zH and zL keys for the menus (horizontal scrolling).
  • Added ZQ and ZZ keys to close menus and dialogs.
  • TUI (Terminal User Interface):
  • Added horizontal splitting of views (changed :split command, added :vsplit command, changed Ctrl-w s mapping).
  • Added Ctrl-w j and Ctrl-w k keys.
  • Added Ctrl-w , Ctrl-w + and Ctrl-w - keys.
  • Added Ctrl-w | and Ctrl-w _ keys.
  • File cloning:
  • Don't change file extension on cloning.
  • Move cursor to clone of current file after file cloning.
  • Smarter file name generation on cloning.
  • Made C command accept count.
  • Only on Windows:
  • Added kind of portable mode on Windows.
  • Make macros expand to paths with forward slashes on Windows.
  • Better check if directory was changed on Windows.
  • Show all shares on Windows (including private ones).
  • Fixed a lot of bugs on Windows.
  • For Vim:
  • Added g:vifm_exec variable for the plugin.
  • Added ftdetect plugin for vim (now there is no need for modelines or changing .vimrc).
  • Allowed arguments for plugin's commands.
  • Added more tags to the documentation in vim-help format.
  • Other changes:
  • Added Ctrl-n (j) and Ctrl-p (k) keys.
  • Added view mode (see documentation).
  • Added -c and + command line arguments.
  • Added support of [count] for / and ?.
  • Don't clear terminal title on exit.
  • Warn about symbolic links are not available.
  • Don't show current file as selected after executing a :command and resizing terminal while it works.
  • Show progress message (e.g. on :copy) after terminal is resized.
  • Made some messages about operations more correct.

New in vifm 0.7.0 (Nov 16, 2011)

  • Configuration:
  • Changed format of ~/.vifm/vifmrc and ~/.vifm/vifminfo files.
  • Removed support of startup file, all commands will be automatically moved to the vifmrc file.
  • Added support for multi line commands in the vifmrc (ex-startup) file.
  • Now users can place scripts for vifm to ~/.vifm/scripts, vifm modifies it's PATH environment variable to let user run scripts without specifying full path.
  • Now vifm also accepts paths to files as the startup arguments and --no-configs option.
  • Normal and visual modes related changes:
  • Added gf, al, rl and cl commands for dealing with symbolic links.
  • Added gu and gU commands (and their variations).
  • Added gs command to work with t selection like gv with visual mode selection.
  • Made C handle selection, check read permission and work in visual mode.
  • Changed the way l key handles selection and made it work in visual mode.
  • Command-line mode related changes:
  • Removed :cmdhistory command, use :history cmd or ":history :" instead.
  • Added :noremap, :cnoremap, :nnoremap, :vnoremap, :unmap, :cunmap, :nunmap and :vunmap commands.
  • Added :filetype, :filextype and :fileviewer commands.
  • Added :find and :grep commands.
  • Added :substitute and :tr commands.
  • Added :clone, :copy, :move, :alink and :rlink commands.
  • Added :chmod, :chown, :mkdir and :touch commands.
  • Added :mark, :delmarks, :comclear, :highlight, :restart and :messages command.
  • Documented command line keys and marked which :commands accept ranges.
  • Now vifm understands user name after tilde in paths.
  • Let user use short forms of user-defined commands with "!".
  • Completion:
  • Added completion for co, cg, cw and cW commands.
  • Sort completion items.
  • Shift-Tab command line key to perform completion in reversed order.
  • Added Ctrl-_ command-line key to reject completion.
  • Macros:
  • Added filename modifiers (:p, :~, :., :h, :t, :r, :e, :s and :gs).
  • Added %S and %M macros.
  • Added macros that are expanded to paths enclosed in double quotes (%"c, %"C, %"f, %"F, %"b, %"d and %"D).
  • Handle %m, %M, %s and %S in the :! command.
  • :set command and options:
  • Removed 'savelocation' option. Use :set vifminfo+=dhistory.
  • Added 'wildmenu', 'ignorecase', 'smartcase', 'hlsearch', 'vifminfo', 'shell', 'vixcmd', 'scrolloff', 'timeoutlen', 'autochpos','gdefault', 'slowfs' options.
  • Added abbreviations for options.
  • Added support for using ':' instead of '='.
  • Support for ':set' and ':set all' commands.
  • Made ':set option' equivalent to ':set option?' for all types of options except boolean.
  • Made 'history' option control search, command line and prompt histories.
  • Better 'sort' option (support by multiple sort keys, added iname key).
  • Made 'vicmd' and 'vixcmd' understand & at the end.
  • :set command now understands & (reset option to its default value).
  • Color scheme related changes:
  • All color schemes are stored under the ~/.vifm/colors/ directory, each color scheme in its own file.
  • Color scheme file is a list of commands. All command-line commands are handled, but only :highlight commands are really useful here.
  • Added colors for current top line, other top line, status line, error messages in the status bar, broken links and FIFO files.
  • Now maximum number of color schemes is unlimited even on 8-color terminals (there was a limit of 5 color schemes for such terminals before).
  • Only on Windows:
  • gl normal mode key.
  • UNC names support.
  • :volumes command.
  • For Vim:
  • Added g:vifm_term variable for the plugin.
  • Added vifmrc syntax and filetype files for Vim.
  • Tags for some items in the help file for Vim.
  • Other changes:
  • Let user go through directories with execute access, but no read access.
  • Made filetype understand star as in globals.
  • Removed duplicates from command and directory history.
  • Made directory, command line and search histories as well as dirstack and registers persistent (when 'vifminfo' option contains appropriate value).
  • Show search matches in the menus.
  • Now keys can be used in mappings and mapping of keys like y, d or m works right.
  • Modify terminal emulator title.
  • Don't quit when terminal is too small (print message and ignore input).
  • Fixed bugs.

New in vifm 0.6.3 (Nov 16, 2011)

  • Added another format for filetype (FUSE_MOUNT2). Added %CLEAR FUSE mount parameter. See vifmrc for details.
  • Added %c and %C macros (current file of current and other directories, not selected file or files).
  • Added :rename command (opens vi to let you edit names for selected file or files).
  • Added undo list (u, Ctrl-R and :undolist commands; 'undolevels' option).
  • Added small FAQ.
  • Added gA command (like ga, but forces update).
  • Added whole line comments (can be useful in startup file).
  • Added :dirs command (shows directory stack).
  • Added 'sortnumbers', 'followlinks', 'fusehome', 'confirm' and 'history' options.
  • Added dialog to ask user about backwards range in command.
  • Added some vi like keys for menus, dialogs and visual mode.
  • Added 'savelocation' option (start vifm in the last visited directory) which is off be default thus returning old behaviour when vifm is started with no argument.
  • Added gv command for visual mode.
  • Enter key in visual mode will leave it saving selection.
  • Now location of panes is saved in ~/.vifm/vifminfo instead of ~/.vifm/vifmrc
  • Now builtin keys can be remapped.
  • Don't replace escape sequences for :! and :!! commands.
  • More vi like completion and history in command line and search.
  • Some improvements for :filter command.
  • Some improvements for command ranges.
  • Now ranges modify %f macro for user defined commands.
  • Made f and F work with wide characters.
  • Made option parser handle quotes.
  • Rename files in Trash (to avoid name conflicts).
  • Don't terminate background processes on vifm exit.
  • Remove files that are in the Trash on :empty command from all registers.
  • Don't ignore Ctrl-Z.
  • Don't clear screen on shellout.
  • Updated Vim plugin.
  • Fixed a lot of bugs.

New in vifm 0.6.2 (Nov 16, 2011)

  • Added map menus (run :cmap, :vmap, :nmap commands without arguments).
  • Added :cmdhistory command.
  • Added 'fastrun' option.
  • Added o and O keys for Visual mode (go to other end of selection).
  • Added gv Normal mode command.
  • Added support for spaces and functional keys in mappings ( and - ).
  • Added mimetype to fileinfo dialog.
  • Added %b command macro.
  • Implemented :yank and :colorscheme commands.
  • Made filetype menu editable.
  • Restore SIGINT (Ctrl+C) default behaviour on shellout.
  • Replace escape sequences in quick view output with ^foo.
  • Give options if a file already exists in destination directory.
  • Unmount all FUSE mounts on exit.
  • More verbose version information.
  • Added Ctrl-C key handling to error message dialog.
  • Use file command when GTK+ and libmagic are disabled.
  • Better error messages.
  • Use ga command results to sort by size.
  • Fixed paths in config.c to work with non standard install prefix.
  • Fixed several bugs with command completion and terminal resizing.

New in vifm 0.6.1 (Nov 16, 2011)

  • Added support for user mappings
  • Added file selectors (like motions and text-objects)
  • Improved sort dialog
  • Added filetype detection using GTK+ or libmagic (:file)
  • Added directory stack (:pushd, :popd)
  • Added completion for :! and :!! commands
  • Added custom file viewers (:view)
  • Added startup file
  • Better utf8 support
  • Added :set command and options

New in vifm 0.5 (Nov 16, 2011)

  • This release is mainly user contributed patches and a new port for Windows. A filetype setting was added to allow the mounting of files with fuse-zip and other filesystems based on fuse. The :com input was changed to accept wide characters. The Windows port is missing some of the features of the Unix version but it is useful and stable enough for an initial release. The following commands were added in the Windows port.
  • :copy
  • :move
  • :volume - list mounted volumes.