Ideology
Why Vifm[edit]
Interesting capabilities[edit]
- Works on all widely used operating systems.
- Very easy to start if you grok Vim.
- Can be used remotely over SSH.
- Friendly to terminal multiplexers.
- Low on resources.
- Depends only on a few libraries (curses and regex).
Vifm or ranger[edit]
Vifm and ranger follow different ideas in how to implement file management, vi-like behaviour, and user interface in general.
What they have in common:
- They both are file managers.
- They both claim to have vi-like key bindings.
Vifm does have Vi in its name for a reason and while ranger is a vi-like application, being such is not its main goal. Contrary to ranger, Vifm tries to be not just a "vi-like file manager", but rather "vim among file managers".
It's difficult to compare ranger and Vifm, but here's an incomplete attempt:
Vim-like characteristic | Vifm | ranger |
---|---|---|
Command line | Yes | Similar |
Options | Yes | Partially |
Completion | Yes | No |
Bindings | Yes | Similar |
Bindings configuration | Yes | Similar |
Scripting | Partially | Limited |
Window system | Partially | No |
Modes | Various | Normal and command-line |
Defining :commands | Vim-alike | Python code |
Vifm has some features that are absent in ranger and vice versa, those are not listed if they are not very much related regarding how vi-like an application is.
The bottom line is that Vifm aims to give Vim-addicted users a similar application for managing files and ranger is a nice file manager with vi-like features. These are different applications with different goals that do not compete with each other.
How not to use Vifm[edit]
Do not use Vifm as your main application at the computer:
- it's not a launcher of all kinds of applications, it's a file manager that supports file associations;
- it's not an environment to spend your life in, it's one of many tools, interleave use of Vifm with Vim, shell and other applications.
When and how to use Vifm[edit]
Main points:
- Integrate Vifm within your system.
- Run other applications from Vifm (e.g. Vim).
- Launch Vifm from other applications (e.g. Vim, Mutt).
- Use it as file picker from other applications.
- Communicate data from Vifm to other applications and vice versa:
- Pass list of files to other applications.
- Process input of external tools.
Generic examples:
- If you know a way to do something more efficient in a shell, write a script and invoke it from Vifm or run external shell command if it's convenient, otherwise run shell and do it there.
- If you know an application that fits better, create a command and/or script to run it in directory of current pane and maybe pass current selection to it.