History
Fuzzy history search, and whether each pane gets its own.
Fuzzy search with ⌃ R
⌃ R opens a fuzzy search over what you have actually run. Type any fragment — the letters do not have to be adjacent — and the list narrows.
Each row carries context the plain shell version throws away:
- when you last ran it, as a relative time
- whether it failed, from the exit code
A command appears once, however many times you have run it — repeats collapse into their most recent occurrence. Ranking mixes frequency with recency, and commands you ran in the current directory are pushed up, so the thing you want is usually the thing you last did here.
⏎ puts the command on the prompt. ⌘ ⏎ puts it there and runs it. Esc closes without touching it.
Handing ⌃ R back
If you already have an fzf, percol, atuin or McFly binding you like, turn off
Settings → Input → Prompt → History search (history_search: false).
⌃ R then goes to the shell, and whatever you bound there keeps
working.
That releases ⌃ R and nothing else — ↑ still walks Nermal's
own history list. To give the shell the whole prompt, including ↑ and
whatever widget you bound to it, turn off
the prompt editor
(prompt_editor: false).
Where the history comes from
Your existing shell history file, as-is. Nothing is imported or converted, and a history written outside Nermalshows up immediately.
The per-row extras — when you last ran it, whether it failed — come from a small file Nermalkeeps alongside it, filled in as you run things. A command Nermalhas never seen still appears; it just arrives without a timestamp or an exit code.
One history, or one per pane
By default every pane shares your shell's history file, which is what a terminal has always done: a command typed in one pane is available in the next.
Settings → Input → Prompt → Give each pane its own shell history
(per_pane_history: true) changes that. Each pane gets a private history file:
- seeded from your real history when the pane opens, so it is not blank
- merged back into your real history when the pane closes, so nothing typed is lost
Useful when several agents or several tasks are running side by side and you do not want their commands interleaved in your ↑ key. Off by default, because someone who has not asked for it would experience the change as their history mysteriously forgetting the other window.