Keybindings
This page lists the current CRIEW TUI keys by page and modal state. Use it for operator reference, training material, and future screenshots or annotated UI guides.
Scope
- Key behavior is state-dependent. The same key can mean page toggle, completion, or indentation depending on the active modal surface.
ui.keymapaffects only the main page navigation layer. Reply editing, config editing, search, and the inline code editor keep their own fixed bindings.- The current source of truth is the TUI input handler in
src/ui/tui/input.rs.
Main pages
Suggested image slot
- Suggested file:
images/keybindings-main-pages.png - Suggested capture: Mail page and code-browser page with the header keymap label visible.
Shared page keys
:: Open the command palette. This is the preferred entry key.F1: Toggle the command palette open or closed.Ctrl+backtick: Toggle the command palette. CRIEW also accepts several terminal-specific encodings of the same shortcut.Tab: Toggle between the Mail page and the Code Browser page. This fails when no kernel tree is configured.Enter: Act on the current selection. On the Mail page it opens the selected mailbox or thread. On the Code Browser tree it expands, collapses, or selects the current row.Esc: Show the reminder to use the command palette.q: Does not exit from the main page. CRIEW tells you to use the command palette instead.Ctrl+C: Does not exit from the main page. CRIEW tells you to use the command palette instead.
Main navigation by ui.keymap
ui.keymap = "default":jandlmove focus between panes.iandkmove inside the focused pane.count+iandcount+krepeat vertical movement.ui.keymap = "vim":handlmove focus between panes.jandkmove inside the focused pane.count+jandcount+krepeat vertical movement.ggjumps to the top of the active pane.Gjumps to the bottom.qqexits quickly.ui.keymap = "custom": The header showscustom, but navigation still follows thedefaultlayout today.
The same navigation layer is reused on both top-level pages:
- Mail page:
focus moves between
Subscriptions,Threads, andPreview. - Code Browser page:
focus moves between
TreeandSource.
Mail page
Suggested image slot
- Suggested file:
images/keybindings-mail-page.png - Suggested capture: Three-pane mail layout with one subscription selected, one thread selected, and preview content visible.
Mail workflow keys
/: Open thread search. Search is available only on the Mail page.y: Enable the selected subscription. Works only whenSubscriptionshas focus.n: Disable the selected subscription. Works only whenSubscriptionshas focus.EnteronSubscriptions: Open the selected mailbox.EnteronThreads: Select the current thread and move focus toPreview.-: Select the previous thread whilePreviewkeeps focus.=or+: Select the next thread whilePreviewkeeps focus.e: Open the reply panel whenPreviewhas focus.r: Open the reply panel from anywhere on the Mail page.[: Expand the focused mail pane to the left.]: Expand the focused mail pane to the right.{: Shrink the focused mail pane toward the left.}: Shrink the focused mail pane toward the right. Pane widths are persisted inui-state.toml.a: Apply the selected patch series. Works only whenThreadshas focus.d: Download or export the selected patch series. Works only whenThreadshas focus.u: Undo the last patch apply action. Works only whenThreadshas focus.
Code Browser page
Suggested image slot
- Suggested file:
images/keybindings-code-browser.png - Suggested capture: Tree pane on the left, source preview on the right, with one real source file selected.
Code browser keys
- Main page navigation keys still apply here.
They move between the tree and source panes,
scroll source preview,
and support count prefixes or
ggandGwhenui.keymap = "vim". Enteron the tree pane: Expand or collapse directories. On files, keep the file selected and reset source scroll.eon the source pane: Enter the inline code editor.Eon the source pane: Open the selected file in externalvim.
Command palette
Suggested image slot
- Suggested file:
images/keybindings-command-palette.png - Suggested capture: Palette open with completion suggestions visible.
Input keys
Esc: Close the palette.Enter: Run the current command.Backspace: Delete one character.Tab: Apply completion. A secondTabcan expand or show the current completion set.F1orCtrl+backtick: Toggle the palette closed again.
Built-in commands
quitorexit: Exit CRIEW.restart: Restart the TUI with current startup config.help: Show the built-in command summary.sync: Sync all enabled mailboxes, or the current default mailbox when nothing is enabled.sync <mailbox>: Sync one mailbox immediately.config show: Open the visual config editor.config show <key>: Show the file value or effective runtime fallback for one key.config get <key>: Read one config key.config edit [key]: Open the config editor, optionally focused on one supported field.config set <key> <value>: Write a TOML value into the config file and reload runtime config.config help: Show config command usage.vim: Open the selected source file in externalvim.!<shell command>: Run a local shell command. CRIEW uses the configured kernel tree as the working directory when one is available, otherwise it falls back toHOME.
Search
Suggested image slot
- Suggested file:
images/keybindings-search.png - Suggested capture: Mail page with the search input active and filtered thread results visible.
Search keys
/: Open search on the Mail page.Enter: Apply the current query.Backspace: Delete one character.Esc: Cancel search without applying the current edit.- Any printable character: Append to the current query.
Config editor
Suggested image slot
- Suggested file:
images/keybindings-config-editor.png - Suggested capture: Left-side key list, right-side field details, and one field selected.
Browse mode
Upori: Move to the previous editable field.Downork: Move to the next editable field.Enterore: Start editing the selected field.Tab: Cycle through preset values for the selected field.x: Unset the selected key from the config file.Esc: Close the config editor.
Edit mode
- Any printable character: Append to the current TOML literal.
Backspace: Delete one character.Tab: Cycle preset values for the selected field.Enter: Save the current value.Esc: Cancel the edit and return to browse mode.
Reply panel
Suggested image slot
- Suggested file:
images/keybindings-reply-panel.png - Suggested capture: Reply panel with editable headers and the body guide line visible.
Normal mode
h: Move the cursor left.l: Move the cursor right.jorDown: Move to the next header field or the next body line.korUp: Move to the previous header field or the previous body line.i: Enter insert mode.Enteroro: Open a line below and enter insert mode.x: Delete the character under the cursor.p: Open Send Preview.s: Attempt to send. CRIEW still requires a confirmed Send Preview before it will actually send.:: Enter reply command mode.Esc: Close the reply panel when the draft is clean. If the draft is dirty, CRIEW tells you to use:q!to discard it.
Insert mode
- Any printable character: Insert at the cursor.
Backspace: Delete backward.Enter: Insert a newline.Tab: Insert four spaces.Esc: Return to reply normal mode.
Command mode
- Any printable character: Append to the command line.
Backspace: Delete one character.Enter: Run the current command.Esc: Cancel command mode.
Supported reply commands are:
:qClose the reply panel only when the draft is clean.:q!Discard the reply draft.:previewOpen Send Preview.:sendAttempt to send the reply.
Send Preview and reply notices
Suggested image slot
- Suggested file:
images/keybindings-send-preview.png - Suggested capture: Send Preview dialog with warning or confirmation text visible.
Send Preview keys
Enterorc: Confirm the current preview.s: Attempt to send. If preview confirmation is still missing, CRIEW opens a blocked-send notice instead.jorDown: Scroll preview down.korUp: Scroll preview up.Esc: Close Send Preview and return to the reply editor.
Reply notice keys
EscorEnter: Close the current notice.p: Reopen Send Preview when the notice asks for preview confirmation first.s: Send when the notice says preview confirmation already succeeded.
Inline code editor
Suggested image slot
- Suggested file:
images/keybindings-inline-code-editor.png - Suggested capture: Source pane in inline edit mode with cursor and command hint visible.
Entry conditions
- Start from the Code Browser page.
- Move focus to the
Sourcepane. - Press
efor inline editing orEfor externalvim.
Normal mode
h: Move cursor left.j: Move cursor down.k: Move cursor up.l: Move cursor right.i: Enter insert mode.x: Delete the character under the cursor.s: Save the current buffer.E: Open externalvim.:: Enter command mode.Esc: Exit edit mode only when the buffer is clean. If there are unsaved changes, CRIEW tells you to use:w,:wq, or:q!.
Insert mode
- Any printable character: Insert at the cursor.
Backspace: Delete backward or join with the previous line.Enter: Insert a newline.Tab: Insert four spaces.Esc: Return to normal mode.
Command mode
- Any printable character: Append to the command line.
Backspace: Delete one character.Enter: Run the current command.Esc: Cancel command mode.
Supported inline editor commands are:
:wSave the current file.:qExit only when the buffer is clean.:q!Discard unsaved changes and exit inline edit mode.:wqSave and exit.:vimOpen the same file in externalvim.