From Vifm Wiki
Revision as of 13:06, 7 April 2019 by Mb720 (talk | contribs) (→‎Vifm or ranger: Condense text, improve grammar, phrasing.)
Jump to navigation Jump to search

Why Vifm

Interesting capabilities

  • 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

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:

Differences between Vifm and ranger
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 Yes No

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

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

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.