Reference

Per-surface keymap tables: one buffer kind, one minor mode, or one language grammar each. Reach for search.

Language modes

One per bundled tree-sitter grammar: highlighting, folds, symbols, text objects.

Magit buffers & chords

Every magit buffer kind, plus the shared minor modes that carry chords across all of them.

TopicWhat it covers
text-modetext-mode: the fallback major mode for plain text — full vim grammar, no tree-sitter parser, no LSP, no mode-scoped option overrides.
rust-moderust-mode: the major mode for Rust files (.rs) — tree-sitter highlighting, folds, symbols, and text objects.
python-modepython-mode: the major mode for Python files (.py, .pyw) — tree-sitter highlighting, folds, symbols, and text objects.
javascript-modejavascript-mode: the major mode for JavaScript files (.js, .mjs, .cjs) — tree-sitter highlighting, folds, symbols, and text objects.
typescript-modetypescript-mode: the major mode for TypeScript files (.ts, .mts, .cts) — tree-sitter highlighting, folds, symbols, and text objects.
tsx-modetsx-mode: the major mode for TSX files (.tsx) — tree-sitter highlighting, folds, symbols, and text objects.
go-modego-mode: the major mode for Go files (.go) — tree-sitter highlighting, folds, symbols, and text objects.
c-modec-mode: the major mode for C files (.c, .h) — tree-sitter highlighting, folds, symbols, and text objects.
cpp-modecpp-mode: the major mode for C++ files (.cpp, .cc, .cxx, .hpp, .hh, .hxx) — tree-sitter highlighting, folds, symbols, and text objects.
java-modejava-mode: the major mode for Java files (.java) — tree-sitter highlighting, folds, symbols, and text objects.
ruby-moderuby-mode: the major mode for Ruby files (.rb, .ruby) — tree-sitter highlighting, folds, symbols, and text objects.
lua-modelua-mode: the major mode for Lua files (.lua) — tree-sitter highlighting, folds, symbols, and text objects.
bash-modebash-mode: the major mode for Bash files (.sh, .bash, .zsh, .fish) — tree-sitter highlighting, folds, symbols, and text objects.
html-modehtml-mode: the major mode for HTML files (.html, .htm, .xhtml) — tree-sitter highlighting, folds, symbols, and text objects.
css-modecss-mode: the major mode for CSS files (.css) — tree-sitter highlighting, folds, symbols, and text objects.
json-modejson-mode: the major mode for JSON files (.json) — tree-sitter highlighting, folds, symbols, and text objects.
toml-modetoml-mode: the major mode for TOML files (.toml) — tree-sitter highlighting, folds, symbols, and text objects.
yaml-modeyaml-mode: the major mode for YAML files (.yaml, .yml) — tree-sitter highlighting, folds, symbols, and text objects.
sql-modesql-mode: the major mode for SQL files (.sql) — tree-sitter highlighting, folds, symbols, and text objects.
markdown-modemarkdown-mode: the major mode for .md files AND for every help buffer — hand-written highlight queries, folds by section.
Tablestable-mode: pipe-table editing in markdown and org — walks the cells and realigns, t moves and inserts rows and columns, and your table's own style is kept.
wit-modewit-mode: the major mode for WIT files (.wit) — tree-sitter highlighting and folds for the WebAssembly Interface Type language.

Completion & snippets

The completion gate, the popup keymap, and each source that feeds candidates into it.

TopicWhat it covers
magit-core-modemagit-core-mode: the shared minor mode active in every magit buffer — gr to refresh, q to close, ]]/[[ to move between sections, TAB to fold, S/U/C/i/yr for repo-level operations, and A/_/O to act on the commit under the cursor. Diff-content chords, including ]f/[f, live on magit-hunk-mode.
magit-nav-modemagit-nav-mode: the magit chords that are safe in any buffer — section navigation and folding, split out so editable magit views can have them without the bare letters.
magit-hunk-modemagit-hunk-mode: the shared minor mode active in every magit buffer that renders a diff — s/u/x to stage, unstage and discard the hunk at cursor, a/- to move one hunk of a commit, ]c/[c to navigate, to visit the right version at the right line. It also owns the folds inside a diff: per file and per @@ hunk, nothing finer.
magit-global-modemagit-global-mode: the always-active entry chords — C-x g opens magit-status, C-c g the repo dispatch transient, C-c f the file dispatch transient.
magit-diff-modemagit-diff-mode: a read-only diff buffer with line-, hunk- and file-level stage/unstage (s/u) — repo-wide against HEAD, or scoped to one file and one baseline.
magit-commit-modemagit-commit-mode: the commit compose buffer — a read-only staged diff on top, an editable message below, C-c C-c to commit and C-c C-k to abort.
magit-revision-modemagit-revision-mode: one historical commit in full — git show —stat -p, opened by on a SHA anywhere one appears. Read-only; visits a file as of that commit.
magit-file-revision-modemagit-file-revision-mode: one file's content at one fixed reference — a commit SHA, or the index (staged). Read-only, never opened directly.
magit-log-modemagit-log-mode: the commit history graph — git log —oneline —graph —decorate, on a row opens that commit's detail. Repo-wide or scoped to one file.
magit-blame-modemagit-blame-mode: a minor mode that annotates the file you are reading with a heading above each run of lines sharing a commit — your code keeps its syntax highlighting.
magit-refs-modemagit-refs-mode: every branch, remote-tracking branch and tag in one buffer, with each branch's ahead/behind against its upstream. shows the commit a ref points at; c checks out.
magit-branch-modemagit-branch-mode: the local branch list — checks out, c runs the create wizard, d deletes (asks first), m merges into the current branch.
magit-remote-modemagit-remote-mode: the configured remotes with their URLs — a adds, r renames, d removes, u sets the URL, p prunes.
magit-submodule-modemagit-submodule-mode: the configured submodules with git's own status marker — a adds, u updates, s syncs, d removes (asks first).
magit-stash-modemagit-stash-mode: the stash list — a apply, p pop, d drop (asks first), z create, to preview a stash's patch.
magit-stash-show-modemagit-stash-show-mode: one stash's patch — git stash show -p, opened by in the stash list. Read-only, fixed content.
magit-rebase-modemagit-rebase-mode: the interactive rebase todo — an editable pick list built from real history, C-c C-c to run it, C-c C-k to abort (asks first).
magit-notes-modemagit-notes-mode: the note attached to one commit, as an editable buffer. C-c C-c saves, C-c C-k closes without saving; clearing the buffer removes the note.
magit-cherry-modemagit-cherry-mode: which of your commits are not upstream yet, and which already are under a different SHA. opens a commit; A cherry-picks it.
Project diffmagit-project-diff-mode: identity marker for the project-diff view — every changed file as one editable multibuffer.

LSP surfaces

Hover popups and the three log buffers you open when a server misbehaves.

TopicWhat it covers
completion-modecompletion-mode: the per-buffer gate for insert-mode completion — active on writable buffers, which is why is a no-op in help or oil.
completion-popup-modecompletion-popup-mode: active only while the completion popup is open — owns C-n / C-p / C-y / Tab / CR and the rest of the popup keymap.
buffer-words-modebuffer-words-mode: contributes the completion source that offers words already present in your buffers.
path-completion-modepath-completion-mode: contributes filesystem-path completion, so typing a path in a buffer offers real directory entries.
tree-sitter-completion-modetree-sitter-completion-mode: contributes a syntax-aware completion source drawn from the buffer's parse tree.
lsp-completion-modelsp-completion-mode: contributes the language-server completion source — the type-aware candidates, produced asynchronously.
snippet-modesnippet-mode: the per-buffer snippet gate — C-x C-s expands directly, and it brings the snippet completion source with it.
snippet-completion-modesnippet-completion-mode: puts snippet triggers into the completion popup alongside buffer words, tree-sitter symbols, and LSP candidates.
active-snippet-modeactive-snippet-mode: live only while a snippet is expanding — Tab and S-Tab walk its placeholders, Esc leaves the session.

LSP feature gates

One per server capability. lsp-mode implies the whole set; turn one off to keep a server whose other features you want.

TopicWhat it covers
hover-modehover-mode: marks the hover popup buffer so it auto-dismisses when the document cursor moves. Content is markdown; markdown-mode renders it.
lsp-log-modelsp-log-mode: the subsystem-wide lsp buffer — every LSP event across every server, streamed live. :lsp-log.
lsp-server-log-modelsp-server-log-mode: one language server's own log — lsp::, scoped to a single instance. :lsp-server-log.
lsp-trace-log-modelsp-trace-log-mode: the LSP protocol trace for one server instance — the requests and responses on the wire. :lsp-trace.
References viewlsp-references-mode: identity marker for a references view — a multibuffer with this minor active IS the references list, and it is editable.
TopicWhat it covers
lsp-diagnostics-modelsp-diagnostics-mode: the diagnostic surfaces — gutter severity marks, gl for the message under the cursor, and the ]d / [d walk.
lsp-nav-modelsp-nav-mode: per-buffer gate for textDocument/definition, declaration, typeDefinition and implementation — turn it off and the go-to chords report no server for this buffer.
lsp-hover-modelsp-hover-mode: per-buffer gate for textDocument/hover — turn it off and K stops asking the server; the popup no longer appears for this buffer.
lsp-signature-modelsp-signature-mode: per-buffer gate for textDocument/signatureHelp — turn it off and parameter hints stop appearing in this buffer.
lsp-symbols-modelsp-symbols-mode: per-buffer gate for textDocument/documentSymbol and workspace/symbol — turn it off and the symbol pickers come back empty for this buffer.
lsp-code-action-modelsp-code-action-mode: per-buffer gate for textDocument/codeAction — turn it off and the code-action list is empty for this buffer.
lsp-format-modelsp-format-mode: per-buffer gate for textDocument/formatting and rangeFormatting — turn it off and :lsp-format reports no server for this buffer.
lsp-rename-modelsp-rename-mode: per-buffer gate for textDocument/rename — turn it off and :lsp-rename reports no server for this buffer.
lsp-document-highlight-modelsp-document-highlight-mode: per-buffer gate for textDocument/documentHighlight — turn it off and occurrences stop being highlighted in this buffer.
lsp-selection-range-modelsp-selection-range-mode: per-buffer gate for textDocument/selectionRange — turn it off and expand-selection falls back to the syntactic implementation.
lsp-inlay-hint-modelsp-inlay-hint-mode: per-buffer gate for textDocument/inlayHint — turn it off and inlay hints disappear from this buffer.
lsp-semantic-tokens-modelsp-semantic-tokens-mode: per-buffer gate for textDocument/semanticTokens — turn it off and highlighting falls back to tree-sitter alone.
lsp-folding-modelsp-folding-mode: sets foldmethod=lsp on its buffers, so folds come from textDocument/foldingRange instead of indentation.
lsp-progress-modelsp-progress-mode: marks a buffer whose server reports $/progress; the detail rides in the lsp modeline element.

Display toggles

One minor mode per :set display option — each is the same state as its vim counterpart.

TopicWhat it covers
line-numbers-modeline-numbers-mode: Shows absolute line numbers in the gutter Same state as :set number / :set nu.
relative-line-numbers-moderelative-line-numbers-mode: Numbers each line by its distance from the cursor, so 8k / 3j can be read straight off the gutter Same state as :set relativenumber / :set rnu.
wrap-modewrap-mode: Wraps long lines to the window width instead of scrolling horizontally Same state as :set wrap.
whitespace-show-modewhitespace-show-mode: Renders tabs, trailing spaces and other whitespace as visible glyphs Same state as :set list.
current-line-highlight-modecurrent-line-highlight-mode: Tints the line the cursor is on Same state as :set cursorline.
read-only-moderead-only-mode: Refuses edits to this buffer

Prompts & the minibuffer

Every one-line input surface: the : line expanded, the search line, generic prompts, picker previews.

TopicWhat it covers
command-line-expand-modecommand-line-expand-mode: C-x C-e grows the one-row : line into a multi-line band for editing a long command comfortably.
search-line-modesearch-line-mode: the / and ? search line as a real one-line buffer — full editing, C-p/C-n history, and BS on an empty pattern cancels.
prompt-line-modeprompt-line-mode: the generic one-line prompt — whenever something asks you to type an answer, this is the buffer you type it in.
preview-modepreview-mode: marks a pane showing a picker preview — an isolated, read-only projection that never touches the buffer you came from.

Terminal & REPL

The two modal states a terminal buffer sits in, and the REPL input convention.

TopicWhat it covers
terminal-normal-modeterminal-normal-mode: vim motions, search and yank over a terminal's scrollback — the mode a terminal buffer sits in when you're not typing at the shell.
terminal-insert-modeterminal-insert-mode: keystrokes go to the shell, not the editor. i enters it in a terminal buffer, C-\\ C-n leaves.
repl-moderepl-mode: makes i/a/o/A/I/O jump to the prompt and enter Insert, so 'start typing' always lands at the input line of a transcript buffer.

AI agent surfaces

The conversation transcript, permission popups, and agent process logs.

Synthetic buffers

Read-only buffers the editor produces for you: help, messages, notifications, plugins, problems.

TopicWhat it covers
ai-conversation-modeai-conversation-mode: the agent conversation buffer — a read-only transcript with an editable prompt. CR sends, C-j newlines, C-c interrupts, C-t toggles trust.
ai-permission-modeai-permission-mode: the popup answering an agent's permission request — CR selects the option under the cursor, Esc or q defers it.
ai-log-modeai-log-mode: one agent process's log — ai::, streamed live. Where to look when an agent won't start or dies mid-turn.
pi-modepi-mode: marks the terminal buffer running the pi agent. :pi launches it; pi's own TUI owns the conversation, so lattice adds nothing on the hot path.

Shared behaviour minors

Modes that exist so several buffer kinds share one implementation rather than a copied keymap.

TopicWhat it covers
help-modehelp-mode: the minor mode that turns a markdown buffer into a help buffer — read-only, with following links.
messages-modemessages-mode: the messages audit log — every echo-area message lattice has shown, kept in a real buffer you can search, yank, and scroll back through.
notifications-modenotifications-mode: the notifications buffer — every live and queued notification, where runs a notification's action and d dismisses it.
plugins-modeplugins-mode: the plugins manager buffer — a live status table of every loaded plugin, where lowercase acts on the row under the cursor and uppercase acts on every row.
problems-minor-modeproblems-minor-mode: marks a multibuffer as the problems view — :copen groups error locations as editable excerpts, one per entry, grouped by file.
diff-conflict-modediff-conflict-mode: the conflict-resolution surface. Activates on buffers whose diff session carries conflict regions, and contributes the fugitive-style d2o/d3o/d2p/d3p/dB chords.
Plugin boundary traceplugin-trace-mode: major mode for the plugin-trace buffer — the host/guest boundary trace, drained off-thread.
TopicWhat it covers
gr — refresh a viewrefreshable-view-mode: gives a generated view the shared gr refresh chord; each view declares which of its own actions gr should run.
Tab — fold a blockfoldable-view-mode: gives a grouped view the shared / fold chords; each view declares which of its own actions should run.
Listing presentationdirectory-listing-mode: the shared presentation minor for directory listings — icons, alignment and styling for oil and the file tree alike.