Installation
~~~~~~~~~~~~

On *nix you need:

    A working version of ncursesw build as a shared library (*.so files,
    enabled by the --with-shared switch of ncurses' configure script) and
    an ascii compliant terminal.

    Vifm will currently not work with Solaris curses or with PDcurses.

    Hint for building on Debian-based systems: ncurses package you need to
    build vifm is called libncursesw5-dev.

*nix Installation:

    ./configure
    make
    ("su" if you don't have access to /usr/local/bin)
    make install

    ./configure has the following options (the value in square brackets is
    the default one):

      --disable/[enable]-extended-keys - controls whether to build vifm with
          support of extended keys (like arrows, home, end, etc.).
          If it's disabled, there absence of a delay after pressing escape is
          guaranteed for all curses implementations.

      --disable/[enable]-desktop-files - controls whether vifm will parse
          *.desktop files found on your system to get a list of programs
          associated with mimetype of a file.

      --[disable]/enable-developer - enables features of interest to
          developers:
           - debug information
           - debug-friendly optimizations
           - treating compilation warnings as errors

      --without/[with]-gtk - use GTK+ to determine mimetypes if available.

      --without/[with]-libmagic - use libmagic to determine mimetypes if
          available.

      --without/[with]-X11 - use libX11 to get terminal window title before
          changing it to restore it on exit.

      --without/[with]-dyn-X11 - load libX11 dynamically

      --with-curses=[/usr] - path to installation root of curses library

      --with-curses-name=[ncursesw] - name of the curses library

    You can install vifm in your ~/ directory if you prefer.  To do this
    manually copy the vifm, vifmrc-converter and vifm-pause executables
    from the src/ directory to where you want to run them.  Another
    possibility is to pass --prefix argument to the ./configure script,
    with path under the home directory, e.g. --prefix=$HOME/local.  You
    will also need to copy vifm-help.txt and vifmrc files from the data/
    directory to ~/.vifm/.

    After you start vifm for the first time, you can edit the configuration
    file.  It will be at ~/.vifm/vifmrc.  See help for description of other
    files in ~/.vifm directory.

On OS X you need:

    Get and install libscursesw or libncursesw as shared libraries (*.so
    files, enabled by the --with-shared switch of ncurses' configure script).

    Proceed like in *nix Installation section.

    Also you probably want to pass --with-gtk=no argument to ./configure
    script to omit unwanted error message when vifm starts.

On Windows you need:

    Mingw

    The following libraries installed from dev-packages for Mingw (they
    should include DLL's):
     - Pdcurses for Mingw (with applied patches under patches/pdcurses/)
     - Regex for Mingw
     - pthreads for Windows

Cross-compiling for Windows using MXE (http://mxe.cc/):

    Required MXE packages:
     - gcc
     - pdcurses (put patches from patches/pdcurses/ to src/ directory of MXE)
     - libgnurx
     - pthreads

    To build vifm using i686-pc-mingw32 toolchain:
     - add usr/bin/ directory of MXE to the PATH environment variable, e.g.
         PATH="$MXE_ROOT/usr/bin/:$PATH"
     - cd src/
     - make -f Makefile.win CROSS=i686-pc-mingw32-

Windows Installation:

    cd src
    (uncomment some lines in Makefile.win below 'config:' if you want)
    make -f Makefile.win

    Copy vifm.exe, vifmrc-converter.exe and win_helper.exe to where you
    want to run them (but they all should be in the same directory).  You will
    also need to copy vifm help files and vifmrc file to %HOME%/.vifm/ or
    %APPDATA%/Vifm/.

    In case you want to be able to create symbolic links, you should set a
    "Run as Administrator" attribute for the win_helper.exe.
    Note: symbolic links are supported on Windows starting from Windows Vista.

    If you use *nix shells copy vifm-pause to some directory that is
    included in the %PATH%.  The better solution is to put it into
    %HOME%/.vifm/scripts or %APPDATA%/Vifm/scripts.

    On Windows you can also use vifm in a portable way (e.g. keep it on a
    removable device).  To do that just put your vifmrc file where vifm.exe
    is and all configuration files will be stored there.

Vim Specific Options:

    If you use vim, copy the vifm.txt file in the data/vim/doc directory to
    your ~/.vim/doc directory or the system vim/doc directory.
    Then launch vim ahd give the command
    :helptags ~/.vim/doc
    or
    :helptags path/to/system/vim/doc
    depending on where you installed the vifm.txt file.

    You will also need to change set 'vimhelp' option
    in ~/.vifm/vifmrc as the default setting is to use the plain text file.

    If you want to use syntax highlighting and file type plugin for
    ~/.vifm/vifmrc file, copy the data/vim/syntax/vifmrc.vim and
    data/vim/ftplugin/vifmrc.vim file to either the system wide vim syntax and
    ftplugin directories appropriately just copy the
    data/vim/ftdetect/vifm.vim file to appropriate vim configuration
    directory.  Or add to your .vimrc file commands like:
        autocmd BufNewFile,BufRead vifmrc :set filetype=vifm
        autocmd BufNewFile,BufRead ~/.vifm/colors/* :set filetype=vifm
    or if you use mode lines, add as the first or the last line to
    configuration file and color schemes:
        " vim: set filetype=vifm :

    If you want to use the vifm.vim plugin, copy the vifm.vim plugin script in
    data/vim/plugin to either the system wide vim/plugin or to ~/.vim/plugin/.
    The vifm.vim script allows you to use vifm from vim to select files.  The
    vifm.vim script is not installed by default and must be manually copied to
    the plugin directory.  Note: you need Vim 7.3 for plugin.
