Basic things that need to be done.
	Termcap or terminfo support for keybindings (do we need this? curses does).
	Backgrounding of commands with job control (pause/resume/kill).
    Show background commands presence in the TUI.
	Fix window resizing (I think it's almost done).
	Handle commands that are too long to be passed directly to the shell.
    Perform operations using system calls, not programs.  This is much faster.
    Show operation progress.
    Maybe remove 'trash' option, since we have two commands for deletion.
    Templates for :touch.
	Mouse support.
    Ctrl-R combinations in the command-line mode.
    Wrapping of lines in the menus.
    IPC among all running vifm instances (share settings among instances).
    Write script to export aliases and function from sh to ~/.vifm/scripts/
    Make status bar able to display error and info messages at the same time.
    Command to create multiple copies of selected one with ability to rename
        it (e.g. a -> :hub b c -> a b c, a -> :hub! b c -> b c).

Documentation.
	Better documentation.
    Maybe divide vifm.txt in several files (if it becomes too big).

Windows.
    Make :chmod accept arguments.
    Make properties dialog change file attributes recursively.
    Add a command to create .lnk files.
    Follow targets of .lnk files.
    Fix freezing.

Vi(m) specific features that need to be added.
	Fix '' to go back to all jumps G gg links (in one directory?).
	Change file list filters to use fold levels instead of just
		the dot filter and regular expression filter (what does this mean?).
    Some kind of selection mode (multiple blocks, mixing).
    Better registers support.
    /, ?, n, N as selectors.
    Make n, N, / and ? with count behave like Vim on nowrapscan and match fail.
    :map without arguments
    Better ranges (add support for search patterns).
    Ctrl-W F key.
    'wildignore' ('wig') option.
    Kinda macros like in Vim (qa ... q).
    Something like :silent in Vim (don't command blinking in the command-line)
    Better :let command (allow :let $A=$B and string concatenation).
    :set command should understand environment variables and concatenation too.
    :let mapleader and <leader> support.
    Add :echo command.
    'cdpath' ('cd') option.

Possible things to add.
	Use system wide mimetypes file. /etc/mailcap?
	Virtual File System - currently vifm can use fuse to mount most
		file systems.
    Invert selection? (what :command or key?)
    Make :undolist more interactive.
    Maybe something like :g/.../com and :v/.../com in Vim.
    Add g/ and g? commands (search, but don't select files).
    Reverse searching (/ for search, g/ for selecting, g!/ for selecting
        reverse)
    Improve sorting (maybe iext; maybe ignore dirs).
    Add :mksession command and 'sessionoptions' option.
    Position macros for user defined commands (%1, %2, ..., %9).
    Some key to (un)select all files with extension of current file.
    'incfilter' option.
    Maybe we should reread configuration files on :restart when --no-configs
        was passed on startup.
    'wildmode' option.
    A macro to redirect command output into view pane.

Other (questionable) things.
    Use mimetypes in FILETYPE.
    %i macro to prompt user for input.
    Maybe inotify support on Linux.
    Command like ' but that executes bookmark ?
    Maybe we should add a command to view screen ?
    Summarize size of selected files.  Need to decide how to display it.
    Add support for comments at the end of line ? Just for fun?
    Make directory stack menu interactive ?
    Maybe add + and - commands to undo by commands, not command groups.
    :setlocal command.
    Remove items from :history command menu?
    :edit, etc. in the menus.
    :alias
    Like gv but to select just pasted files (gp?).
    Modify marks on rename operations.
    :toupper and :tolower
    Maybe accept regular expressions as second argument of :colo command.
    Think about setting filters for both views in vifmrc.
    Make :alink, :copy, ... accept globs (e.g. :co *.c).
    Option to trigger completion on slash in command-line.
    Maybe expand macros for :touch amd :mkdir commands (for :touch %"d)
    An option to hide ../ directory.
    An ability to customize how directories are shown (e.g. dir/, [dir]).

Code improvements.
    Write more tests.
    Improve logging (print back trace in some cases, increase verbosity).
    Stay at the same file in some cases.
    Store directories names without slash symbol.
    Replace a lot of fields in cmd_add_t struct with a set of bit flags.
    Fix print buffer code duplication concerning variables.c and options.c.
    Change type of pause argument of shellout() function to an enum.
    Maybe move startup and initialization code out of config.c and vifm.c
        to a separate file.
    Get rid of repeatable `menu->win_rows - 3` in menu.c and menus.c.
    Get rid of repeatable `(menu->win_rows - 3 + 1)/2 - 1` in menu.c.
	Get rid of repeatable `(curr_view->window_rows + 1)/2 - 1` in normal.c.
