reversed(top()) code tags rss about

The big list of Vim-like software

August 13, 2016
[vim]

A more interactive version of this post is available at https://vim.reversed.top/.

Not updated since August 14, 2022; future updates only in the interactive version.

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 “BSD-like” also means any kind of BSD/MIT/X Consortium license.

  1. Browsers (notes)
  2. E-mail related
  3. Editors (notes)
  4. File managers
  5. Music players and MPD-clients (notes)
  6. PDF-viewers
  7. Plugins
  8. Other
  9. With similar/configurable bindings
  10. Notes
  11. Some of the sources
  12. ChangeLog

Browsers

Graphical browsers

  • Cream-Browser
    A Vim-like lightweight Web browser with Vimperator interface.
  • WebKit and GTK+ · GPL · C
  • looks abandoned
  • 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
  • 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+ · Zlib · C
  • stale development
  • luakit
    Fast, small, WebKit based browser framework extensible by Lua.
  • WebKit and GTK+ · GPL · C + Lua
  • next
    A keyboard-oriented, extensible web-browser designed for power users.
  • WebKit or WebEngine/Blink, Qt or GTK+ · BSD-like · Common Lisp
  • qutebrowser
    Qutebrowser is a keyboard-focused browser with a minimal GUI.
  • QtWebEngine and Qt5 · GPL · Python
  • surf
    Ultra-minimalistic Web browser.
  • WebKit and GTK+ · BSD-like · C
  • supports XEmbed protocol (instead of tabs)
  • process per tab
  • 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
  • Vieb
    Vim Inspired Electron Browser - Vim bindings for the web by design.
  • Electron · GPL · JavaScript
  • Vimprobable
    A lean stand-alone web browser optimised for full keyboard control (inspired by Vimperator).
  • WebKit and GTK+ · BSD-like · C
  • didn’t have history and cookies (claimed that this is for security)
  • vimb
    Vim-like browser based on the WebKit engine and the GTK toolkit.
  • WebKit and GTK+ · GPL · C
  • wyeb
    A vim-like webkit2gtk web browser.
  • WebKit and GTK+ · GPL · C
  • xombrero/xxxterm
    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

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)
  • Netrik
    A simplistic text mode (character cell display) Web browser, similar to w3m or Lynx.
  • GPL · C
  • stale development
  • w3m
    w3m is a text-based Web browser as well as a pager like more' or less’.
  • BSD-like · C

  • aerc
    Highly efficient and extensible terminal email client.
  • tcell (terminal) · BSD-like · Go
  • meli
    Experimental terminal mail client aiming for configurability and extensibility with sane defaults.
  • terminal · GPL · Rust
  • mutt
    Mutt is a small but very powerful text-based mail client for Unix operating systems.
  • curses or S-lang · GPL · C
  • notmuch
    E-mail indexer/framework, which provides plugin for Vim.
  • CLI · GPL · C
  • sup
    A console-based e-mail client for people with a lot of e-mail.
  • curses · GPL · Ruby
  • wyrd
    A text-based front-end to remind, a sophisticated calendar and alarm program.
  • curses · GPL · OCaml

Editors

  • Amp
    A complete text editor for your terminal.
  • terminal · GPL · Rust
  • makes one think of things like Sublime and SpaceVim
  • bvi
    A display-oriented editor for binary files (hex editor).
  • curses · GPL · C
  • bvi plus
    Fork of bvi with more features.
  • curses · GPL · C
  • elvis
    A free Vi clone for Unix and other operating systems.
  • terminal · Clarified Artistic License · C
  • ex-vi
    The traditional vi editor, ported to modern Unix systems.
  • terminal · BSD-like · C
  • url points to updated version of this
  • HEdit
    A Vim-like terminal-based hex editor scriptable with JS.
  • libtickit · BSD-like · C
  • it seems to be possible to build it without JS
  • hexer
    A multi-buffer editor for viewing and manipulating binary files.
  • terminal · BSD-like · C
  • Kakoune
    Interactive only editor inspired by Vim.
  • ncurses · public domain · C++
  • not really Vim-like judging by examples in the Readme
  • moe
    A command line based editor inspired by vi/vim. Written in Nim.
  • curses · GPL · Nim
  • 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
  • nvi
    Vi reimplementation.
  • terminal · BSD-like · C
  • nvi
    Node.js Vi clone.
  • terminal · CoffeeScript
  • looks abandoned
  • Onivim 2
    Sublime/VSCode-like editor internally backed by Vim’s code.
  • revery · Outrun Labs EULA 1.1 · Reason
  • pyvim
    Pure Python Vim clone.
  • terminal · BSD-like · Python
  • not sure how Vim-like it is
  • rim
    Aspiring Vim-like text editor.
  • terminal · MPL · Rust
  • looks abandoned
  • spacemacs
    An Emacs-based editor that draws heavily from Vim keybindings.
  • Emacs · GPLv3 · Emacs Lisp
  • vile
    Vi clone with multiple buffers and similar features from Emacs added.
  • terminal + X Window System + Windows · GPL · C
  • Vim
    The ubiquitous text editor.
  • lots of environments · Vim’s · C
  • 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
  • vy
    A Vim-like modal editor in python made from scratch.
  • Tk · BSD-like · Python
  • WinVi
    Vi-like text and hex editor, which also tries to be Notepad compatible.
  • Windows · GPL · C
  • stale development
  • xvi
    The smallest full-function Vi text editor clone.
  • terminal · Emacs license · C
  • Yzis
    A Vi/Vim engine that can be integrated in graphical applications.
  • Qt (for editor) · GPL and LGPL library · C++
  • stale development

File managers

  • cfiles
    An ncurses file manager written in C with vim like keybindings. It aims to provide an interface like ranger while being lightweight, fast and minimal.
  • curses · BSD-like · C
  • hunter
    ranger-like file browser, but a little more Emacs-flavoured.
  • terminal · WTFPL · Rust
  • jvifm
    A try of implementing graphical Vi-like file manager in Java.
  • SWT · GPL · Java
  • two-pane kind of interface
  • abandoned
  • lf
    Terminal file manager, which is a clone of ranger.
  • curses · BSD-like · Go
  • noice
    Small file browser.
  • curses · BSD-like · C
  • very minimalistic
  • ranger
    A console file manager with Vi key bindings, includes application association guessing tool.
  • ncurses · GPL · Python
  • Miller columns kind of interface
  • rover
    A small file browser that aims to be simple, fast and portable.
  • curses · public domain · C
  • 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
  • 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

Music players and MPD-clients

  • cmus
    Not so minimalistic terminal player.
  • curses · GPL · C
  • herrie
    Minimalistic player with curses interface.
  • curses · BSD-like or GPL (it depends) · C
  • uses mplayer to play the music
  • main controls aren’t very Vi-like
  • project has been abandoned by the original author
  • 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
  • Siren
    A text-based audio player for Unix-like operating systems, inspired by cmus.
  • curses · ISC mostly · C
  • vimpc
    Client for mpd with Vi-like key bindings.
  • curses · GPL · C++
  • using it wasn’t very intuitive
  • vimus
    Terminal MPD client with Vim-like key bindings.
  • curses · BSD-like · Haskell
  • vitunes
    Console playlist/music database manager with Vi-like bindings.
  • curses · BSD-like · C
  • uses mplayer to play the music

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
  • zathura
    A document viewer with plugin system.
  • GTK+ · Zlib · 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

Plugins

For Browsers

  • jV, Vimperator, Pentadactyl, VimFx, Vimium, Vim Vixen, Tridactyl
    Plugins for Firefox, Pale Moon, Basilisk.
  • Vimperator, Pentadactyl, Vimium, VimFx, Vim Vixen are BSD-like; jV is GPL; Tridactyl is Apache · JavaScript (probably)
  • Krabby
    A keyboard interface to the web, inspired by Kakoune.
  • Web · Unlicense · JavaScript + Crystal
  • Crystal there is for the native part
  • Saka Key
    A browser extension that lets you map keys on your keyboard to common browser tasks.
  • Web · BSD-like · JavaScript
  • initial mappings aren’t exactly as in Vim, but they seem to be configurable
  • Vimium, vimlike-smooziee, Vrome, ViChrome, cVim, Surfingkeys
    Plugins for Chrome and Chromium.
  • BSD-like; Vrome is GPL · JavaScript/CoffeeScript
  • if I get it right, they are nowhere near Vimperator/Pentodactyl, except maybe cVim
  • VimOperate
    Plugin for Opera.
  • wasavi
    An extension for Chrome, Opera and Firefox that transforms textarea element of any page into a VI editor.
  • Web · Apache 2.0 · JavaScript

For Eclipse IDE

  • Eclim
    Two-way integration between Eclipse IDE and Vim.
  • GPL · Java + VimL
  • ExEdit
    Pluging for running Ex command in Eclipse IDE.
  • GPL · Java
  • Viable, viPlugin
    Plugins for Eclipse IDE.
  • Proprietary · Java
  • vimplugin
    An attempt to use the Vim editor inside the Eclipse IDE.
  • SWT · GPL · Java
  • might be outdated
  • vrapper
    Plugin for Eclipse IDE that supposedly preserves original keybindings.
  • GPL · Java

Miscellaneous

  • CubicleVim
    A COM Add-In to allow editing Microsoft Outlook messages.
  • BSD-like · Visual Basic
  • DrRacket Vim Tool
    Adds vim-like editing to DrRacket.
  • GPL · Racket
  • FakeVim
    Standard QtCreator plugin (the link is to the widget).
  • Qt · GPL · C++
  • was quite good implementation compared to many others
  • IDEAVim
    IntelliJ IDEA Vim-like plugin.
  • GPL · Java
  • Irsii vim-mode.pl plugin
    An Irssi script to emulate some of the vi(m) features for the Irssi inputline.
  • BSD-like · Perl An Irssi script to emulate some of the vi(m) features for the Irssi inputline.
  • jVi
    NetBeans IDE Vim-like plugin.
  • MPL · Java
  • one of the closest Vim-like emulation plugins, among those I’ve ever tried
  • Melodactyl
    Vim-like plugin for Sunbird.
  • BSD-like · JavaScript
  • Muttator, Teledactyl
    Vim-like plugins for Thunderbird.
  • BSD-like · JavaScript
  • Sublime Six
    Successor of Vintageous plugin for Sublime Text.
  • Proprietary · Python
  • vibreoffice
    LibreOffice plugin that adds Vim-like shortcuts and modality.
  • BSD-like · Visual Basic
  • 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)
  • viex
    NetBeans IDE Vim-like plugin.
  • GPL · Java
  • Vintage
    Vim-like plugin for Sublime Text.
  • BSD-like · Python
  • VintageEx
    A rendition of Vim’s command-line mode for Sublime Text 2.
  • BSD-like · Python
  • previous incarnation of Vingageous
  • Vintageous
    Vintageous is a comprehensive vi/Vim emulation layer for Sublime Text 3.
  • BSD-like · Python
  • README says that Vintageous has been discontinued and its successor is Sublime Six (not open source)
  • Vim Mode
    Plugin for Atom.
  • BSD-like · CoffeeScript
  • VimNavigation
    fman plugin for Vim key style navigation.
  • BSD-like · Python
  • fman is a proprietary application.
  • Vimpulse, eVil, Viper, Vim Mode
    Emacs plugins.
  • ViTunes
    A Vim plugin that allows you to control iTunes.
  • BSD-like · VimL, Ruby, Objective-C
  • VSCodeVim
    A Vim emulator for Visual Studio Code.
  • BSD-like · TypeScript
  • VsVim
    Vim emulation layer for Visual Studio.
  • Apache · F#
  • XVim
    Xcode plugin for Vim keybindings.
  • BSD-like · Objective-C
  • zsh-vi-mode
    A better and friendlier vi(m) mode plugin for ZSH.
  • BSD-like · zsh

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.
  • Blender
    Blender is the free and open source 3D creation suite.
  • OpenGL · GPL · C, C++ and Python
  • see this post
  • Bombadillo
    A non-web browser, designed for a growing list of protocols operating outside of the web.
  • terminal · GPL · Go
  • cgdb
    Console front-end to the GNU debugger.
  • ncurses · GPL · C
  • cointop
    A fast and lightweight interactive terminal based UI application for tracking and monitoring cryptocurrency coin stats in real-time.
  • termui · Apache 2.0 · Go
  • less
    Its controls are Vi-like.
  • terminal · GPL · C
  • Kommand
    AutoHotKey script, which provides cross-application Vim-like hot key solution.
  • ncdu
    Disk usage browser.
  • ncurses · BSD-like · C
  • newsbeuter
    The Mutt of RSS feed readers.
  • curses · BSD-like · C++
  • Newsboat
    An RSS/Atom feed reader for the text console (a fork of Newsbeuter).
  • curses · BSD-like · C++, Rust
  • PIDA
    An IDE that allows integration of Vim/Emacs as editor.
  • GTK+ · BSD-like · Python
  • looks abandoned
  • pineapple-tracker
    A console-based sequencer with a vi-style UI.
  • curses · WTFPL · C
  • pipedial
    One more tool for selecting something in console.
  • curses · GPL · C++
  • inspired by sentaku
  • PyRadio
    A console based Internet radio player that uses players as back-end.
  • curses · BSD-like · Python
  • supports both Python2 and Python3
  • rx
    Modern and minimalist pixel editor.
  • OpenGL · GPL · Rust
  • sc
    Terminal spreadsheet editor.
  • curses · BSD-like · C
  • sc-im
    Improved version of sc.
  • curses · BSD-like · C
  • scli
    A simple terminal user interface for signal messenger (using signal-cli).
  • urwid · GPL · Python
  • sentaku
    Utility to make selection window with shell command.
  • terminal · BSD-like · bash
  • has some performance issues
  • Snipline
    A developer tool for organizing shell commands.
  • Proprietary
  • stig
    TUI and CLI for the BitTorrent client Transmission.
  • Urwid · GPL · Python
  • Termite
    A keyboard-centric terminal.
  • GTK+ and VTE · GPL · C++
  • Termshark
    A terminal UI for tshark, inspired by Wireshark.
  • terminal · MIT · Go
  • Became Vim-like in v2.2.0
  • tig
    Text-mode interface for git.
  • curses · GPL · C
  • Taskell
    Command-line Kanban board/task manager with support for Trello boards and GitHub projects.
  • terminal · BSD-like · Haskell
  • TuDu
    Vi-like TODO manager.
  • curses · GPL · C++
  • VIT
    Visual Interactive Taskwarrior full-screen terminal interface.
  • curses · MIT · Python
  • vchatter
    Vi-like jabber client.
  • C++
  • stale development
  • ViPaint
    A modal, Vi like painting program.
  • JavaFX · GPL · Java
  • vlrtt
    Vim-like real-time tactics game.
  • BSD-like · Some scripting language
  • VNote
    A Vim-inspired note-taking application, which can also be used as Markdown editor.
  • Qt · BSD-like · C++ + WebStuff
  • 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 BSD-like · C
  • Screen has command classes, which allows implementing modes (e.g. resize mode)
  • MonoDevelop, GNOME Builder and KomodoEdit
    These seem to have (hard to find details) Vi-like editing mode.
  • SlickEdit, Kate and Editra
    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).
  • bindkey -v
    Enables Vi-mode in zsh, also see this for better bindings and for visual mode.
  • fish_vi_key_bindings
    Enables Vi-mode in fish, see this.
  • set editing-mode vi in ~/.inputrc</br> 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 · BSD-like · C
  • bindings can be configured to be like in Vi
  • imv
    A command line image viewer intended for use with tiling window managers.
  • X Window System or Wayland · BSD-like · C
  • pim
    Python image viewer with Vim-like keybindings.
  • GTK+ · BSD-like · Python
  • sxiv
    Simple X Image Viewer.
  • X Window System · GPL · C++
  • some bindings are like in Vi
  • vimiv</br> An image viewer with Vim-like keybindings.
  • GTK3 · BSD-like · Python3
  • xzgv
    Image viewer with at least j/k mapped.
  • GTK+ · GPL · C++

Document viewers

  • Evince
    A document viewer for multiple document formats.
  • GTK+ · GPL · C and a bit of C++
  • has h/j/k/l mappings
  • MuPDF
    A lightweight PDF and XPS viewer.
  • Various · AGPL · C
  • bindings are relatively Vi-like
  • Okular
    A universal document viewer developed by KDE.
  • KDE · GPL · C++
  • supports h/j/k/l

Window managers

  • AppGrid
    macOS window manager with Vim–like hotkeys.
  • BSD-like · Objective-C
  • euclid-wm
    Window manager with kind of Vim-like default mappings.
  • X Window System · BSD-like · C
  • 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
  • i3
    Tiling WM.
  • X Window System · BSD-like · C + Perl
  • it seems to be possible to define Vim-like modes and there are some predefined ones
  • sway
    An i3-compatible Wayland compositor.
  • Wayland · BSD-like · C
  • wmii
    A small, scriptable window manager, with a 9P filesystem interface and an acme-like layout.
  • X Window System · BSD-like · C
  • has basic Vi bindings by default

Miscellaneous

  • Abiword has Vi-like bindings.
  • Astroid
    A keyboard-driven GUI frontend for the notmuch email indexer.
  • GTK+ · GPL · C++
  • btop++
    Terminal calendar and scheduling application with some Vim-like keys by default.
  • TUI · Apache 2.0 · C++
  • setting vim_keys = True in config enables minimal Vim controls
  • calcurse
    Terminal calendar and scheduling application with some Vim-like keys by default.
  • curses · BSD-like · C
  • CopyQ
    Clipboard manager with advanced features, which claims “support for simple Vim-like editor and shortcuts”.
  • Qt · GPL · C++
  • Cypht
    Web-based email client for multiple accounts.
  • Web · GPL · PHP and JavaScript
  • lnav
    An advanced terminal log file viewer for the small-scale.
  • curses · BSD-like · C++
  • ncmpc, ncmpcpp
    More MPD clients, which are somewhat Vim-like.
  • curses · GPL · ncmpc in C and ncmpcpp in C++
  • NetHack
    Rougue-like game with h/j/k/l.
  • C
  • PAmix
    ncurses/curses pulseaudio mixer in C++ similar to pavucontrol.
  • curses · BSD-like · C++
  • rekonq
    A Web browser for KDE based on WebKit. Has basic Vi-like keys.
  • KDE + WebKit · GPL · C++
  • looks abandoned
  • rexima
    Vi-like audio-mixer alternative to alsamixer.
  • curses · GPL · C
  • rtv
    Reddit terminal viewer.
  • curses · BSD-like · Python
  • Tiny Tiny RSS
    Web-based news feed (RSS/Atom) reader and aggregator.
  • Web · GPL · PHP and JavaScript
  • urxvt
  • X Window System · GPL · C++ + Perl
  • looks like it’s possible to make it somewhat Vim-like (scrollback)
  • VisiData
    An interactive terminal multitool for tabular data.
  • curses · GPL · Python
  • WeeChat
    IRC client.
  • curses · GPL · C
  • bindings can be configured to be like in Vi
  • see weechat-vimode
  • xpdf
    Can be configured to be somewhat Vi-like (see).
  • X Window System and Motif · GPL · C++
  • There are patches for making some applications Vim-like:
  • rtorrent
  • alsamixer (was on some mailing list)
  • htop
  • DuckDuckGo, GitHub, gmail, Facebook 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
  • Control+H – should behave as Backspace
  • Control+C – usually makes sense to treat it as Escape
  • Control+M / Control+J – should behave as Enter
  • Control+P / Control+N – 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

ChangeLog

August 14, 2022

  • Added btop++ (thanks to Ignacio Taranto)

June 1, 2022

  • Updated herrie entry (thanks to Leon (adigitoleoBrett))

June 26, 2021

  • Added moe (thanks to Brett Mahar).

June 19, 2021

  • Added rx (thanks to Jagi).
  • Added vieb (thanks to Randall).
  • Added Facebook (thanks to Divesh Uttamchandani).

April 7, 2021

  • Added zsh-vi-mode.

January 10, 2021

  • Added Termshark.

December 7, 2020

  • Added PAMix.

November 16, 2020

  • Added lnav (thanks to Arun Prakash Jana).

July 22, 2020

  • Added vit (thanks to petrohs el compa obrero).

June 26, 2020

  • Added fish_vi_key_bindings (thanks to Mathew Murphy).
  • Changed url for ex-vi to more up-to-date fork (thanks to Mathew Murphy).

April 25, 2020

  • Added VisiData (thanks to Bruno Durán).
  • Added Astroid (thanks to elvirolo).

April 17, 2020

  • Added scli (thanks to elvirolo).

April 9, 2020

  • Added Onivim2 (thanks to Ying Fan Chong).

March 30, 2020

  • Added Tiny Tiny RSS (thanks to elvirolo).

March 19, 2020

  • Added Cypht (thanks to elvirolo).
  • Added wyeb (thanks to elvirolo).

December 20, 2019

  • Added aerc (thanks to Dakota Chambers and Drew DeVault).
  • Added meli (thanks to Manos Pitsidianakis).
  • Added nnn (thanks to elvirolo).
  • Added stig (thanks to elvirolo).
  • Added hunter (thanks to elvirolo).
  • Added hexer (thanks to James Klaas).
  • Added pyradio (thanks to David Williams and Lee Tusman).
  • Added cointop (thanks to Miguel Mota).
  • Added wasavi (thanks to Scott Kidder).
  • Added pineapple-tracker (thanks to Nikolas Nyby).
  • Added Bombadillo (thanks to Brian Evans).
  • Added VSCodeVim (thanks to Tiago Rinaldi).
  • Added Amp (thanks to Jordan MacDonald).
  • Added Newsboat (thanks to David).
  • Added Taskell (thanks to Mark Wales).
  • Added inkdrop-vim (thanks to Mitchell Stanley).
  • Added VimNavigation (thanks to Mitchell Stanley).
  • Added Snipline (thanks to Mitchell Stanley).
  • Added Irsii vim-mode.pl (thanks to Henri Kaustinen).
  • Say “BSD-like” instead of “MIT”.

December 1, 2019

  • Added Saka Key (thanks to Alex Leferry).
  • Added Krabby (thanks to Alex Leferry).

November 30, 2019

  • Added next (thanks to elvirolo).
  • Added imv (thanks to elvirolo).
  • Added sway (thanks to elvirolo).

February 21, 2019

  • Added AppGrid.
  • Added cfiles.
  • Added DrRacket Vim Tool.
  • Added HEdit.
  • Added rim.
  • Added vy.
  • Added links to zsh-vim-mode and visual mode.
  • Fixed description of lf (it’s in Go instead of C).

January 24, 2019

  • Added ChangeLog section.
  • Added sentaku.
  • Added pipedial.
  • xxterm –> xxxterm.
  • Specify license of Tridactyl.