hjkl-engine
Vim FSM, motion grammar, and ex commands. Pre-1.0 churn.
Part of the hjkl monorepo — a vim-modal editor in Rust.
Vim-mode editor engine built on top of hjkl-buffer. Exposes an Editor you
can drop into a ratatui layout — covers the bulk of vim's normal / insert /
visual / visual-line / visual-block modes, text-object operators, dot-repeat,
and ex-command handling (:s/foo/bar/g, :w, :q, :noh, ...). Imported from
sqeel-vim with full git history.
Status
Editor<B, H> is generic over buffer backend + host; the Buffer trait splits
into Cursor / Query / BufferEdit / Search subtraits. See
docs.rs for the canonical API reference.
Features
| Feature | Default | Notes |
|---|---|---|
serde |
yes | Serde derives for Editor snapshot types. |
ratatui and crossterm are unconditional deps until the engine-native Style
type and the Buffer/Host trait extraction land. After that they move behind
feature flags so wasm/no_std consumers can opt out.
Usage
= "0.3"
use ;
use ;
use Buffer;
let mut editor = new;
editor.set_content;
// Drive the FSM with a keystroke (via hjkl-vim — the FSM lives there now)
let input = Input ;
dispatch_input;
Documentation
Contributing
See the monorepo CONTRIBUTING guide.
License
MIT — see LICENSE.