Hotkeys

The complete Esc-leader table, plus rationale.

SpiceEdit avoids Ctrl+ shortcuts on purpose. They fight tmux. They fight Zellij. They fight your terminal — Ctrl+S is XOFF flow control on a real serial line, and modern emulators still honor it. They fight remote sessions where keystrokes hop through three layers of software.

So Esc is the leader. Tap Esc, then within half a second tap a bound letter. A lone Esc with no follow-up is a no-op — your next keystroke reaches the editor as normal, so accidental Escs never swallow a real character.

The full table

ComboAction
Esc EscOpen ≡ menu
Esc sSave
Esc uUndo
Esc rRedo
Esc wClose tab
Esc qQuit
Esc nNew file
Esc tToggle sidebar
Esc fFind in file
Esc pFind file in project

Editor keys (no Esc needed)

Standard movement and editing keys behave the way every editor since the Macintosh has trained you to expect:

KeyAction
Arrow keysMove the cursor.
Shift + arrowExtend the selection.
Home / EndJump to the line start / end.
PgUp / PgDnScroll a viewport.
Tab / Shift+TabIndent / dedent.
EnterNew line.
Backspace / DeleteRemove a character or selection.
Mouse dragSelect.
Double-clickSelect the word under the cursor.
Scroll wheelScroll the panel under the mouse.

Why not bind clipboard

c, x, and v are deliberately unbound. Your terminal’s Cmd+C / Cmd+V already covers that path; adding a third channel just creates confusion about which buffer holds what. Copy and Paste live in the action menu, where they belong.

Why not bind destructive ops

Rename, Delete, and Revert are deliberately unbound. They’re destructive enough that a confirm modal is the right gate, and the menu’s confirm flow makes the action a deliberate gesture instead of muscle memory.

Double-tap Esc

The leader window is 500 ms. Two Esc taps inside that window open the action menu. Outside it, each Esc is its own no-op leader prefix — there is no way to accidentally summon the menu by leaning on the key.

Edit this page on GitHub