Headless Vim Engine for the Web
Pure functions. Zero dependencies. Any framework.
Give it a keystroke and state, get back new state and actions
Pure TypeScript. No runtime baggage. The core engine is just 2.8kB gzipped
Works with React, Vue, Svelte, and vanilla JS through thin wrappers
A real Vim editor. Right here in the browser.
Normal, Insert, Visual, Visual-Line, Visual-Block, Command-Line
w, b, e, 0, $, gg, G, f, t, /, ? and more
d, c, y, >, < combined with counts and motions
iw, aw, i", a(, it and more
/pattern, :s/old/new/g
Record, playback, and named marks
Everything is a pure function. No DOM access. No side effects.
keystroke + state processKeystroke() newState + VimAction[] Built in the open. MIT licensed.