An open API service indexing awesome lists of open source software.

vim-keybindings-everywhere-the-ultimate-list

The ultimate list of which programs support Vim-like keybindings natively, or how they can be added with extensions. A collaborative project.
https://github.com/erikw/vim-keybindings-everywhere-the-ultimate-list

Last synced: about 7 hours ago
JSON representation

  • IDEs

    • NetBeans - Java IDE
    • Jetbrain's IDEs
    • IdeaVim - Install it directly from the plugin section in the IDE settings.
    • Visual Studio Code (VSCode)
    • VSCodeVim - Vim emulation for Visual Studio Code. [GitHub](https://github.com/VSCodeVim/Vim)
    • VSCode Neovim - Alternative to the VIM plugin, uses a full nvim instance in the background instead of just emulating VIM. [GitHub](https://github.com/vscode-neovim/vscode-neovim)
    • XVim2
    • Eclipse
    • vrapper-vim - A wrapper that provides a Vim-like input scheme for moving around and editing text.
    • viplugin
    • vimplugin
    • jVI - A Vim-editor clone for the NetBeans IDE.
    • viex
    • Visual Studio
    • VsVim (Visual Studio 2015-2019) - install through the extensions inside Visual Studio
    • VsVim 2022 (Visual Studio 2022) - install through the extensions inside Visual Studio
    • viemu - add Vim emulation to Visual Studio, SQL Server, Word & Outlook.
    • Geany
    • vimode - The vimode plugin can be enabled from the settings.
    • RStudio - There's a built-in [Vim Editing Mode](https://stackoverflow.com/a/47208291).
    • MonoDevelop - Cross platform IDE for C#, F# and more, with [Vi-mode](https://www.monodevelop.com/archived/developers/tasks/source-editing/vi-mode/).
    • pida - An IDE that aims to use the tools you wish to use(including Vim and Emacs).
    • XVim
    • DrRacket Vim Tool - An IDE that aims to use the tools you wish to use(including Vim and Emacs).
    • Zed - Vim mode is built-in. Can be [enabled](https://zed.dev/docs/configuring-zed#vim) and [configured](https://zed.dev/docs/vim) in the settings file.
    • XCode - Apple's IDE. Vim mode can be enabled under the "Editor" menu without the use of plugins.
    • viemu - add Vim emulation to Visual Studio, SQL Server, Word & Outlook.
    • Qt Creator - Vim mode is built-in. Enable [FakeVim](https://doc.qt.io/qtcreator/creator-reference-preferences-fakevim.html) via Preferences > FakeVim.
  • PDF Viewers

    • zathura - Document reader, vim-keybindings, partly based on MuPDF. Linux only.
    • SumatraPDF - Document reader, vim-keybindings. Windows only.
    • Okular - Has some [basic](https://docs.kde.org/stable5/en/okular/okular/okular.pdf) Vim-like navigation.
    • xpdf - This PDF viewer can be [configured](https://stackoverflow.com/a/11800265/265508) to get Vim-like navigation.
    • apvlv - A PDF Viewer that acts Like Vim
    • Sioyek - Both keyboard and (optionally) mouse focused. Configurable and has the possibility of adding and developing plugins.
    • preview-vim - Adds vim-like keybindings, works via Karabiner Elements.
    • Evince - Has some basic Vim-like navigation.
  • Shells

    • nushell - Put this in your config file e.g. `$nu.config-path`:
    • xsh - Put this in your run control file `~/.xonshrc`:
    • readline - Readline is a library used by many CLI programs to read input from users. By configuring readline to use vi key bindings, you automatically get it for programs like `bash`, `irb`, `octave` etc. By default, readline has Emacs-like keybindings, but you can change that by putting this in your `~/.inputrc`:
    • Bash - The preferred method is to set Vi mode in `~/.inputrc` via readline, as you will get Vi mode automatically in all programs using the library. However, if you just want this for bash, put this in your bash startup file e.g. `~/.bashrc`:
    • zsh - just put this in your ZSH startup file, most likely `~/.zshrc`:
    • fish - Just add to your `~/.config/fish/config.fish` ([reference](https://stackoverflow.com/a/28445450/265508)):
    • ksh - Put this in your ksh startup file e.g. `~/.kshrc`:
    • pwsh - The Readline module offers support for convenient vim support. Add this to your `$Profile`:
    • zsh-vi-mode - A better and friendly Vim-mode plugin for zsh.
    • ble.sh - An interactive plugin `ble.sh` provides a better Vim mode as well as syntax highlighting and autosuggestions. In addition to the above setting of `set -o vi` in `~/.bashrc` or `set editing-mode vi` in `~/.inputrc`, you can add the following settings in `~/.bashrc` to enable `ble.sh`.
    • tcsh - Put this in your tcsh startup file e.g. `~/.tcshrc` ([reference](https://www.oreilly.com/library/view/mac-os-x/0596004583/ch04s02.html)):
  • WYSIWYG Editors

    • zettlr - Markdown document editor on the fly, vim+emacs keybindings.
    • XDG paths
    • #1 - 08-13/big-list-of-vim-like-software/), [#3](https://www.slant.co/topics/7131/~programming-text-editors-with-vim-key-bindings), [#4](https://vim.reversed.top/), [#5](https://vim.fandom.com/wiki/Vim_key_bindings_for_web_browsers).
    • keyd - A key remapping daemon for Linux.
  • Development

    • Jupyter Lab - Science and Data Development notebook environment. Add this package [jupyterlab-vim](https://pypi.org/project/jupyterlab-vim/) and restart the server. It is available for both `pip` and `conda` managed environments (and their derivatives).
    • Azure Data Studio - Database tool similar to Microsoft SQL Server Management Studio. Supports VSCode extensions.
    • Google Colab - Data analysis and machine learning tool that allows you to combine executable Python code and rich text along with charts, images, HTML, LaTeX and more into a single document stored in Google Drive. Vi mode supported through [keyboard binding settings](https://colab.research.google.com/notebooks/editor_details.ipynb#scrollTo=bEXkvERUtU5O). You can [enable](https://stackoverflow.com/questions/48674326/is-there-a-way-to-use-vim-keybindings-in-google-colaboratory ) it through Tools > Settings > Editor
    • The Julia Programming Language - High level, general-purpose dynamic programming language suited for numerical analysis and computational science
    • ipython - Interactive Python shell. It no longer uses readline for input, so it must be configured in the ipython profile `~/.ipython/profile_default/ipython_config.py` itself ([reference](https://gist.github.com/sstirlin/c3c207b1052b613ab9554b4ebdfc3f35)):
    • GHCi - Interactive Haskell environment. It uses [haskeline](https://hackage.haskell.org/package/haskeline) instead of readline. Put this in `~/.haskeline`:
    • Vim plugin - Cannot be installed directly in the plugin section. Go to [Vim plugin release page](https://github.com/VSCodeVim/Vim/releases) and download `.vsix` file. Inside Azure Data Studio navigate to Extensions > three dots at the top > Install from VSXI. You will likely see message: "Unable to install extension 'vscodevim.vim' as it is not compatible with the current VS Code engine version". If you see that message you should try earlier release.
    • VimBindings.jl - A Julia package which emulates vim directly in the Julia REPL
    • LINQPad - The .NET Programmer’s Playground. vi mode available in settings. To enable go to Edit > Preferences > vi mode. Quite limited, doesn't support ex commands, registers and macros.
    • ptpython - A better Python REPL. Start it with `ptpython --vi` or add `repl.vi_mode = True` to its `config.py`.
    • k9s - Kubernetes CLI tool with full VIM bindings
    • DBeaver - Free Universal Database Tool
    • Vrapper plugin - Plugin adds vim bindings to SQL editor. Install it using instructions from https://github.com/dbeaver/dbeaver/issues/8219
  • What is this list?

    • learned - like keybindings in as many programs we use as possible.
  • Legend

    • TUI - Text User Interface
  • Debuggers

    • cgdb - a curses interface on top of the GDB debuger with keybindings modeled after vim.
    • vimpdb - An integration of the python debugger `pdb` and vim.
    • cgdb - a curses interface on top of the GDB debugger with keybindings modeled after vim.
  • E-Mail

    • Mutt - The vim of email, a TUI email client
    • NeoMutt - A fork of mutt, intendted to reignite the development.
    • sup - a console-based email client for people with a lot of email with Vim-inspired [keyboard shortcuts](https://github.com/sup-heliotrope/sup/wiki/Keyboard-reference).
    • Thunderbird
    • Muttator - Like Vimperator but for thunderbird.
    • teledactyl
    • aerc - Terminal email client with Vim keybindings.
    • cubiclevim - Edit Microsoft Outlook messages in Vim-style.
    • Mutt - The vim of email, a TUI email client
  • File Management

    • vifm - TUI file manager with vi keybindings.
    • ncdu - ncurses disk usage explorer.
    • rover - A small file browser with Vi-like key bindings for navigation.
    • broot - An interactive file tree explorer. [vim_mode](https://dystroy.org/broot/vim_mode/) can be enabled in the configuration file.
    • Total Commander
    • jvifm - A Java implementation of vifm; a file manager with Vim-like keybindings.
    • fman - A dual-pane file manager.
    • ranger - Another TUI file manager.
    • lf - TUI file manager similar to ranger.
    • felix - TUI file manager.
    • nnn - TUI file manager.
    • xplr - TUI file manager.
    • cfiles - A ncurses file manager written in C with Vim-like keybindings.
    • ViATc - adds a Vim mode to Total Commander.
    • Finder Vim Mode - adds extensive vim-like/ranger-like keybindings, works via Karabiner Elements.
    • vide - The graphical predecessor of vifm that uses GTK+
    • VimNavigation - Adds Vim-style keyboard navigation to the fman file manager.
    • yazi - Blazing fast terminal file manager written in Rust, based on async I/O.
    • rover - A small file browser with Vi-like key bindings for navigation.
    • superfile - Pretty fancy and modern terminal file manager that supports h-j-k-l out of the box. See also more vim-like configuration [here](https://superfile.dev/configure/custom-hotkeys/#vim-like-superfile-hotkeys).
  • Image Editors

    • rx - A pixel editor.
    • ViPaint - A modal Vi-like painting program.
  • Image Viewers

    • xzgv - Keyboard driven image viewer with Vim-style navigation.
    • vimiv-qt - An image viewer with Vim-like keybindings.
    • Pim - A PyGObject based image viewer with Vim-like keybindings.
    • nsxiv - A maintained fork of sxiv.
    • sxiv - See nsxiv instead.
    • vimiv - See vimiv-qt.
    • imv - A command-line image viewer intended for use with tiling window managers (X11/Wayland).
  • Hex editors

    • bvi - A Hex editor for those familiar with Vi-like keybindings
    • hed - A terminal hexadecimal editor with Vim-like controls.
    • hexer - a Vi-like binary editor.
    • bviplus - An ncurses based Gex editor with a Vim-like interface.
    • hx - Hex editor for the terminal with simple Vim-like keybindings.
    • HEdit - A Vim-like terminal-based hex editor scriptable with JS.
  • Misc

    • pipedial - A terminal selector with basic Vim-like keybindings.
    • termshark - a UI for tshark with Vim-navigation.
    • mycli - A CLI for MySQL, MariaDB, and Percona with auto-completion and syntax highlighting. There are two types of keybindings available. Emacs mode and Vi mode.
    • Remember The Milk - A task management application available on various platforms including web, Windows, Linux, macOS desktop, and Android & iOS mobile apps. It offers built-in Vim-like keybindings on its desktop and web versions.
    • Kitty - The fast, feature-rich, GPU based terminal emulator. Through its configuration, users can configure splitting and navigation to mimic the behavior of Vi.
    • fx - Terminal based JSON viewer.
    • glow - Terminal based markdown reader.
    • gollum - A Git-powered wiki with built-in vim editing mode. Start with `--default-keybind vim`.
    • mdp - A command-line based markdown presentation tool.
    • pulsemixer - CLI and curses mixer for [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/).
    • sentaku - A terminal selector with Vim-like keybindings.
    • stig - TUI/CLI for the BitTorrent client Transmission.
    • Yzis - A vi/vim engine that is easy to integrate in any graphical application.
    • Foliate - An e-book reader with basic vim-like navigation
    • ly - A TUI display manager. Supports vi-like movement. Edit this in your `/etc/ly/config.ini`
    • Anki - Spaced repetition and media-rich cards flashcard program for study.
    • anki_vimove - Add-on for vi-like movement in deck browser.
  • Music Players

    • vitunes - An MPD client with Vi-like bindings.
    • siren - A text-based audio player with [Vim-like](https://www.kariliq.nl/man/siren.1.html) keybindings.
    • ncmpcpp - An ncurses client for [mpd](https://www.musicpd.org/). The navigation can quite easily be made to behave like vim with some keyboard configurations.
    • cmus - A console music player with vim-like [keybindings](https://man.archlinux.org/man/cmus.1.en#KEYBINDINGS).
    • vimus - An MPD client with Vim-like keybindings.
    • vimpc - A console mpd client that provides a vim-like interface. Default keybindings in the [help file](https://github.com/boysetsfrog/vimpc/blob/master/doc/help.txt)
    • pms - A frontend to MPD with Vim-like keybindings.
    • spotify-tui - TUI for Spotify with Vim-like keybindings.
    • herrie - a MPD player with Vim-like [keybindings](https://github.com/EdSchouten/herrie/blob/master/herrie/man/00-man).
    • vitunes - An MPD client with Vi-like bindings.
    • spicetify - an extension framework for spotify. Includes an extension with [vim-like](https://spicetify.app/docs/advanced-usage/extensions/#keyboard-shortcut) keybindings.
  • Music Production

  • News/RSS Readers

  • Office Productivity

    • LibreOffice
    • AbiWord - An OSS word processor.
    • configured
    • VisiData - A TUI data exploration tool with Vim-like [navigation](https://jsvine.github.io/intro-to-visidata/basics/navigating-visidata/).
    • vibreoffice - Vi Mode for LibreOffice/OpenOffice.
    • sc-im - Like sc but improved, a Vim-like spreadsheet calculator.
    • SheetKeys - Browser extension (Chrome and Firefox) which adds Vim keybindings to Google Sheets.
    • vibreoffice - Vi Mode for LibreOffice/OpenOffice, fork that supports calc.
    • configured
  • Personal Knowledge Management

    • Obsidian - under "Editor" options
    • Logseq
    • logseq-plugin-vim-shortcuts - normal mode commands deal with whole blocks, editing text is only possible in edit mode
    • Trilium - 'Enable Vim Keybindings' added to Options in early-2022
    • Joplin - under "Tools" → "Options" → "General" → "Show Advanced Settings" → "Keyboard Mode"
  • Social

    • weechat - A flexible IRC client.
    • vchatter - A Vi-like Jabber chat client.
    • matui - a Matrix TUI with vim-like navigation.
    • tut - a Mastodon client with vim-like navigation
    • weechat-vimode - A script that will configure Weechat to get Vim-like navigation.
    • scli - Signal messenger TUI with Vim-like keybindings.
    • rtv - A Reddit TUI viewer
    • vim_mode
    • iamb - A Matrix client for Vim addicts.
  • Source Code Management

    • git - Nothing's better than the real deal. Tell git to use vim/nvim when editing commit messages, interactive rebase etc. by putting in your `~/.config/git/config`:
    • hg/mercurical - Put in your `~/.config/hg/hgrc`:
    • tig - Text interface for git. Works mostly like vim out of the box, but can be enhanced by sourcing these [keybindings](https://github.com/jonas/tig/blob/master/contrib/vim.tigrc) in your `~/.tigrc`.
    • GitUI - GitUI provides you with the comfort of a git GUI but right in your terminal.
    • Lazygit - Simple terminal UI for git commands with Vim-like keybindings.
  • System-wide

    • Homerow - Add vim-like navigation to any macOS app.
    • kindaVim - Get vim-like navigation in any macOS text field.
    • kommand - A cross-application Vim-like hot key solution.
    • vim-anywhere - Spawn a vim buffer from any text input in the operating system.
    • sketchyvim - Get vim-like navigation in any macOS text field.
    • athame - Patches your shell to add full Vim support by routing your keystrokes through an actual Vim process.
    • win-vind - Control the Windows GUI in the same way as Vim.
    • Scrolla - Scroll in macOS using Vim motions.
    • warpd - A modal keyboard-driven interface for mouse manipulation, Linux (X11/Wayland)
    • keystrokes - Record your keystrokes and replay them just like in Vim macro, Linux (X11/Wayland)
    • AltTab - A utility that brings Windows-style Alt-Tab functionality to macOS with Vim key support. To enable Vim keys, go to: `Preferences` → `Controls` → `Additional controls` → **Select windows using Vim keys**.
    • Hints - Navigate GUI applications in Linux without your mouse by displaying "hints" you can type on your keyboard to interact with GUI elements (X11/Wayland)
  • System Tools

    • htop-vim - A patched version the [htop](https://htop.dev/) interactive process viewer that has vim keybindings for navigation.
    • aptitude - ncurses interface for APT on Debian-derived Linux distros. The [keybindings](https://www.debian.org/doc/manuals/aptitude/ch02s05s02.en.html) are already vim-like.
    • lnav - A log viewer with minimal Vim-like [navigation](https://docs.lnav.org/en/latest/hotkeys.html).
    • btop++ - A resource monitor. To enable Vim-navigation, set in the config file:
    • CopyQ - A clipboard manager with basic Vim-like navigation.
  • Task Management

    • TuDu - A comand line interface to manage hierarchical todos.
    • calcurse - A calendar and scheduling application for the command line with default [vim-like keybindings](http://culot.org/calcurse/manual_en.html#options_keys).
    • taskell - Command-line Kanban board/task management.
    • kabmat - TUI for managing kanban boards with Vim-like keybindings.
    • vit - An TUI for [Taskwarrior](https://taskwarrior.org/) Vim-like keybindings.
    • Keyban - Kanban board/task management/bullet journal app built for Vim-like operation.
  • Text Editors

    • clones - vi ...)
    • evil-mode - Extensible vi layer for Emacs.
    • spacemacs - Emacs configuration package that improves the Emacs experience, including vim bindings via `evil-mode`. Features a vim-like leader (space) for common commands.
    • Vimpulse
    • Vim Mode
    • Sublime Text - in [Vintage mode](https://www.sublimetext.com/docs/vintage.html) that can be enabled.
    • Six
    • amp - A modal terminal text.
    • moe - A modal text editor with a Vim-like mode.
    • kate - A text editor with a [Vi-mode](https://kate-editor.org/kate-vi-mode/).
    • slickedit - A Code editor with [Vim emulation](https://www.slickedit.com/images/stories/products/slickedit/emulation_charts/Vim_Emulation.pdf).
    • WinVi - A Windows text editor highly compatible with Vi.
    • VNote - A note-taking editor with Vi mode and Vi-like navigation.
    • Inkdrop - A Markdown note taking app.
    • GNOME Text Editor - If it's [installed](https://askubuntu.com/a/1439846) with APT, enable the Vim mode by running this in a Terminal:
    • doom emacs - Configuration package that provides a similar experience to Spacemacs (including `evil-mode`. Also implements spacebar-as-leader-key.
    • NeoVintageous - An advanced Vim emulation layer.
    • Vintageous
    • VintageEx
    • FakeVim
    • kakoune - A modal text editor inspired by Vim-navigation.
    • rim - The aspiring Vim-like text editor.
    • vy - A Vim-like in python made from scratch.
    • VNote - A note-taking editor with Vi mode and Vi-like navigation.
    • oni2 (onivim) - [Deprecated](https://github.com/onivim/oni2/issues/3861).
    • editra - Developers Text Editor, with a Vi-mode.
    • inkdrop-vim - Provides a Vim modal control for Inkdrop.
    • atom-vim-mode-plus
    • atom-vim-mode-plus
  • Web browsers

    • qutebrowser
    • Vieb - Vim bindings for the web by design (electron based)
    • Tridactyl
    • Vimium-FF
    • Vimium C
    • Surfingkeys
    • Vim Vixen
    • vimkeybindings - Small addon adding just basic keyboard navigation shortcuts.
    • Krabby - keyboard-based navigation inspired by Kakoune.
    • Vimperator - See Tridactyl instead
    • Pentadactyl - See Tridactyl instead
    • Vimium
    • Vimium C
    • Surfingkeys
    • wasavi - Transform text areas into a vi editor.
    • Surfingkeys
    • Surfingkeys
    • w3m - A text-based web browser with some Vim-like [keyboard shortcuts](https://cheatsheetfactory.geekyhacker.com/linux/w3m).
    • netrik - A text-based web browser with Vi-inspired keyboard commands.
    • jumanji - A keyboard driven web browser.
    • luakit - A highly configurable browser with [Vim-like](https://wiki.archlinux.org/title/Luakit) navigation.
    • bombadillo - A non-web browser but for other protocols e.g. Gopher, Gemini, Finger.
    • uzbl
    • lynx - A customizable text-based browser and the oldest web browser still being maintained. You can enable Vi-like movement by passing `-vikeys` or add an alias in your `.bashrc`:
    • Vimperator - See Tridactyl instead
    • Video Speed Controller - like navigation.
    • cVim
    • wasavi - Transform text areas into a vi editor.
    • ViChrome
    • vrome
    • Video Speed Controller - like navigation.
    • VimOperate
    • vimb - The vim like browser.
    • nyxt - A keyboard-driven web browser inspired by Vim and Emacs.
    • wyeb - A Vim-like webkit2gtk web browser.
    • Vimprobable
    • dwb - See qutebrowser instead.
    • xombrero - A minimalist web browser with vi-like keyboard commands.
    • Cream-Browser - A browser developped in C with GTK+ having the same interface as Vimperator.
    • firenvim - Transform text areas into a Neovim instance that inherits your existing config (keymaps, plugins, etc).
  • Window Managers

    • i3wm - A tilling window manager with Vim-like [keyboard shortcuts](https://i3wm.org/docs/refcard.html).
    • sway - A drop-in replacement for i3 for Wayland.
    • euclid-wm - A minimalist tiling wm with default Vim-like keybindings.
    • howm - A lightweight, X11 tiling window manager that behaves like vim.
    • wmii - A small and scriptable window manager that can be configured with Vim-like [keyboard shortcuts](https://wiki.debian.org/Wmii#Basic_Configuration).
    • AppGrid - A window manager for macOS with Vim-like hotkeys.
  • Economy

    • cointop - interactive terminal based UI application for tracking and monitoring cryptocurrency.
  • Pagers

  • Terminal Emulators

    • tmux - the terminal multiplexer, superseding GNU Screen.
    • alacritty - A cross-platform, OpenGL terminal emulator with Vim-like keybindings by default.
    • urxvt-vim-scrollback - Provides Vim-like scrollback mode and pasting.
    • Termine - See alacritty instead.
  • Web Apps

    • HackerRank - Coding challenges and interview preparation across multiple domains.
    • leetcode - Algorithmic programming problem repository.
    • OnlineGDB - Online compiler and debugger supporting many programming languages.
    • Godbolt - An interactive compiler exploration website.
    • Rust Playground - The editor in the Rust playground has a Vim mode.