Skip to main content

What is CodeMirror Vim?

CodeMirror Vim brings the power and efficiency of Vim keybindings to CodeMirror 6, the modern extensible code editor for the web. This package provides a complete implementation of Vim’s modal editing experience, allowing developers to use familiar Vim commands and workflows in web-based editors.

Key features

CodeMirror Vim offers comprehensive Vim functionality:
  • Complete modal editing: Full support for normal, insert, visual, and visual line/block modes
  • Classic Vim commands: All standard Vim motions, operators, and text objects work as expected
  • Ex commands: Execute commands like :w, :q, and custom ex commands you define
  • Key mapping: Customize keybindings with Vim.map() and Vim.unmap() for any mode
  • Custom operators: Define your own custom operators to extend Vim functionality
  • Visual selection: Proper visual mode rendering with block cursor support
  • CM5 API compatibility: Use the familiar CodeMirror 5 Vim API with CodeMirror 6
CodeMirror Vim is actively maintained by Replit and was originally authored by @mightyguava (Yunchi Luo) as part of the official CodeMirror project.

Who should use it?

CodeMirror Vim is perfect for:
  • Vim users: Developers who want to bring their Vim muscle memory to web-based editors
  • Web-based IDE developers: Teams building code editors that need professional-grade Vim support
  • CodeMirror users: Anyone upgrading from CodeMirror 5 Vim to CodeMirror 6
  • Modal editing enthusiasts: Developers who prefer the efficiency of modal editing workflows

Why CodeMirror Vim?

If you’re building a web-based code editor and your users expect Vim keybindings, CodeMirror Vim provides a battle-tested, feature-complete solution. It maintains compatibility with the CodeMirror 5 Vim API while taking full advantage of CodeMirror 6’s modern architecture.

Try it live

Explore a working demo of CodeMirror Vim on Replit

Next steps

Installation

Install CodeMirror Vim in your project

Quickstart

Get up and running in minutes

Build docs developers (and LLMs) love