explaingit

vscodevim/vim

Analysis updated 2026-06-24 · repo last pushed 2026-05-21

15,147TypeScriptAudience · developerComplexity · 2/5MaintainedLicenseSetup · easy

TLDR

VSCodeVim is a Visual Studio Code extension that adds Vim modal editing, key remapping, and popular Vim plugin emulations directly inside the editor.

Mindmap

mindmap
  root((VSCodeVim))
    Inputs
      Keystrokes
      settings.json
      .vimrc file
    Outputs
      Modal editing
      Remapped keys
      Multi-cursor edits
    Use Cases
      Use Vim keys in VS Code
      Port a vimrc
      Emulate vim-surround
    Tech Stack
      TypeScript
      VS Code
      Neovim
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Get Vim modal editing inside VS Code without leaving the editor for a terminal.

USE CASE 2

Load an existing .vimrc and reuse familiar key remappings in VS Code.

USE CASE 3

Emulate plugins like vim-surround, vim-easymotion, and vim-commentary without installing real Vim plugins.

USE CASE 4

Hand off Ex commands to a real Neovim process for richer command handling.

What is it built with?

TypeScriptVS CodeNeovim

How does it compare?

vscodevim/vimjupyterlab/jupyterlabdifferent-ai/openwork
Stars15,14715,14215,157
LanguageTypeScriptTypeScriptTypeScript
Last pushed2026-05-212026-05-22
MaintenanceMaintainedMaintained
Setup difficultyeasyeasymoderate
Complexity2/53/53/5
Audiencedeveloperdatavibe coder

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

macOS users need a defaults write tweak to make key repeat work, Windows users may need to adjust useCtrlKeys.

MIT licensed: use freely in personal and commercial projects as long as the copyright notice is kept.

In plain English

VSCodeVim is an extension for Visual Studio Code that makes the editor behave like Vim. Vim is the long-running text editor whose distinguishing feature is modal editing: you press keys in normal mode to navigate and run commands, switch to insert mode to type text, and visual mode to select. People who learned Vim tend to want those same key combinations everywhere they edit code, and this extension brings them inside VS Code so they can keep that muscle memory while still using the rest of VS Code's interface. Installation is through the VS Code extension marketplace or the OpenVSX marketplace. On macOS the README points out a quirk: by default, holding a key down does not repeat the key the way Vim users expect, because of an accessibility feature called press-and-hold. The fix is a one-line defaults write command for the relevant VS Code build (regular, Insiders, VSCodium, or Windsurf), then a logout and restart. On Windows the extension takes over control-key shortcuts by default, which the README notes can be controlled by the useCtrlKeys and handleKeys settings. Configuration lives in VS Code's settings.json file. A worked example in the README turns on EasyMotion, incremental search, and the system clipboard, sets the leader key to space, maps jj in insert mode to escape, and remaps Ctrl-A and Ctrl-F back to VS Code's native handlers. Key remapping is broken down per Vim mode: insertModeKeyBindings, normalModeKeyBindings, visualModeKeyBindings, and operatorPendingModeKeyBindings, each with a Non-Recursive variant that does not re-trigger other mappings. The extension also supports loading an existing .vimrc file. A Neovim integration option lets the extension hand off Ex commands (the ones you type after a colon) to a real Neovim process for handling. The extension supports multi-cursor mode and emulates a number of popular Vim plugins, listed in the README: vim-airline, vim-easymotion, vim-surround, vim-commentary, vim-indent-object, vim-sneak, CamelCaseMotion, an input-method helper, ReplaceWithRegister, vim-textobj-entire, and vim-textobj-arguments. These are reimplementations inside the extension, so installing them as real Vim plugins is not needed. The settings table is long and covers everything from cursor styles per mode to custom digraph shorthands. The README also includes a tricks section and a frequently asked questions section, followed by contributor guidance and shoutouts. Reporting bugs and missing features is directed to the GitHub issue tracker, and a changelog file documents breaking, major, and minor updates between releases. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
Configure VSCodeVim in settings.json to enable EasyMotion, set leader to space, and map jj in insert mode to escape.
Prompt 2
Fix the macOS press-and-hold key repeat issue for VSCodeVim with the right defaults write command for VS Code Insiders.
Prompt 3
Remap Ctrl-A and Ctrl-F back to VS Code's native handlers while keeping the rest of Vim bindings.
Prompt 4
Load my existing ~/.vimrc into VSCodeVim and explain which features are supported vs ignored.
Prompt 5
Set up the Neovim integration so colon Ex commands are handled by a real nvim binary.

Frequently asked questions

What is vim?

VSCodeVim is a Visual Studio Code extension that adds Vim modal editing, key remapping, and popular Vim plugin emulations directly inside the editor.

What language is vim written in?

Mainly TypeScript. The stack also includes TypeScript, VS Code, Neovim.

Is vim actively maintained?

Maintained — commit in last 6 months (last push 2026-05-21).

What license does vim use?

MIT licensed: use freely in personal and commercial projects as long as the copyright notice is kept.

How hard is vim to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is vim for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.