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.
Key syntax
Section titled “Key syntax”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).
Bindable actions
Section titled “Bindable actions”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.
Built-in fallback
Section titled “Built-in fallback”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.
Discovering bindings
Section titled “Discovering bindings”- 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.