Last updated: November 28, 2018

There are a number of similar lists already, but they usually lack grouping and miss pointing out things that are of interest for the author of this one. So based on those lists and other sources here's another one, which actually might be the biggest so far.

The listing is followed by some critique, which obviously comes from personal views and experience, so don't expect to agree with everything in that section.

The description below is organized in nested lists with occasional notes, which might not be extremely accurate and neutral. The order at each level is alphabetical. The descriptions are often taken from corresponding websites and thus might be biased.

The categorization is: really Vi[m]-like applications in groups, similar applications that don't form big groups ("Other" category), applications that remind or can be configured to be somewhat Vi[m]-like.

When licenses are listed below, "GPL" means GPL of any version and "MIT" also means any kind of BSD/X Consortium license.

Browsers

Graphical browsers

Cream-Browser

A Vim-like lightweight Web browser with Vimperator interface. WebKit and GTK+ · GPL · C looks abandoned

A Vim-like lightweight Web browser with Vimperator interface. dwb

Quite nicely done Vim-like browser, modulo some issues with memory. WebKit and GTK+ · GPL · C author claimed to abandon it, but there is some activity

Quite nicely done Vim-like browser, modulo some issues with memory. jumanji

The idea behind jumanji is a Web browser that provides a minimalistic and space saving interface as well as an easy usage that mainly focuses on keyboard interaction like Vimperator does. WebKit and GTK+ · MIT · C stale development

The idea behind jumanji is a Web browser that provides a minimalistic and space saving interface as well as an easy usage that mainly focuses on keyboard interaction like Vimperator does. luakit

Fast, small, WebKit based browser framework extensible by Lua. WebKit and GTK+ · GPL · C + Lua

Fast, small, WebKit based browser framework extensible by Lua. qutebrowser

Qutebrowser is a keyboard-focused browser with a minimal GUI. QtWebEngine and Qt5 · GPL · Python see bizarre claims about software development in their FAQ

Qutebrowser is a keyboard-focused browser with a minimal GUI. surf

Ultra-minimalistic Web browser. WebKit and GTK+ · MIT · C supports XEmbed protocol (instead of tabs) process per tab

Ultra-minimalistic Web browser. Uzbl

Web interface tools which adhere to the unix philosophy. WebKit and GTK+ · GPL · C and Python requires configuration (syntax wasn't really obvious) process per tab

Web interface tools which adhere to the unix philosophy. Vimprobable

A lean stand-alone web browser optimised for full keyboard control (inspired by Vimperator). WebKit and GTK+ · MIT · C didn't have history and cookies (claimed that this is for security)

A lean stand-alone web browser optimised for full keyboard control (inspired by Vimperator). vimb

Vim-like browser based on the WebKit engine and the GTK toolkit. WebKit and GTK+ · GPL · C

Vim-like browser based on the WebKit engine and the GTK toolkit. xombrero/xxterm

A minimalist's Web browser, which strives to be Vi-like for heavy keyboard users while maintaining traditional Web browser behavior. WebKit and GTK+ · ISC · C stale development

A minimalist's Web browser, which strives to be Vi-like for heavy keyboard users while maintaining traditional Web browser behavior.

Text browsers

They aren't all that Vim-like, but seem to be popular among Vim users, so deserve to be listed.

lynx

Text Web browser. GPL · C has Vi-like mode ( -vikeys command-line option)

Text Web browser. Netrik

A simplistic text mode (character cell display) Web browser, similar to w3m or Lynx. GPL · C stale development

A simplistic text mode (character cell display) Web browser, similar to w3m or Lynx. w3m

w3m is a text-based Web browser as well as a pager like more' or less'. MIT · C

w3m is a text-based Web browser as well as a pager like less'.

E-mail related

mutt

Mutt is a small but very powerful text-based mail client for Unix operating systems. curses or S-lang · GPL · C

Mutt is a small but very powerful text-based mail client for Unix operating systems. notmuch

E-mail indexer/framework, which provides plugin for Vim. CLI · GPL · C

E-mail indexer/framework, which provides plugin for Vim. sup

A console-based e-mail client for people with a lot of e-mail. curses · GPL · Ruby

A console-based e-mail client for people with a lot of e-mail. wyrd

A text-based front-end to remind, a sophisticated calendar and alarm program. curses · GPL · OCaml

A text-based front-end to remind, a sophisticated calendar and alarm program.

Editors

bvi

A display-oriented editor for binary files (hex editor). curses · GPL · C

A display-oriented editor for binary files (hex editor). bvi plus

Fork of bvi with more features. curses · GPL · C

Fork of bvi with more features. elvis

A free Vi clone for Unix and other operating systems. terminal · Clarified Artistic License · C

A free Vi clone for Unix and other operating systems. ex-vi

The traditional vi editor, ported to modern Unix systems. terminal · MIT · C

The traditional vi editor, ported to modern Unix systems. Kakoune

Interactive only editor inspired by Vim. ncurses · public domain · C++ not really Vim-like judging by examples in the Readme

Interactive only editor inspired by Vim. neovim

Fork of Vim. terminal · Vim's + Apache · C has several incompatibilities with Vim (like dropped command-line options, no interactivity on :! , see) GUI is implemented in separate projects

Fork of Vim. nvi

Vi reimplementation. terminal · MIT · C

Vi reimplementation. nvi

Node.js Vi clone. terminal · CoffeeScript looks abandoned

Node.js Vi clone. pyvim

Pure Python Vim clone. terminal · MIT · Python not sure how Vim-like it is

Pure Python Vim clone. spacemacs

An Emacs-based editor that draws heavily from Vim keybindings. Emacs · GPLv3 · Emacs Lisp

An Emacs-based editor that draws heavily from Vim keybindings. vile

Vi clone with multiple buffers and similar features from Emacs added. terminal + X Window System + Windows · GPL · C

Vi clone with multiple buffers and similar features from Emacs added. Vim

The ubiquitous text editor. lots of environments · Vim's · C

The ubiquitous text editor. vis

A Vim-like text editor. terminal · ISC · C + Lua if I get it right, it's not really that Vim-like (e.g. lots of Lua is used) and is deliberately handicapped compared to Vim

A Vim-like text editor. WinVi

Vi-like text and hex editor, which also tries to be Notepad compatible. Windows · GPL · C stale development

Vi-like text and hex editor, which also tries to be Notepad compatible. xvi

The smallest full-function Vi text editor clone. terminal · Emacs license · C

The smallest full-function Vi text editor clone. Yzis

A Vi/Vim engine that can be integrated in graphical applications. Qt (for editor) · GPL and LGPL library · C++ stale development

A Vi/Vim engine that can be integrated in graphical applications.

File managers

jvifm

A try of implementing graphical Vi-like file manager in Java. SWT · GPL · Java two-pane kind of interface abandoned

A try of implementing graphical Vi-like file manager in Java. lf

Terminal file manager, which is a clone of ranger. curses · MIT · C

Terminal file manager, which is a clone of ranger. noice

Small file browser. curses · MIT · C very minimalistic

Small file browser. ranger

A console file manager with Vi key bindings, includes application association guessing tool. ncurses · GPL · Python Miller columns kind of interface

A console file manager with Vi key bindings, includes application association guessing tool. rover

A small file browser that aims to be simple, fast and portable. curses · public domain · C

A small file browser that aims to be simple, fast and portable. Vide

A graphical predecessor of vifm. GTK+ · GPL · C see buildable-version branch and supply CFLAGS=-std=gnu90 on modern GCC (C99 semantics of inline conflicts with GTK+1) if you want to try it out abandoned many years ago

A graphical predecessor of vifm. vifm

File manager with Vi like keybindings/modes/options/commands/configuration, which also borrows some useful ideas from mutt. curses · GPL · C single/two-pane kind of interface

File manager with Vi like keybindings/modes/options/commands/configuration, which also borrows some useful ideas from mutt.

Music players and MPD-clients

cmus

Not so minimalistic terminal player. curses · GPL · C

Not so minimalistic terminal player. herrie

Minimalistic player with curses interface. curses · MIT or GPL (it depends) · C uses mplayer to play the music main controls aren't very Vi-like

Minimalistic player with curses interface. pms

Probably the most Vi-like music player (MPD client). curses · GPL · C++ is in constant rewrite process sometimes with very long pauses the database is presented as one long list

Probably the most Vi-like music player (MPD client). Siren

A text-based audio player for Unix-like operating systems, inspired by cmus. curses · ISC mostly · C

A text-based audio player for Unix-like operating systems, inspired by cmus. vimpc

Client for mpd with Vi-like key bindings. curses · GPL · C++ using it wasn't very intuitive

Client for mpd with Vi-like key bindings. vimus

Terminal MPD client with Vim-like key bindings. curses · MIT · Haskell

Terminal MPD client with Vim-like key bindings. vitunes

Console playlist/music database manager with Vi-like bindings. curses · MIT · C uses mplayer to play the music

Console playlist/music database manager with Vi-like bindings.

PDF-viewers

apvlv

A PDF/DJVU/UMD/TXT viewer under Linux/WIN32, which tries to behave like Vim. GTK+ · GPL · C++ remember it being kinda raw, but usable

A PDF/DJVU/UMD/TXT viewer under Linux/WIN32, which tries to behave like Vim. zathura

A document viewer with plugin system. GTK+ · Zlib license · C had troubles installing newer version, so using the old one search used to be one match at a time, later was changed to whole-document search, which is very slow on huge documents

A document viewer with plugin system.

Plugins

For Browsers

For Eclipse IDE

Eclim

Two-way integration between Eclipse IDE and Vim. GPL · Java + VimL

Two-way integration between Eclipse IDE and Vim. ExEdit

Pluging for running Ex command in Eclipse IDE. GPL · Java

Pluging for running Ex command in Eclipse IDE. Viable, viPlugin

Plugins for Eclipse IDE. Proprietary · Java

Plugins for Eclipse IDE. vimplugin

An attempt to use the Vim editor inside the Eclipse IDE. SWT · GPL · Java might be outdated

An attempt to use the Vim editor inside the Eclipse IDE. vrapper

Plugin for Eclipse IDE that supposedly preserves original keybindings. GPL · Java

Plugin for Eclipse IDE that supposedly preserves original keybindings.

Miscellaneous

CubicleVim

A COM Add-In to allow editing Microsoft Outlook messages. MIT · Visual Basic

A COM Add-In to allow editing Microsoft Outlook messages. FakeVim

Standard QtCreator plugin (the link is to the widget). Qt · GPL · C++ was quite good implementation compared to many others

Standard QtCreator plugin (the link is to the widget). IDEAVim

IntelliJ IDEA Vim-like plugin. GPL · Java

IntelliJ IDEA Vim-like plugin. jVi

NetBeans IDE Vim-like plugin. MPL · Java one of the closest Vim-like emulation plugins, among those I've ever tried

NetBeans IDE Vim-like plugin. Melodactyl

Vim-like plugin for Sunbird. MIT · JavaScript

Vim-like plugin for Sunbird. Muttator, Teledactyl

Vim-like plugins for Thunderbird. MIT · JavaScript

Vim-like plugins for Thunderbird. Sublime Six

Successor of Vintageous plugin for Sublime Text. Proprietary · Python

Successor of Vintageous plugin for Sublime Text. vibreoffice

LibreOffice plugin that adds Vim-like shortcuts and modality. MIT · Visual Basic

LibreOffice plugin that adds Vim-like shortcuts and modality. viemu

Plugins for Visual Studio, Xcode, Outlook, Word, SQL Server. Proprietary tried it for Visual Studio, it wasn't bad, but it left me unimpressed (quite long time ago)

Plugins for Visual Studio, Xcode, Outlook, Word, SQL Server. viex

NetBeans IDE Vim-like plugin. GPL · Java

NetBeans IDE Vim-like plugin. Vintage

Vim-like plugin for Sublime Text. MIT · Python

Vim-like plugin for Sublime Text. VintageEx

A rendition of Vim's command-line mode for Sublime Text 2. MIT · Python previous incarnation of Vingageous

A rendition of Vim's command-line mode for Sublime Text 2. Vintageous

Vintageous is a comprehensive vi/Vim emulation layer for Sublime Text 3. MIT · Python README says that Vintageous has been discontinued and its successor is Sublime Six (not open source)

Vintageous is a comprehensive vi/Vim emulation layer for Sublime Text 3. Vim Mode

Plugin for Atom. MIT · CoffeeScript

Plugin for Atom. Vimpulse, eVil, Viper, Vim Mode

Emacs plugins.

Emacs plugins. ViTunes

A Vim plugin that allows you to control iTunes. MIT · VimL, Ruby, Objective-C

A Vim plugin that allows you to control iTunes. VsVim

Vim emulation layer for Visual Studio. Apache · F#

Vim emulation layer for Visual Studio. XVim

Xcode plugin for Vim keybindings. MIT · Objective-C

Xcode plugin for Vim keybindings.

Other

athame

Full vim for your shell (bash, zsh, gdb, python, etc). terminal · GPL · C integrates into applications that provide command-line input and runs Vim in background to do the work.

Full vim for your shell (bash, zsh, gdb, python, etc). Blender

Blender is the free and open source 3D creation suite. OpenGL · GPL · C, C++ and Python see this post

Blender is the free and open source 3D creation suite. cgdb

Console front-end to the GNU debugger. ncurses · GPL · C

Console front-end to the GNU debugger. less

Its controls are Vi-like. terminal · GPL · C

Its controls are Vi-like. Kommand

AutoHotKey script, which provides cross-application Vim-like hot key solution.

AutoHotKey script, which provides cross-application Vim-like hot key solution. ncdu

Disk usage browser. ncurses · MIT · C

Disk usage browser. newsbeuter

The Mutt of RSS feed readers. curses · MIT · C++

The Mutt of RSS feed readers. PIDA

An IDE that allows integration of Vim/Emacs as editor. GTK+ · MIT · Python looks abandoned

An IDE that allows integration of Vim/Emacs as editor. sc

Terminal spreadsheet editor. curses · MIT · C

Terminal spreadsheet editor. sc-im

Improved version of sc. curses · MIT · C

Improved version of sc. Termite

A keyboard-centric terminal. GTK+ and VTE · GPL · C++

A keyboard-centric terminal. tig

Text-mode interface for git. curses · GPL · C

Text-mode interface for git. TuDu

Vi-like TODO manager. curses · GPL · C++

Vi-like TODO manager. vchatter

Vi-like jabber client. C++ stale development

Vi-like jabber client. ViPaint

A modal, Vi like painting program. JavaFX · GPL · Java

A modal, Vi like painting program. vlrtt

Vim-like real-time tactics game. MIT · Some scripting language

Vim-like real-time tactics game. VNote

A Vim-inspired note-taking application, which can also be used as Markdown editor. Qt · MIT · C++ + WebStuff

A Vim-inspired note-taking application, which can also be used as Markdown editor. GNU Screen and tmux

These terminal multiplexers can be configured to use some Vi-like keys, they also have command-line mode. terminal · Screen is GPL, tmux is MIT · C Screen has command classes, which allows implementing modes (e.g. resize mode)

These terminal multiplexers can be configured to use some Vi-like keys, they also have command-line mode. MonoDevelop, GNOME Builder and KomodoEdit

These seem to have (hard to find details) Vi-like editing mode.

These seem to have (hard to find details) Vi-like editing mode. SlickEdit, Kate and Editra

These have Vi-like editing mode.

These have Vi-like editing mode. set -o vi

Enables Vi-mode in bash (you can see current mode after adding set show-mode-in-prompt On to ~/.inputrc ).

Enables Vi-mode in bash (you can see current mode after adding to ). bindkey -v

Enables Vi-mode in zsh

Enables Vi-mode in zsh set editing-mode vi in ~/.inputrc Enables Vi-like mode in all applications that use readline.

With similar/configurable bindings

Image viewers

feh

An X11 image viewer aimed mostly at console users. X Window System · MIT · C bindings can be configured to be like in Vi

An X11 image viewer aimed mostly at console users. pim

Python image viewer with Vim-like keybindings. GTK+ · MIT · Python

Python image viewer with Vim-like keybindings. sxiv

Simple X Image Viewer. X Window System · GPL · C++ some bindings are like in Vi

Simple X Image Viewer. vimiv An image viewer with Vim-like keybindings. GTK3 · MIT · Python3

xzgv

Image viewer with at least j/k mapped. GTK+ · GPL · C++

Image viewer with at least j/k mapped.

Document viewers

Evince

A document viewer for multiple document formats. GTK+ · GPL · C and a bit of C++ has h/j/k/l mappings

A document viewer for multiple document formats. MuPDF

A lightweight PDF and XPS viewer. Various · AGPL · C bindings are relatively Vi-like

A lightweight PDF and XPS viewer. Okular

A universal document viewer developed by KDE. KDE · GPL · C++ supports h/j/k/l

A universal document viewer developed by KDE.

Window managers

euclid-wm

Window manager with kind of Vim-like default mappings. X Window System · MIT · C

Window manager with kind of Vim-like default mappings. howm

A lightweight, X11 tiling window manager that is promises to behave like Vim (objects/motions/count). X Window System · GPL · C tries to follow Unix-way too much (see next item) I used the word "promises" in the description because howm demonstrated severe issues with input processing when I gave it a try, drawing it useless

A lightweight, X11 tiling window manager that is promises to behave like Vim (objects/motions/count). i3

Tiling WM. X Window System · MIT · C + Perl it seems to be possible to define Vim-like modes and there are some predefined ones

Tiling WM. wmii

A small, scriptable window manager, with a 9P filesystem interface and an acme-like layout. X Window System · MIT · C has basic Vi bindings by default

A small, scriptable window manager, with a 9P filesystem interface and an acme-like layout.

Miscellaneous

Abiword has Vi-like bindings.

calcurse

Terminal calendar and scheduling application with some Vim-like keys by default. curses · MIT · C

Terminal calendar and scheduling application with some Vim-like keys by default. CopyQ

Clipboard manager with advanced features, which claims "support for simple Vim-like editor and shortcuts". Qt · GPL · C++

Clipboard manager with advanced features, which claims "support for simple Vim-like editor and shortcuts". ncmpc, ncmpcpp

More MPD clients, which are somewhat Vim-like. curses · GPL · ncmpc in C and ncmpcpp in C++

More MPD clients, which are somewhat Vim-like. NetHack

Rougue-like game with h/j/k/l. C

Rougue-like game with h/j/k/l. rekonq

A Web browser for KDE based on WebKit. Has basic Vi-like keys. KDE + WebKit · GPL · C++ looks abandoned

A Web browser for KDE based on WebKit. Has basic Vi-like keys. rexima

Vi-like audio-mixer alternative to alsamixer. curses · GPL · C

Vi-like audio-mixer alternative to alsamixer. rtv

Reddit terminal viewer. curses · MIT · Python

Reddit terminal viewer. urxvt

X Window System · GPL · C++ + Perl looks like it's possble to make it somewhat Vim-like (scrollback)

WeeChat

IRC client. curses · GPL · C bindings can be configured to be like in Vi see weechat-vimode

IRC client. xpdf

Can be configured to be somewhat Vi-like (see). X Window System and Motif · GPL · C++

Can be configured to be somewhat Vi-like (see). There are patches for making some applications Vim-like: rtorrent alsamixer (was on some mailing list) htop

DuckDuckGo, GitHub, gmail, and HabraHabr Web interfaces

Somewhat Vi-like, but they do conflict with Vim-like browsers/plugins, which makes them significantly less useful.

Notes

Common notes

A lot of the listed software share the same set of issues with regard to emulation of Vi[m]-like features. The most important ones that cause inconvenience for seasoned Vim users are below.

These are the things, which ideally should be addressed in any Vi[m]-like software. Languages and licenses (there is only a fraction of proprietary software) are listed above so that people with relevant skills or no skills and desire to acquire them could help the projects they like. The contributions shouldn't be limited to these things, but they can be a start.

Combinations with control key

Authors usually forget about these in GUI applications, but some should be handled explicitly in terminal ones too. Here are the most commonly unimplemented shortcuts:

Control+[ – should be treated like Escape

– should be treated like Control+H – should behave as Backspace

– should behave as Control+C – usually makes sense to treat it as Escape

– usually makes sense to treat it as Control+M / Control+J – should behave as Enter

/ – should behave as Control+P / Control+N – should go up/down or forward/backward

/ – should go up/down or forward/backward Control+I / Control+O – can go forward/backward in history

Processing of key sequences

Some applications/plugins treat key sequences in command (that is Normal) mode differently compared to Vim. Prefixes of unmatched key sequences should be discarded automatically without requiring the user to press Escape (in some cases it only Backspace worked).

Search origin

The search (including when user presses n or N ) should account for current position in the document/webpage, not the position of the last match found.

Notes on browsers

Unfortunately almost all of the enumerated browsers suffer from the same huge problem: WebKit. Even though browser interfaces are lightweight, this hog-like web-engine ruins everything by consuming tremendous volumes of the memory. Jokes about Firefox using too much memory couldn't be more wrong today. This gets even worse if you realize that this behaviour is by design and there is effectively no means to control memory consumption whatsoever (last time I checked, the only API method for this could free several hundred Kibibytes), compared to flexible configuration of Gecko (and hopefully Servo in the future if it will work properly at some point). So be very skeptical when authors of those browsers say that they are "fast", "small" and "lightweight", they just can't be such as long as they are running on WebKit. Of course it's not entirely fault of WebKit developers, the content of the modern Web is the reason number one, but WebKit developers don't really seem to care too much either (otherwise there would be means of controlling consumption of resources).

Browsers that run different tabs in different processes are creating even more issues. This inevitably leads to somewhat slower performance (due to address space switches, page faults and unshared objects of previously visited pages) and bigger memory consumption (heap isn't shared and this is where lots of small objects related to pages reside, which can't even be deduplicated between processes). This can be partially addressed by limiting number of processes or using smarter architecture (Firefox developers seem to be going this way).

Another issue you could have noticed is that most of the browsers are basically the same... Authors don't even bother providing different description and I'm not sure whether they can, this is how similar the browsers (actually browser interfaces) are. There isn't much point in having that many equally undermaintained and so much similar browsers. One can get an impression that authors of new such browsers have no idea about existing ones. It's sad to see quite a lot of efforts being spread among too many separate projects.

Most of the browsers have the same issues with blocking ads and keyboard navigation. It's hard to do this right in general, so feel free to blame those who put tons of JavaScript on pages that are meant to be simple (if you're a Web-developer and want to do a good job for Internet users, take my advise and use this and/or this site as your ideal, not that scroll-based thing with huge background animations and alike stuff that make Web harder to use).

Notes on editors

Some of the projects were created just to rewrite the code in some particular language which their author knows, the others are here to make stuff "modern", "define the future", "bring something into 21 century" (we're only 16% in it, but they already know what to do...), <put your favourite senseless phrase here> (and if you don't have any, go visit some corporate sites and pick one there, the first page you see will be full of them more often than not).

Some alternative editors do have interesting capabilities, but the drawbacks (in form of missing features or completely incompatible ones) usually outweigh those advantages for long term Vim users (that is if they took time to learn what Vim has to offer, otherwise the difference won't be that pronounced).

Notes on music players

As you can see, authors of this kind of software like to do very similar applications too. Unfortunately those that are more original and useful get abandoned faster...

It seems like all of them are missing integration with external tools. One might want to open a file manager or terminal at current location or process selected files with another application, haven't seen means for this in players I tried. UPD: @juef notes that cmus can do this.

Some of the sources