# hjkl-vim
Vim modal state types and grammar primitives for the hjkl editor stack. Pre-1.0
churn.
[](https://github.com/kryptic-sh/hjkl/actions/workflows/ci.yml)
[](https://crates.io/crates/hjkl-vim)
[](https://docs.rs/hjkl-vim)
[](Cargo.toml)
[](https://github.com/kryptic-sh/hjkl/blob/main/LICENSE)
Part of the [hjkl monorepo](https://github.com/kryptic-sh/hjkl) — a vim-modal
editor in Rust.
Provides the `Mode` enum used as the mode discriminator in `hjkl-keymap`'s
generic `Keymap<A, M>`. Phase 2+ will land the vim FSM (transitions,
operator-pending resolution, count accumulation) here. For now the crate is pure
plumbing: a stable extraction point so the rest of the stack can depend on a
versioned crate rather than an in-tree enum.
## Usage
```toml
[dependencies]
hjkl-vim = "0.1"
```
```rust
use hjkl_vim::Mode;
// Mode satisfies hjkl_keymap::Mode via the blanket impl for
// Copy + Eq + Hash + Debug types.
let mode = Mode::Normal;
```
## Documentation
[docs.rs/hjkl-vim](https://docs.rs/hjkl-vim)
## Contributing
See the
[monorepo CONTRIBUTING guide](https://github.com/kryptic-sh/hjkl/blob/main/CONTRIBUTING.md).
## License
MIT — see [LICENSE](https://github.com/kryptic-sh/hjkl/blob/main/LICENSE).