xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
File Mode Size
build-aux/ 040000
data/ 040000
patches/ 040000
pkgs/ 040000
scripts/ 040000
src/ 040000
tests/ 040000
.gitignore 100644 574B
AUTHORS 100644 5,891B
BUGS 100644 1,478B
COPYING 100644 18KiB
COPYING.3party 100644 13KiB
ChangeLog 100644 240KiB
ChangeLog.LuaAPI 100644 10KiB
FAQ 100644 5,559B
HACKING.md 100644 17KiB
INSTALL 100644 8,235B
Makefile.am 100644 508B
Makefile.in 100644 26KiB
NEWS 100644 312KiB
README 100644 2,075B
README.md 100644 6,985B
THANKS 100644 6,048B
TODO 100644 7,906B
aclocal.m4 100644 48KiB
configure 100755 356KiB
configure.ac 100644 41KiB

/README.md

Vifm – Vim-like file manager

<img align="left" src="data/graphics/vifm.svg"/>

      

Vifm is a curses based Vim-like file manager extended with some useful ideas from mutt. If you use Vim, Vifm gives you complete keyboard control over your files without having to learn a new set of commands. It goes not just about Vim-like keybindings, but also about modes, options, registers, commands and other things you might already like in Vim.

Just like Vim, Vifm tries to adhere to the Unix philosophy. So instead of working solutions which are set in stone user is provided with a set of means for customization of Vifm to one's likings. Though builtin functionality should be enough for most of use cases.

Version 0.15. This file last updated on 12 June 2025.

Resources and Contacts

Usage Link
Website https://vifm.info/
Wiki https://wiki.vifm.info/
Q & A https://q2a.vifm.info/

Communication

Reason Channel
Bugs & Feature Requests GitHub, SourceForge or via email
Preferred place for asking usage questions Posting on the Q&A site
Read-only and very low traffic news mailing list vifm-announce

Other resources

Usage Where to find
Repositories GitHub and SourceForge
Vim Plugin Repository
Colorschemes (maintained) Repository and colorscheme-previews
Devicons/favicons [1], [2]
vifmimg (image preview) Repository (using Überzug to display the images)
sixel image preview Repository (for Sixel-capable terminals)
thu.sh (image preview) Repository (Sixel or Kitty)

Screenshots

Screenshot Screenshot

More screenshots are here.

Getting Started

A good idea for quick start might be skimming over cheatsheet for the main mode (that is Normal mode), reading some sections on basic usage on the wiki and looking at sample configuration file (run :edit $MYVIFMRC).

How well Vifm will serve you in part depends on how well you understand its Vim-like nature. The following posts are highly recommended reads to help you improve with that: - Seven habits of effective text editing by Bram Moolenar - Your problem with Vim is that you don't grok vi by Jim Dennis

Installation

Below are some suggestions on how Vifm can be installed in various environments using methods most native to them.

OS, distribution or package manager Installation command
Alpine apk add vifm
Arch and derivatives (e.g., Manjaro) pacman -S vifm
Debian and derivatives (e.g., Ubuntu) apt install vifm
Fedora and derivatives (e.g., Rocky, Qubes OS, RHEL) dnf install vifm or yum install vifm
FreeBSD pkg install vifm
Gentoo emerge vifm
Guix guix package -i vifm
Linuxbrew brew install vifm
NetBSD pkg_add vifm or pkgin install vifm
Nix nix-env -i vifm
OpenBSD pkg_add vifm
OpenSUSE zypper install vifm
Slackware sbopkg -i vifm
macOS brew install vifm or port install vifm

AppImage

In case of a Linux distribution which doesn't package Vifm or which offers an outdated version, an AppImage binary can be used to avoid compiling from sources. This method of installation requires downloading an .AppImage file on a system younger than 10 years with a FUSE-capable kernel and marking that file as executable.

As a convenience, here are commands that download AppImage binary for the latest release and save it as ~/.local/bin/vifm (thanks to @benelan, see GitHub#975).

curl + sed

curl -Lso ~/.local/bin/vifm \
    "https://github.com/vifm/vifm/releases/latest/download/vifm-v$(
        curl -Ls "https://api.github.com/repos/vifm/vifm/releases/latest" |
        sed -nE '/"tag_name":/s/.*"v*([^"]+)".*/\1/p'
    )-x86_64.AppImage" && chmod +x ~/.local/bin/vifm

wget + jq

wget -qO ~/.local/bin/vifm "$(
        wget -qO - "https://api.github.com/repos/vifm/vifm/releases/latest" |
        jq -r '.assets[] | select(.name|endswith(".AppImage")) | .browser_download_url'
    )" && chmod +x ~/.local/bin/vifm

License

GNU General Public License, version 2 or later.

Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master