Vifm strives to be Vim among file managers and make file operations feel as natural as text editing.
The story so far
The project has been around for a while: originally developed by Ken Steen and since 2011 by me, xaizek. Here is a summary of the most significant changes in over a decade of my maintainership:
- fixed segmentation fault which prevented me from running Vifm for the first time :)
- Vim-like functionality was implemented as a set of modules emulating Vim's behaviour (parts of it can even be used as a C++ library)
- implemented undo and redo of operations, which despite having nearly zero changes in a decade seems to have no competition to this day
- single configuration file (of a custom format which was rewritten by Vifm on exit) got split into
vifmrc
with :commands andvifminfo
(later superseded byvifminfo.json
) - merged Unix and Windows code bases together
- provided builtin implementation of file operations in addition to one that relies on POSIX utilities (not on Windows)
- various new views (column, grid, tree, miller, compare, explore)
- portion of test code changed from 0% to about 35% (depends on how you count)
- line coverage raised from 0% to 74%
- manual page went from 179 lines to over 6000
- new site, added Q&A and Wiki
- got positive feedback about the project from Ken Steen and regular users :)
In addition to that, various projects were developed for the purpose of maintaining Vifm:
- tests are written using stic based on seatest
- coverage is measured by uncov
- code changes are reviewed using zograscope
- PDcurses was patched to work better on Windows (partially upstreamed)
- self-hosted CI is running fragile CI
- Vim version of the documentation is converted to HTML using vimdoc2html
Future prospects
Nowadays significant portion of time for a single change is spent on documentation and tests, which results in a much more solid project, but can make even trivial changes feel hard. This is one of the reasons, why activity is not very high at times.
At the same time there are still many things to improve:
- address issues/suggestions/requests which piled up over the years
- a proper user manual explaining features in addition to existing reference documentation
- supporting extended keys better
- configuration has accumulated a number of deficiencies over the years and can be improved
- taking customization and integration with environment to a new level via Lua scripting
- maybe even adding a GUI version one day
What it buys
Your support will:
- add to motivation and make improvements happen at a faster rate
- will raise priority of your issues
- might allow bounties for issues to attract more contributors
- I can mention you in some file/release/site if you want :) just not sure how useful this actually is
Meet the team
-
xaizekMain developer.
-
Michael Vetter jubalhColor schemes management.
-
rbongVim plugin improvements.
Featured work
-
vifm/vifm.vim
Vim plugin that allows use of vifm as a file picker
Vim Script 332 -
vifm/vifm-colors
Various colorschemes for vifm file explorer.