Skip to content

Keybindings and editor modes

The client uses one keybinding vocabulary across two engines:

  • a keymap that dispatches application actions (navigation, buffers, panes, save, pickers, and so on); and
  • a modal canvas editor that handles text editing inside form fields and script panes.

Both are configured from the same [keybindings] tables in config.toml, so you never have to know which engine owns an action.

Keybindings are grouped into modes. A bare array under [keybindings] is a global binding, active everywhere:

Mode Context
[keybindings] (global) Active everywhere
[keybindings.general] Page navigation
[keybindings.common] Shared actions such as save
[keybindings.command] The : command line
[keybindings.picker] The picker overlay
[keybindings.nor] The editor’s normal mode
[keybindings.ins] The editor’s insert mode
[keybindings.sel] The editor’s selection mode

An unknown mode table is rejected at startup, so a typo fails fast instead of silently dropping bindings. An unknown action name is dropped with a notice rather than crashing.

Bindings are written as one or more chords. Modifiers come first, followed by the key, separated by +:

[keybindings]
save = ["ctrl+s"]
go_to_definition = ["g+d"]
next_buffer = ["space+b+n"]
  • modifiers: ctrl, shift, alt;
  • named keys: Up, Down, Left, Right, Enter, Tab, BackTab, Backspace, Esc, Home, End, Space;
  • multi-chord sequences are separated by spaces (g d, space b n).

The client’s application actions are:

Area Action names
Navigation nav_up, nav_down, nav_left, nav_right, move_next, move_previous, select, exit
Save / quit save, save_and_quit, quit, force_quit, revert
Entries previous_entry, next_entry, save_and_next_entry, revert_and_previous_entry, delete_entry, archive_entry, go_to_definition
Overlays enter_command_mode, command_backspace, command_autocomplete, command_autocomplete_previous, picker_toggle, picker_toggle_current, keybindings_picker, find_file_palette_toggle, print
Buffers next_buffer, previous_buffer, close_buffer
Panes split_vertical, split_horizontal, close_pane, focus_next_pane, focus_prev_pane
Sidebar / buffer list toggle_sidebar, toggle_buffer_list

The modal editor also contributes its own action names (undo, redo, yank_selection, paste_after, operator_delete, and many more); those are covered in Editor modes and presets. Macro names from macros.toml can be bound in the same tables.

Beyond the shipped config, the client keeps a built-in fallback layer (arrows, Enter, Esc, Tab, Shift+Tab, Backspace, and Helix-style prompt bindings) so the app stays usable even with an empty config.toml.

  • Press Space+? to open a searchable list of every bound action, its keys, modes, and whether it comes from the keymap or the editor.
  • While a multi-key sequence is in progress, the Keybinding menu shows the available next keys.