A VS Code extension that embeds a real Neovim instance to provide full Vim keybindings and modes inside VS Code.
VSCodeVim/Vim
Vim emulation for Visual Studio Code, bringing Vim modes, motions, and keybindings into the VS Code editor.
- Stars
- 15,228
- Forks
- 1,473
- Open issues
- 1,918
- Last commit
- yesterday
What is it?
VSCodeVim is a Vim emulator that runs as an extension inside Visual Studio Code. It lets developers who already know Vim use its modal editing model, including Normal, Insert, Visual, and Replace modes, along with familiar motions and operators, without leaving VS Code.
Beyond core emulation, the extension supports custom key remapping per mode, a .vimrc remap subset, and optional Neovim integration for running Ex commands. It also emulates several popular Vim plugins such as EasyMotion, vim-surround, vim-commentary, and vim-sneak, and offers multi-cursor support via gb and cmd/ctrl-d.
The extension is installable from the VS Code Marketplace or Open VSX, and its behavior is configured through VS Code settings such as useSystemClipboard, useCtrlKeys, and highlightedyank options.
Key features
- 01Normal, Insert, Visual, and Replace modes with familiar Vim motions and operators
- 02Custom key remapping per mode, including non-recursive mappings
- 03Emulation of plugins such as EasyMotion, vim-surround, and vim-commentary
- 04Multi-cursor editing via gb or the VS Code add-cursor shortcut
- 05Optional Neovim integration for Ex commands and limited .vimrc remap support
Use cases
- Developers who want Vim keybindings while using VS Code for debugging and extensions
- Remapping keys to match a personal Vim workflow inside VS Code
- Teams standardizing on modal editing across editors
Quick start
- 1
Install the VSCodeVim extension from the VS Code Marketplace or OpenVSX
- 2
On macOS, disable press-and-hold so key repeat works (run the README defaults commands, then restart VS Code)
Things to know
- On macOS, key repeat needs a system setting changed and a logout or restart.
- On Windows, VSCodeVim takes over control keys unless you change the useCtrlKeys and handleKeys settings.
Topics
FAQ
- What is Vim?
- Vim emulation for Visual Studio Code, bringing Vim modes, motions, and keybindings into the VS Code editor. VSCodeVim is a Vim emulator that runs as an extension inside Visual Studio Code. It lets developers who already know Vim use its modal editing model, including Normal, Insert, Visual, and Replace modes, along with familiar motions and operators, without leaving VS Code.
- Is Vim free to use? What license does it have?
- Vim is open source under the MIT license. Check the license terms before using it in commercial products.
- Is Vim still maintained?
- Actively maintained. The last commit to Vim was on Nov 6, 2026.
- What can I use Vim for?
- Developers who want Vim keybindings while using VS Code for debugging and extensions Remapping keys to match a personal Vim workflow inside VS Code Teams standardizing on modal editing across editors
- How do I install Vim?
- Install the VSCodeVim extension from the VS Code Marketplace or OpenVSX On macOS, disable press-and-hold so key repeat works (run the README defaults commands, then restart VS Code)
- Where can I get Vim?
- The source code and installation instructions are on GitHub: https://github.com/VSCodeVim/Vim
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A community-driven Emacs distribution that combines Emacs and Vim editing styles with mnemonic key bindings and configuration layers.
A VSCode extension that reformats TypeScript error messages into readable, syntax-highlighted types with links to docs and explanations.
A terminal modal text editor written in Rust, inspired by Kakoune and Neovim, with multiple selections and built-in LSP support.
A modal code editor inspired by Vi, built around keystrokes as a text editing language and multiple selections.
A modal code editor built around multi-cursor, combinatoric text editing, written in Rust.