Vim Keybindings Everywhere - The Ultimate List
including these top contributors:
:rocket: PRs are welcome
What is this list?
Once your fingers have learned to speak Vim, they don't want to speak anything else! It's simply a very effective way of navigating, creating and editing text. Thus, it's natural that one would like to get Vim-like keybindings in as many programs we use as possible.
The intention of this collaborative list is to:
- learn which programs/apps that you already use which you can enhance with Vim keybindings. Search in your browser with
ctrl/cmd + f
. - discover new programs that support Vim keybindings. In the need for a new file manager? Why not get one that has Vim keybindings?
- be up-to-date and alive -- add new programs and extensions as they evolve!
There are of course already lists like this one floating around on the internet (see Acknowledgments). While they are great, the issue is that they are not up-to-date with the latest developments. There are Vim-emulator add-ons being developed all the time! This is why this collaborative list was created.
(yes, technically it is vi-like keybindings we talk about here, but most people know and Google for vim, thus vim is used here instead of vi).
Legend
The following symbols are used with each list item to make it clearer what kind of Vim keybindings support exist
- :white_check_mark: - built-in support (possibly via a setting)
- :heavy_plus_sign: - via addon/extension
Terminology:
- TUI - Text User Interface
Tip: navigate this file easily by using GitHub's built-in Markdown Table of Contents in the top left corner:
The Ultimate Vim Keybinding List
Debuggers
- :white_check_mark: cgdb - a curses interface on top of the GDB debuger with keybindings modeled after vim.
- :white_check_mark: vimpdb - An integration of the python debugger
pdb
and vim.
Development
-
:white_check_mark: 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):-
c.TerminalInteractiveShell.editing_mode = "vi"
-
-
:white_check_mark: GHCi - Interactive Haskell environment. It uses haskeline instead of readline. Put this in
~/.haskeline
:-
editMode: Vi
-
-
:heavy_plus_sign: Jupyter Lab - Science and Data Development notebook environment. Add this package jupyterlab-vim and restart the server. It is available for both
pip
andconda
managed environments (and their derivatives). -
:white_check_mark: 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.
-
Azure Data Studio - Database tool similar to Microsoft SQL Server Management Studio. Supports VSCode extensions.
- :heavy_plus_sign: Vim plugin - Cannot be installed directly in the plugin section. Go to Vim plugin release page 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.
- :heavy_plus_sign: Vim plugin - Cannot be installed directly in the plugin section. Go to Vim plugin release page and download
-
:white_check_mark: 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. You can enable it through Tools > Settings > Editor
-
The Julia Programming Language - High level, general-purpose dynamic programming language suited for numerical analysis and computational science
- :heavy_plus_sign: VimBindings.jl - A Julia package which emulates vim directly in the Julia REPL
-
:white_check_mark: k9s - Kubernetes CLI tool with full VIM bindings
-
DBeaver - Free Universal Database Tool
- :heavy_plus_sign: Vrapper plugin - Plugin adds vim bindings to SQL editor. Install it using instructions from https://github.com/dbeaver/dbeaver/issues/8219
- :white_check_mark: Mutt - The vim of email, a TUI email client
- :white_check_mark: NeoMutt - A fork of mutt, intendted to reignite the development.
- :white_check_mark: sup - a console-based email client for people with a lot of email with Vim-inspired keyboard shortcuts.
- Thunderbird
- :heavy_plus_sign: Muttator - Like Vimperator but for thunderbird.
- :heavy_plus_sign:
teledactyl
- :white_check_mark: aerc - Terminal email client with Vim keybindings.
- :white_check_mark: meli - A TUI email client with Vim-like keybindings.
- Microsoft Outlook
- :heavy_plus_sign:
cubiclevim- Edit Microsoft Outlook messages in Vim-style.
- :heavy_plus_sign:
Economy
- :white_check_mark: cointop - interactive terminal based UI application for tracking and monitoring cryptocurrency.
File Management
- :white_check_mark: vifm - TUI file manager with vi keybindings.
- :white_check_mark: ranger - Another TUI file manager.
- :white_check_mark: lf - TUI file manager similar to ranger.
- :white_check_mark: felix - TUI file manager.
- :white_check_mark: nnn - TUI file manager.
- :white_check_mark: xplr - TUI file manager.
- :white_check_mark: ncdu - ncurses disk usage explorer.
- :white_check_mark: cfiles - A ncurses file manager written in C with Vim-like keybindings.
- :white_check_mark: rover - A small file browser with Vi-like key bindings for navigation.
- :white_check_mark: broot - An interactive file tree explorer. vim_mode can be enabled in the configuration file.
- Total Commander
- :heavy_plus_sign: ViATc - adds a Vim mode to Total Commander.
- macOS Finder
- :heavy_plus_sign: Finder Vim Mode - adds extensive vim-like/ranger-like keybindings, works via Karabiner Elements.
- :white_check_mark:
jvifm- A Java implementation of vifm; a file manager with Vim-like keybindings. - :white_check_mark:
vide- The graphical predecessor of vifm that uses GTK+ - fman - A dual-pane file manager.
- :heavy_plus_sign: VimNavigation - Adds Vim-style keyboard navigation to the fman file manager.
- :white_check_mark: yazi - Blazing fast terminal file manager written in Rust, based on async I/O.
IDEs
- Jetbrain's IDEs (Intellij, PYCharm, PHPStorm, WebStorm, ...)
- :heavy_plus_sign: IdeaVim - Install it directly from the plugin section in the IDE settings.
- Visual Studio Code (VSCode)
- :heavy_plus_sign: VSCodeVim - Vim emulation for Visual Studio Code. GitHub
- :heavy_plus_sign: VSCode Neovim - Alternative to the VIM plugin, uses a full nvim instance in the background instead of just emulating VIM. GitHub
- :white_check_mark: XCode - Apple's IDE. Vim mode can be enabled under the "Editor" menu without use of plugins.
- Eclipse
- :heavy_plus_sign: vrapper-vim - A wrapper that provides a Vim-like input scheme for moving around and editing text.
- :heavy_plus_sign: viplugin
- :heavy_plus_sign: viable
- :heavy_plus_sign:
vimplugin
- NetBeans - Java IDE
- Visual Studio
- :heavy_plus_sign: VsVim (Visual Studio 2015-2019) - install through the extensions inside Visual Studio
- :heavy_plus_sign: VsVim 2022 (Visual Studio 2022) - install through the extensions inside Visual Studio
- :heavy_plus_sign: viemu - add Vim emulation to Visual Studio, SQL Server, Word & Outlook.
- Geany
- :heavy_plus_sign: vimode - The vimode plugin can be enabled from the settings.
- :white_check_mark: RStudio - There's a built-in Vim Editing Mode.
- :white_check_mark: MonoDevelop - Cross platform IDE for C#, F# and more, with Vi-mode.
- :white_check_mark:
pida- An IDE that aims to use the tools you wish to use(including Vim and Emacs). - DrRacket - IDE for learning the Racket language.
- :heavy_plus_sign:
DrRacket Vim Tool- An IDE that aims to use the tools you wish to use(including Vim and Emacs).
- :heavy_plus_sign:
- :white_check_mark: Zed - Vim mode is built-in. Can be enabled and configured in the settings file.
Image Editors
- :white_check_mark: rx - A pixel editor.
- :white_check_mark: ViPaint - A modal Vi-like painting program.