Help
User-facing reference for lattice features, organized by topic. The goal here is what :help does in vim and C-h i does in emacs: every feature has a deep-dive doc you can read end-to-end when you need to understand it, and skim when you just need a keystroke.
This is user documentation, not internal notes. For the design spec see ../dev/architecture/design.md; for current build status see ../dev/operations/implementation.md.
In-editor lookup is :help [topic] -- with no arg it opens this index page; with a topic name it opens the matching doc rendered through the same markdown-highlighting path :describe-command uses. <Tab> after :help lists registered topics. The bodies are embedded into the binary at build time, so no filesystem dependency is needed at runtime; the registry is also pluggable (future LSP-driven and plugin-supplied topics flow through the same surface).
Conventions
- Keystrokes use vim notation:
j,<C-d>,<Esc>,gg,dap. - Ex-commands use the
:cmdform. - Tables list keystrokes with their behavior. Sections build from the simple case to the edge cases.
- Every doc has a "Quick reference" section near the top for the keystroke-lookup case and a deeper "Semantics" / "Edge cases" section for the read-it-once case.
- Code samples use fenced blocks with the relevant language tag.
Topics
| Topic | File | Status |
|---|---|---|
| Getting started (the ten-minute orientation: the modal loop, open/save, the command line, splits, next steps) | getting-started.md | ✅ |
| Modal editing (Normal / Insert / Visual / Op-pending / Command / Search / Replace + the vim grammar) | modal-editing.md | ✅ |
Modes (major + minor; :<mode-name> toggle; LSP umbrella + sub-modes; display modes; convergence with :set) | modes.md | ✅ |
The command line (:, /, ? — the rich minibuffer: buffer-backed readline editing, <C-x><C-e> expand, history picker, live decorations, incsearch) | command-line.md | ✅ |
Search and substitute (/ / ? / :s / live preview / regex syntax / backrefs) | covered in command-line + ex-commands | 🟡 |
Ex-commands (:w, :e, :s, :g, :d, arg schemas, completion, ranges, aliases) | ex-commands.md | ✅ |
| Buffers and panes (registry, splits, file tree, navigation, theme) | buffers.md | ✅ |
| File tree & Oil (browse / edit the filesystem; oil-style writable directory listing; icons + colors) | filetree-oil.md | ✅ |
| Multibuffer views (excerpts composed into one editable buffer; the substrate behind search + project diff) | multibuffer.md | ✅ |
Project search (:search, streaming results multibuffer, <CR> jump-to-source, gr refresh) | project-search.md | ✅ |
Compilation mode (:compile / :recompile / :make any CLI tool, live *compilation* stream + headerline, <CR> jump, <C-c> kill, :problems) | compilation.md | ✅ |
The error list (:next-error / :cnext, ]qq/[qq, :error-list, :problems — quickfix filled by :compile) | error-list.md | ✅ |
Narrow mode (zn operator, :narrow / :widen, edit-in-view → source, stacked one-hop, znaf in view) | narrow-mode.md | ✅ |
Diff & merge (:diffthis / :diffsplit, ]c / [c, do / dp, sign column, two- + three-way) | diff.md | ✅ |
| Display & layout (soft-wrap, tab width, scroll-off, whitespace markers) | display.md | ✅ |
Modeline (per-pane status row: zones, the modal tag + showmode echo, ui.modeline.* layout config) | modeline.md | ✅ |
Themes & colours (:colorscheme + the live-preview picker, the builtin theme catalog, :customize, register_theme) | themes.md | ✅ |
| Folding (manual + indent + markdown + tree-sitter, operator interaction, navigation, auto-open) | folding.md | ✅ |
| Insert completion (sources, popup keymap, ranking, ghost text, snippets) | completion.md | ✅ |
Picker & marginalia (:picker <source> fuzzy finder — files/grep/buffers/lines/outline/…; typed annotation columns; syntax-highlighted previews; frecency ranking) | picker.md | ✅ |
Options and configuration (:set, layered resolver, TOML, groups, live :options reference) | options.md | ✅ |
LSP (servers, capabilities, attach lifecycle, every :lsp-* command in context) | lsp.md | ✅ |
lsp-mode (the umbrella minor + 9 sub-modes that gate per-feature LSP traffic) | lsp-mode.md | ✅ |
emacs-keys-mode (the <C-x> leader: emacs-style buffer / file / window chords layered over vim) | emacs-keys-mode.md | ✅ |
Claude Code (the :claude agent IDE peer: claude CLI attaches over WebSocket/MCP, runs in a terminal buffer, edits via reviewable side-by-side diffs; wire shapes provisional) | claude-code.md | ✅ |
opencode (the :opencode agent: runs opencode's native TUI in a terminal buffer with opencode-mode; :opencode-acp is the buffer-native alternative with lattice-owned diff review) | opencode.md | ✅ |
| Languages (bundled set, coverage roadmap, add new language tree-sitter or otherwise) | languages.md | ✅ |
Search and substitute (/ / ? / :s / live preview / regex syntax / backrefs) | covered in command-line + ex-commands | 🟡 |
| Registers, marks, macros | covered in modal-editing | 🟡 |
Help system (:describe-*, :apropos, :keymap, <C-h> map, mode-prefix syntax for :describe-key) | help.md | ✅ |
| Plugins (WASM Component Model, capabilities, fuel, crash isolation, API introspection) | plugins.md | ✅ |
Core plugins (ship with lattice, prebuilt, on by default; auto-pair; <id>.enabled gates) | core-plugins.md | ✅ |
Configuring with init.rs (Rust/WASM config: event handlers, custom commands / motions / text-objects, keybinds, options; :reload-config) | init.md | ✅ |
| Performance posture (latency budgets, what's safe in a hot loop) | planned | ⛔ |
Tutor (the gamified :tutor lesson sequence — lives/score/HUD; 7 lessons: motions → grammar → visual → modes/help → splits/diff/LSP → advanced editing → customization) | tutor.md · lessons | ✅ |
Topics with _planned_ aren't drafted yet — open an issue or send a PR if you want one prioritized.
When to read which
- You want to do X right now: jump to the topic and search for the keystroke.
- You want to understand how X composes with Y: read the topic's "Edge cases" / "Interaction" sections.
- You want to know if a feature exists yet:
../dev/operations/implementation.mdis the ledger. - You want to know why it works the way it does:
../dev/architecture/design.mdis the spec.