Skip to content

kryptic-sh/hjkl

hjkl

Vim engine, rope buffer, and modal editor primitives for building vim-modal terminal apps in Rust.

CI crates.io docs.rs License: MIT Website

Extracted from sqeel for reuse across sqeel, buffr, and the standalone hjkl binary.

Status

0.12.2 — full LSP client (diagnostics, goto, hover, completion, code actions, rename, format), window splits, tabs, tmux-navigator handoff, mouse scroll, line numbers, and a consumer-agnostic picker PreviewHighlighter trait. See CHANGELOG.md for the full release arc and docs.rs/hjkl-engine for the trait reference.

Crates

Crate Role
hjkl-engine Vim FSM + grammar, traits, no I/O deps.
hjkl-buffer Rope-backed text buffer with cursor + edits + folds + search.
hjkl-editor Front-door facade: re-exports engine + buffer + spec types.
hjkl-ratatui Ratatui Style adapters and crossterm::KeyEvent bridge.
hjkl-clipboard In-house clipboard for the ecosystem (sync + async, OSC 52 SSH).
hjkl-form Vim-modal forms with full vim grammar inside every text field.
hjkl-bonsai Tree-sitter syntax highlighting; runtime .so grammars, Neovim-flavoured themes.
hjkl-picker Fuzzy picker subsystem: file walk, grep, custom sources, PreviewHighlighter trait.
hjkl-config Shared TOML config loader: XDG paths, span errors, layered merge.
hjkl-splash Startup splash screen widget (ratatui feature).
hjkl-lsp LSP client: per-language server lifecycle, full text-sync, diagnostics.

Published on crates.io. Add to Cargo.toml:

hjkl-editor = "0.4"

Configuring hjkl

The standalone editor reads $XDG_CONFIG_HOME/hjkl/config.toml (Linux/macOS) or %APPDATA%\kryptic\hjkl\config\config.toml (Windows). Defaults are bundled into the binary from apps/hjkl/src/config.toml — that file is the single source of truth for default values. The user file is deep-merged on top: only the fields you want to override need to appear there. Unknown keys are an error.

A custom path can be passed with --config <PATH>.

# ~/.config/hjkl/config.toml — minimal override example
[editor]
leader = "\\"
tab_width = 2

See apps/hjkl/src/config.toml for the full schema with comments.

License

MIT. See LICENSE.

About

Vim engine, rope buffer, and modal editor primitives. Pre-release; see MIGRATION.md.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors