Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Key Bindings

Key bindings in IntelliShell are a mix of high-level customizable actions and built-in standard controls. This approach provides flexibility for core actions while maintaining a consistent, hardcoded set of keys for navigation and text editing, many of which follow common terminal and Emacs-like conventions.

⚠️ Terminal Compatibility

Your ability to use certain key combinations depends entirely on your terminal emulator. Some terminals may capture specific hotkeys (like ctrl-space or ctrl-enter) for their own features and will not forward them to IntelliShell. This is particularly common on Windows with terminals like Cmder or older versions of Windows Terminal. If a key binding doesn't work, try a different combination or consult your terminal's documentation.

Customizable Actions

These are the primary actions you can configure in the [keybindings] section of your config.toml file. They handle the main functions of the TUI, like confirming a selection or deleting a command.

The format and a list of available actions are detailed below. Note that if a default binding for a customizable action (like ctrl-d for delete) conflicts with a standard control, the customizable action always takes precedence.

ActionDescriptionDefault Binding(s)
quitExits the TUI gracefully without making a selectionesc
updateEnters edit mode for the highlighted item (e.g., to edit a command)ctrl-u, ctrl-e, F2
deleteDeletes the currently highlighted item (e.g., a bookmarked command)ctrl-d
confirmConfirms a selection or moves to the next step (e.g., variable entry)tab, enter
executeExecutes the highlighted command instead of just selecting itctrl-enter, ctrl-r
search_modeCycles through the available search modes (auto, fuzzy, regex, etc.)ctrl-s
search_user_onlyToggles whether to filter user commands only in the search resultsctrl-o

Default Configuration

You can change these bindings by modifying the [keybindings] block in your configuration file.

# Configuration for the key bindings used to interact with the Terminal User Interface (TUI).
# Key bindings map an action within the application to one or more key press combinations.
#
# Each action can be bound to a single key event string or a list of key event strings.
# If a list is provided, pressing any of the listed combinations will trigger the action.
#
# Key event strings are parsed from a simple format:
# - Modifiers (optional, separated by `-` or `+`): `ctrl`, `shift`, `alt`
# - Followed by the key name or character
[keybindings]
# Exit the TUI gracefully
quit = "esc"
# Update the currently highlighted record or item (e.g., edit a command)
update = ["ctrl-u", "ctrl-e", "F2"]
# Delete the currently highlighted record or item
delete = "ctrl-d"
# Confirm a selection or action related to the highlighted record
confirm = ["tab", "enter"]
# Execute the action associated with the highlighted record or item (e.g., run a command)
execute = ["ctrl-enter", "ctrl-r"]
# Toggle the search mode
search_mode = "ctrl-s"
# Toggle whether to search for user commands only or include workspace and tldr's
search_user_only = "ctrl-o"

Standard Controls

These key bindings are not configurable and provide a standard way to navigate lists and edit text. They are always active unless overridden by a customizable action.

List & Tab Navigation

ActionKey(s)
Move selection upUp, ctrl-p
Move selection downDown, ctrl-n
Navigate to previous itemctrl-k
Navigate to next itemctrl-j

Text Cursor Movement

ActionKey(s)
Move to start of lineHome, ctrl-a
Move to end of lineEnd, ctrl-e
Move left one characterLeft, ctrl-b
Move right one characterRight, ctrl-f
Move left one wordalt-b, ctrl-Left
Move right one wordalt-f, ctrl-Right

Text Editing

ActionKey(s)
Delete char before cursorBackspace, ctrl-h
Delete word before cursorctrl-Backspace, ctrl-w
Delete char at cursorDelete, ctrl-d
Delete word at cursoralt-d, ctrl-Delete
Insert a newlineshift-Enter, alt-Enter, ctrl-m
Undoctrl-z, ctrl-u
Redoctrl-y, ctrl-r

With your keybindings configured, you can now personalize the application's appearance. Let's dive into Theming.