vimee is a headless Vim engine built entirely with pure functions and zero dependencies. It provides a complete Vim editing experience that can be embedded into any web application, regardless of the framework you use.
Why vimee?
- Pure Functions — Every operation is a pure function. Input state in, new state out. No side effects.
- Zero Dependencies — The core engine has no external dependencies, keeping your bundle size minimal.
- Framework Agnostic — Works with React, Vue, Svelte, or any other framework. Bring your own UI.
- Testable — Pure functions are trivially testable. Use
@vimee/testkitfor ergonomic testing.
Quick Start
npm install @vimee/core
import { createInitialContext, processKeystroke, TextBuffer } from "@vimee/core";
const buffer = new TextBuffer("Hello, vimee!");
const ctx = createInitialContext({ line: 0, col: 0 });
// Process a keystroke — returns new context + actions
const { newCtx, actions } = processKeystroke("x", ctx, buffer);
// buffer.getContent() === "ello, vimee!"
Next Steps
- Installation — Detailed installation instructions
- Quick Start — Build your first vimee integration
- Packages — Explore the available packages