Keybindings
Every binding that currently does something, and where it comes from.
Ctrl on Windows and Linux, Cmd on macOS. Anything not listed here does not
exist yet — this page is generated by reading the keymaps, not by aspiration.
Application
Ctrl+Shift+P |
Command palette |
Ctrl+P |
Go to file |
Ctrl+B |
Toggle sidebar |
Ctrl+J |
Toggle terminal |
Ctrl+K Ctrl+O |
Open folder |
Ctrl+W |
Close tab |
Ctrl+Tab / Ctrl+Shift+Tab |
Next / previous tab |
Ctrl+R |
Reload window |
Ctrl+K is a chord: it waits for a second key, and the status bar says so while
it waits. It expires after two seconds rather than silently swallowing whatever
you type next.
The terminal is Ctrl+J, not the Ctrl+ backtick most editors default to.
Backtick is a plain key on a US layout and something else nearly everywhere
else: a dead key on French and several other European layouts, AltGr on AZERTY.
A default that costs one keypress for some people and three for others is not
much of a default. Ctrl+J is what VS Code binds its panel to anyway, so it is
still muscle memory, and it costs the same on every layout.
Editing
Ctrl+S |
Save |
Ctrl+Z |
Undo |
Ctrl+Y, Ctrl+Shift+Z |
Redo |
Ctrl+U |
Undo selection change |
Tab |
Indent |
Undo history is per file and survives switching tabs. That sounds like it should go without saying; it did not, for a while.
Find
Ctrl+F |
Open the search panel |
Ctrl+G, F3 |
Find next |
Ctrl+Shift+G, Shift+F3 |
Find previous |
Escape |
Close the search panel |
Ctrl+D |
Select next occurrence |
Ctrl+Shift+L |
Select all occurrences of the selection |
Ctrl+Alt+G |
Go to line |
Find is CodeMirror’s, themed to match. There is no project-wide search: half a project search answers questions wrongly rather than not at all, so there is none until there is a real one.
Where these come from
The application bindings live in the keydown handler in App.tsx and are
mirrored in the command palette, which is the discoverable copy. The editing and
find bindings come from @codemirror/commands and @codemirror/search
unchanged — inheriting the muscle memory every other editor already trained is
free, and fighting it is a cost with no upside.
There is no user-facing keybinding customisation yet.