Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is Vifm?
Vifm is a terminal-based file manager with a curses interface that behaves much like Vim. According to its own site, it gives users who already know vi "complete keyboard control over your files without having to learn a new set of commands," and it borrows some ideas from the mutt mail client as well.
Who it suits
- Vim users who want file browsing to feel like editing: the same mappings, command-line mode with ranges and abbreviations, marks, and registers.
- People who work over SSH or inside tmux/GNU Screen, since it runs in a terminal and has built-in integration with both.
- Users who manage large or messy directories, thanks to advanced filtering and renaming, file decorations by type or name, and a less-like preview mode with customizable viewers.
What it offers beyond basic navigation
It supports one- or two-pane views within tabs, plus table, grid, tree, and Miller-style layouts. Its less common features include directory-tree comparison, undo/redo and backgrounding of operations, FUSE filesystem support, sessions, named bookmarks, and scripting configuration per directory. It is cross-platform (GNU/Linux, BSD, Solaris, Windows, macOS) and UTF-8 aware.
The trade-off
Vifm assumes comfort with Vim conventions; if you have never used vi, the keyboard model is a learning curve rather than a shortcut. One user quoted on the site, Carlos Pita, sums up the design philosophy: "If you don't know how to do it, don't look at the docs, just think how you would do it in vi." That is a strength for the vi-familiar and a barrier for everyone else.
A practical next step: if you already use Vim daily, install Vifm and try it on one project directory for a week before replacing your current file manager; if you don't use Vim, a simpler terminal file manager will likely cost you less time. The site's cheatsheets and Q&A section are the natural starting points for learning the keybindings. See Vifm for documentation and downloads.
How do I get started with Vifm if I already know Vim?
Start by installing Vifm from your package manager, then launch it with vifm in a terminal. Since you already know Vim, you can skip most of the tutorial phase: normal mode, h/j/k/l for movement, : for the command line, and Vim-style mappings and abbreviations all carry over. The page describes Vifm as a curses file manager built to give vi users "complete keyboard control over your files without having to learn a new set of commands," which is exactly the shortcut you're looking for.
A practical first session
Run vifm --help or open the in-app :help to confirm the version and see the default key list, then try these in a scratch directory:
j/kto move through entries,Enterto open a directory or file,hto go up.:to open the command line, where Vim-like ranges and abbreviations work.yyto yank a file,pto paste, andddto mark for deletion (Vifm routes deletions through its trash rather than deleting outright).vfor visual selection, then:to run a command on the selected range.Tabto switch between the two panes if you keep the two-pane view.:qto quit,:wisn't needed—file operations apply immediately.
Where the Vim model bends
A few things differ enough to trip up muscle memory. Movement is over files, not characters, so counts and operators behave differently (d alone doesn't delete; dd does). The page also notes influence from mutt, which shows up in how marks, registers and the command line are used. View modes are a Vifm-specific concept: the page lists table, grid, tree and miller views, plus tabs for one or two panes. Your .vimrc does not apply—Vifm reads its own vifmrc, so port your key mappings there rather than expecting them to inherit.
Configuration worth doing early
The page highlights several features that reward a little setup:
- Mappings and command-line abbreviations in
vifmrc, mirroring the mappings you already rely on. - Sessions to save and restore a working set of directories and tabs.
- Named bookmarks (tags) for directories you visit constantly.
- Directory-specific scripting, so configuration changes when you enter certain folders.
- Preview mode with customizable viewers, which behaves like
lessand is handy for inspecting files without opening them.
A sensible next step: open Vifm in a project directory, create one or two mappings for actions you repeat (for example, opening a file in your editor), and save it as a session. If you want a broader reference for terminal-based workflows, the Vifm documentation and cheatsheets linked from Vifm are the most direct source, and general Vim guidance from Vim applies wherever the commands overlap.
How can I customize Vifm with my own key mappings and color schemes?
Vifm is built for this: its page describes "Vim-like user mappings," a "Vim-like command-line mode with ranges and abbreviations," and "color schemes, which can also be applied to specific sub-trees." In practice, almost all customization lives in two text files you edit yourself — vifmrc for mappings and general behavior, and theme files for colors — so the workflow is closer to configuring Vim than clicking through a settings dialog.
Key mappings
- Where they go: your personal
vifmrc(the page also mentions the "ability to script configuration for specific directories," so per-directory overrides are possible). - How they look: mappings follow Vim's model — a key sequence on the left, a Vifm command or action on the right. Because the command-line mode supports ranges and abbreviations, a single mapping can drive multi-file operations rather than just "open this."
- Practical pattern: bind the operations you repeat most — toggling panes, jumping to bookmarks (tags), starting a rename with your preferred editor, or launching a preview — and leave the rest at defaults. A large mapping file you don't remember is worse than a short one you do.
Color schemes
- Where they go: theme files, selected in
vifmrc; the page notes schemes can be applied to specific sub-trees, so one directory (say, a build output folder) can look different from the rest. - Beyond base colors: "file decorations" can be customized by type and/or name, which is how you make, for example, executables, archives or a naming pattern stand out without changing the whole palette.
Choosing an approach
| Goal | What to customize | Trade-off |
|---|---|---|
| Faster navigation | Mappings for panes, tabs, marks, bookmarks | Too many mappings collide with Vim habits you rely on |
| Clearer file overview | Decorations by type/name | Over-decoration makes listings noisy |
| Context-specific clarity | Schemes for specific sub-trees | More files to maintain and keep consistent |
| Repeatable setups | Scripted configuration in vifmrc |
Needs version control if you use several machines |
A concrete scenario: a developer who already uses Vim keeps vifmrc in a dotfiles repository, maps a key to open the current file in $EDITOR, decorates executables and archives, and assigns a muted scheme to node_modules-style trees so they recede visually.
As a next step, start from a copy of the documented sample configuration, change one mapping and one color, and confirm both behave as expected before expanding. If you want to see how other terminal tools handle configuration for comparison, GitHub hosts many dotfile repositories you can read for structure ideas.
How does Vifm compare to other terminal file managers for everyday file navigation?
Vifm is aimed at people who already think in Vim: its main advantage for everyday navigation is that movement, marks, registers and command-line editing work the way your fingers expect from vi, so you spend effort on files rather than on learning a new key set. The page describes it as a curses-interface file manager with a Vim-like environment extended with ideas from mutt, and it lists two-pane and tabbed views, table/grid/tree/miller layouts, bookmarks, a less-like preview, filtering and renaming, and per-directory configuration.
Where it fits in everyday use
- Muscle-memory navigation: if you use vi or Vim daily, jumping, searching and repeating commands carries over directly. One quoted user, Carlos Pita, sums up the appeal as thinking "how you would do it in vi" rather than reaching for the docs.
- Heavy, repetitive file work: multi-block selection, advanced filtering and renaming, undo/redo and background operations matter when you are moving batches of files, not just opening one.
- Remote and long sessions: built-in integration with GNU Screen and tmux, plus remote command execution, suits people working over SSH.
- Customisation depth: colour schemes that can apply to specific sub-trees, file decorations by type or name, and scriptable per-directory configuration reward users who invest in setup. A quoted user, Aetet, describes it as fitting "like skin" after configuration.
Trade-offs against other terminal managers
| Concern | Vifm's position |
|---|---|
| Learning curve | Low for Vim users, steeper for others; the Vim command-line mode with ranges and abbreviations is powerful but assumes familiarity |
| Everyday simplicity | Richer than minimal two-pane managers; features like miller view, sessions and decorations add surface area |
| Configuration effort | High ceiling, so benefits grow with the time you put into mappings and per-directory scripts |
| Platform coverage | Cross-platform (GNU/Linux, *BSD, Solaris, Windows, Mac OS) and UTF-8 aware |
Alternatives are worth weighing by workflow rather than feature count: ranger for a Python-extensible, preview-centric layout, nnn (hosted on GitHub) for a fast, minimal, plugin-driven approach, and Midnight Commander for a conventional two-pane, menu-driven feel closer to classic file managers.
Next step: try a week of real work in Vifm with only the Vim commands you already use, then judge whether its extra views and per-directory configuration earn their setup time; if you rarely touch vi-style commands, a simpler two-pane manager will likely feel faster day to day.
Can I use Vifm on Windows or macOS, and how do I install it there?
Yes. Vifm is cross-platform: the project lists Windows, macOS, GNU/Linux, *BSD and Solaris among supported systems, and it is described as a curses-interface file manager with a Vim-like environment. On Windows and macOS that means you run it inside a terminal, not as a graphical window.
What to expect on each platform
- Windows: The practical route is a terminal that provides a curses environment. Windows Terminal plus a POSIX-like environment (for example MSYS2 or Cygwin) is the usual setup; Vifm's own site points to its Downloads page rather than to a package manager, so check that page for the current Windows build before installing anything else. Expect Vim-style keybindings to work as documented, but shell-related features (external commands, shell-like command-line editing) depend on which shell your environment exposes.
- macOS: Install through a package manager such as Homebrew or MacPorts, or build from source. Vifm runs in Terminal.app or iTerm2. The built-in integration with GNU Screen and tmux mentioned on the site is useful here if you want to keep a session alive across terminal windows.
Installation steps that apply to both
- Open the Downloads page on Vifm and pick the package or archive matching your OS.
- Install it with your platform's package manager where one is offered, so upgrades stay simple.
- Launch
vifmin a terminal and confirm the two-pane view appears. - Copy the sample configuration (
vifmrc) into your user config directory and edit it there rather than in the system-wide file. - Add your own mappings gradually; the site's cheatsheets are the quickest reference for defaults.
Choosing between the two
If you already live in a Unix-like shell, macOS is the lower-friction choice because curses and shell integration are native. On Windows, decide first whether you want a full POSIX layer (more compatible, heavier) or a lighter terminal setup (simpler, but some shell features may behave differently). Either way, the payoff is the same: complete keyboard control over files without learning a new command set, as the site puts it for vi users.
A useful next step is to read the Q&A section on the site before installing, since platform-specific quirks tend to surface there first.
How do I report a bug or ask a usage question about Vifm?
Use Vifm's own support channels: the project asks that general usage questions go to its dedicated Q&A site (registration is involved), while bugs and feature requests go through its issue tracker. The site also lists a mailing list and a wiki for discussion and reference material.
Which channel to pick
| Your situation | Best channel |
|---|---|
| "How do I do X in Vifm?" (configuration, mappings, commands) | The Q&A site linked from the Vifm homepage's Contact/Q&A section |
| Reproducible bug, crash, or feature request | The bug/feature tracker linked from the site's "Reporting bugs" section |
| Open-ended discussion, patch talk, or announcements | The mailing list |
| Looking for prior answers or recipes | The wiki and cheatsheets |
Making a bug report useful
Vifm is highly configurable, so most reports hinge on your setup. Before filing, gather:
- The Vifm version (shown in the interface and in the site's news, e.g. the v0.14.5 release note) and your OS.
- The exact keystrokes or
:command that triggered the problem. - Relevant lines from
vifmrc, plus any directory-specific config if the issue is location-dependent. - Terminal and multiplexer details if the problem is visual — Vifm integrates with GNU Screen and tmux, and curses rendering issues often depend on those.
- Whether it reproduces with a minimal config, which separates a Vifm bug from a configuration mistake.
For usage questions, state what you tried and what you expected; Vifm's command-line mode, mappings, and marks follow Vim conventions, so mentioning your Vim background helps answerers pitch the reply correctly.
If you want background first, the official documentation at Vifm covers commands, options and scripting, and the cheatsheets are a fast way to check whether your question is already answered.
User reviews (0)