Vifm - vi[m] like file manager
2001 - 2016

Updated: 16 July, 2016
Version: 0.8.2

Brief Description

    Vifm is a two panel ncurses based vi[m] like file manager. If you use vi,
    vifm gives you complete keyboard control over your files without having
    to learn a new set of commands. It goes not just about vi[m] like
    keybindings, but also about modes, options, registers, commands and other
    things you might already like in vi[m].

    Just like vi vifm tries to adhere to the Unix philosophy. So instead of
    working solutions user is provided with a set of means for customization
    of vifm. Though builtin functionality should be enough for most of use
    cases.

Contacts

    Website: https://vifm.info/
    Wiki: https://wiki.vifm.info/
    Q&A: https://q2a.vifm.info/
    Read-only news mailing list: vifm-announce@lists.sourceforge.net
    Email for bugs, suggestions and comments on vifm: xaizek@openmailbox.org

    Subscribe to the mailing list at:
    https://lists.sourceforge.net/lists/listinfo/vifm-announce

    Repositories:
    SorceForge: http://sourceforge.net/projects/vifm/
    GitHub: https://github.com/vifm/vifm

    Vim plugin repositories:
    GitHub: https://github.com/vifm/vifm.vim

Package content

    .
    |
    |-- data/ - documentation, sample vifmrc, icons
    |  |
    |  |-- colors/ - sample color schemes
    |  |-- graphics/ - icons
    |  |-- man/ - manual pages
    |  `-- vim/ - plugin for Vim
    |
    |-- patches/ - patches for software vifm depends on
    |
    |-- pkgs/ - package build-scripts
    |
    |-- scripts/ - utility scripts for development
    |
    |-- src/ - the source code of vifm
    |  |
    |  |-- cfg/ - code related to configuration
    |  |  |
    |  |  |-- config.c - reads scripts and manages configuration
    |  |  |-- hist.c - convenient history list abstraction
    |  |  `-- info.c - read and write vifminfo
    |  |
    |  |-- compat/ - implementation of features that are missing on some OSes
    |  |  |
    |  |  |-- curses.c - emulation of some wide functions for OpenBSD
    |  |  |-- getopt.c - part of glibc to have getopt_long() everywhere
    |  |  |-- getopt1.c - getopt.c public interface implementation
    |  |  |-- mntent.c - compatibility file for FreeBSD-like systems
    |  |  |-- os.c - very thin abstraction layer over basic OS facilities
    |  |  |-- reallocarray.c - more convenient and safe realloc() for arrays
    |  |  `-- wcwidth.c - wcwidth() implementation for Windows
    |  |
    |  |-- engine/ - the core of vi[m]-like functionality
    |  |  |
    |  |  |-- private/ - private headers of the engine
    |  |  |-- abbrevs.c - implementation of abbreviations
    |  |  |-- autocmds.c - implementation of autocommands
    |  |  |-- cmds.c - command line parsing core
    |  |  |-- completion.c - provides means to fill and get completion list
    |  |  |-- functions.c - provides support for builtin functions
    |  |  |-- keys.c - analyzes users input
    |  |  |-- mode.c - generic mode related routines
    |  |  |-- options.c - :set command
    |  |  |-- parsing.c - parses expressions
    |  |  |-- var.c - all needed to work with variables
    |  |  `-- variables.c - handles :let and :unlet commands
    |  |
    |  |-- int/ - integration with environment/external tools
    |  |  |
    |  |  |-- desktop.c - code that parses *.desktop files on *nix systems
    |  |  |-- file_magic.c - determines programs associated with file using its
    |  |  |                  mime-type
    |  |  |-- fuse.c - provides support of FUSE filesystems
    |  |  |-- path_env.c - parses and modifies PATH environment variables
    |  |  |-- term_title.c - terminal title updates
    |  |  `-- vim.c - contains Vim integration functionality
    |  |
    |  |-- io/ - file system operations implementation
    |  |  |
    |  |  |-- private/ - internal part of i/o
    |  |  |  |
    |  |  |  |-- ioeta.c - internal part of i/o estimations
    |  |  |  |-- ionotif.c - internal part of i/o notifications
    |  |  |  `-- traverser.c - file system traversing routine
    |  |  |
    |  |  |-- ioeta.c - i/o estimations management
    |  |  |-- iop.c - implementation of i/o primitive
    |  |  `-- ior.c - implementation of recursive i/o operations
    |  |
    |  |-- menus/ - implementation of all menus
    |  |  |
    |  |  |-- apropos_menu.c - handles :apropos menu
    |  |  |-- bmarks_menu.c - handles :bmarks menu
    |  |  |-- cabbrevs_menu.c - handles :cabbrev and :cnoreabbrev menus
    |  |  |-- colorscheme_menu.c - handles :colorscheme menu
    |  |  |-- commands_menu.c - handles :command menu
    |  |  |-- dirhistory_menu.c - handles :history menu
    |  |  |-- dirstack_menu.c - handles :dirs menu
    |  |  |-- filetypes_menu.c - handles :file menu
    |  |  |-- find_menu.c - handles :file menu
    |  |  |-- grep_menu.c - hanldes :grep menu
    |  |  |-- history_menu.c - handles :history command menus except directory
    |  |  |                    history
    |  |  |-- jobs_menu.c - handles :jobs menu
    |  |  |-- locate_menu.c - handles :locale menu
    |  |  |-- trash_menu.c - handles :lstrash menu
    |  |  |-- trashes_menu.c - handles :trashes menu
    |  |  |-- map_menu.c - handles :map menu
    |  |  |-- marks_menu.c - handles :marks menu
    |  |  |-- menus.c - handles all kinds of menus
    |  |  |-- registers_menu.c - handles :registers menu
    |  |  |-- undolist_menu.c - handles :undolist menu
    |  |  |-- users_menu.c - handles menus created by %m or %M macros
    |  |  |-- vifm_menu.c - handles :vifm (or :version) menu
    |  |  `-- volumes_menu.c - handles :volumes menu on MS Windows systems
    |  |
    |  |-- modes/ - implementation of all modes
    |  |  |
    |  |  |-- dialogs/ - dialog modes
    |  |  |  |
    |  |  |  |-- attr_dialog_nix.c - file permissions dialog for *nix systems
    |  |  |  |-- attr_dialog_win.c - file properties dialog for MS Windows
    |  |  |  |                       systems
    |  |  |  |-- change_dialog.c - change dialog
    |  |  |  |-- msg_dialog.c - information/error/prompt messages
    |  |  |  `-- sort_dialog.c - dialog to choose sort type
    |  |  |
    |  |  |-- cmdline.c - command line mode
    |  |  |-- file_info.c - Control+G
    |  |  |-- menu.c - handles commands in menus
    |  |  |-- modes.c - general code (e.g. before and after key pressed) for
    |  |  |             modes
    |  |  |-- more.c - more mode that views too much output on status bar
    |  |  |-- normal.c - normal mode commands
    |  |  |-- view.c - view mode commands
    |  |  `-- visual.c - implementation of visual mode commands
    |  |
    |  |-- ui/ - most of ui related code
    |  |  |
    |  |  |-- private/ - internal headers of ui
    |  |  |-- cancellation.c - managing operation cancellation
    |  |  |-- color_manager.c - manager of curses color pairs
    |  |  |-- color_scheme.c - color schemes
    |  |  |-- column_view.c - column formatting unit
    |  |  |-- escape.c - escape sequences related stuff
    |  |  |-- fileview.c - display/redraw/manage file view
    |  |  |-- quickview.c - implementation of quick view
    |  |  |-- statusbar.c - managing status bar
    |  |  |-- statusline.c - status line formatting
    |  |  `-- ui.c - ui initialization and other ui related functions
    |  |
    |  |-- utils/ - miscellaneous utility functions and data types
    |  |  |
    |  |  |-- private/ - internal headers of utilities
    |  |  |-- darray.c - macros for managin dynamic arrays
    |  |  |-- dynarray.c - array reallocation with fewer memory copies
    |  |  |-- env.c - environment variables related functions
    |  |  |-- fs.c - functions to deal with file system objects
    |  |  |-- fsdata.c - maps arbitrary data onto file system tree
    |  |  |-- fsddata.c - fsdata wrapper that takes care of dynamic memory
    |  |  |-- fswatch_nix.c - watches path in file system for changes on *nix
    |  |  |-- fswatch_win.c - watches path in file system for changes on Windows
    |  |  |-- file_streams.c - file stream reading related functions
    |  |  |-- filemon.c - file monitoring "object"
    |  |  |-- filter.c - small abstraction over filter driven by a regexp
    |  |  |-- globs.c - provides support of glob patterns
    |  |  |-- int_stack.c - int stack "object"
    |  |  |-- log.c - primitive logging
    |  |  |-- matcher.c - file path/name matcher (glob/regexp/mime-type)
    |  |  |-- matchers.c - list of matchers (which are ANDed together)
    |  |  |-- path.c - various functions to work with paths
    |  |  |-- regexp.c - regexp related
    |  |  |-- str.c - various string functions
    |  |  |-- string_array.c - functions to work with arrays of strings
    |  |  |-- trie.c - 3-way trie implementation
    |  |  |-- utf8.c - functions to handle utf8 strings
    |  |  |-- utils.c - various utilities
    |  |  |-- utils_nix.c - various utilities for *nix systems
    |  |  `-- utils_win.c - various utilities for MS Windows
    |  |
    |  |-- args.c - command-line arguments parsing and processing
    |  |-- background.c - runs commands in background
    |  |-- bmarks.c - management of (named) bookmarks
    |  |-- bracket_notation.c - list of bracket notation entries
    |  |-- cmd_completion.c - handles command line completion
    |  |-- cmd_core.c - command line parsing
    |  |-- cmd_handlers.c - handlers for command line commands
    |  |-- event_loop.c - event dispatching loop
    |  |-- dir_stack.c - for :pushd and :popd commands
    |  |-- filelist.c - fill/update list of files
    |  |-- filename_modifiers.c - expands filename modifiers
    |  |-- fileops.c - delete/copy/put selected file(s)
    |  |-- filetype.c - stores filetype information from vifmrc
    |  |-- filtering.c - managing file filters
    |  |-- ipc.c - handles communication across instances of vifm
    |  |-- macros.c - code of macros expansion
    |  |-- marks.c - stores information about marked directories
    |  |-- ops.c - most of operations performed on file system
    |  |-- opt_handlers.c - initialization of options and option change handlers
    |  |-- registers.c - implementation of registers
    |  |-- running.c - code of handing file and commands running
    |  |-- search.c - code for / and ? commands of normal mode
    |  |-- signals.c - handlers for different signals
    |  |-- sort.c - sort function
    |  |-- status.c - definition of global status structure
    |  |-- tags.c - tags for :h completion
    |  |-- trash.c - code that handles list of files in trash
    |  |-- types.c - internal file type detection and conversions
    |  |-- undo.c - stores and handles the undo list
    |  |-- version.c - git hash and other version information
    |  |-- viewcolumns_parser.c - contains code for parsing 'viewcolumns' option
    |  |-- vifm.c - contains main initialization/termination code
    |  `-- win_helper.c - needed for temporary rights evaluation on Windows
    |
    |-- tests/ - unit tests
    |
    |-- AUTHORS - list of code contributors
    |-- BUGS - some of known issues
    |-- ChangeLog - list of changes
    |-- FAQ - some common questions
    |-- INSTALL - building instructions
    |-- NEWS - like the ChangeLog, but in more human-readable format
    |-- README - this file
    |-- THANKS - thanks to people that help to improve vifm
    `-- TODO - what still needs to be implemented
