Keybindings
The shortcuts you can rebind, how rebinding works, and the substantial list of shortcuts that work but don't appear in this tab.
Two lists — Editor and Agentic Chat — showing the app's shortcuts and letting you change most of them.
Rebinding#
Click the shortcut, then press the new keys. The pill reads Press keys… while it's listening,
and every keystroke is captured rather than acted on, so you can't accidentally trigger something
mid-rebind.
Escape cancels, and so does clicking anywhere else.
Your combination must include Ctrl (or Cmd) or Alt. A bare letter or function key is
rejected and the pill keeps waiting — these are global bindings, and a bare key would hijack typing
everywhere.
If the combination is already used by another shortcut in this tab, nothing is saved and the row
tells you which one has it: Already used by "Toggle terminal". If it's a combination your browser
or OS normally owns — Ctrl+W, Ctrl+R, Ctrl+Q and friends — you get an amber warning but the
binding is saved. That's a judgement call left to you.
A small ⟲ appears next to any shortcut you've changed, to put it back. There's no reset-all.
Note
Keybindings are stored per project. Rebind something here and other projects keep the defaults.
What you can rebind#
Everything in this group is driven by this tab, and takes effect immediately.
| Shortcut | Does |
|---|---|
Ctrl+J |
Show/hide the terminal |
Ctrl+B |
Show/hide the side panels |
Ctrl+Shift+A |
Show/hide the agent panel (does nothing in runs mode) |
Ctrl+Shift+F |
Open Search and focus it |
Ctrl+, |
Open/close Settings |
Ctrl+Shift+E |
Open/close Extensions |
Ctrl+Shift+G |
Show/hide the gizmo |
Ctrl+T |
New chat |
Ctrl+Tab / Ctrl+Shift+Tab |
Next / previous chat tab |
Ctrl+Shift+→ / Ctrl+Shift+← |
Next / previous chat tab (second binding) |
Ctrl+Shift+↓ / Ctrl+Shift+↑ |
Minimise / restore all run cards |
What you can't#
These appear in the tab greyed out. They work; they just can't be changed.
| Shortcut | Does |
|---|---|
Ctrl+S |
Save the open file |
Enter |
Send the chat message (Shift+Enter for a newline) |
Escape |
Stop the agent |
F2 |
Rename the focused item in the explorer |
Delete |
Delete the selected explorer items |
Enter |
Open the focused file or folder in the explorer |
Ctrl+1–9 |
Jump to chat tab N (9 is always the last) |
Ctrl+←/→/↑/↓ |
Snap the active floating window |
Ctrl + / - |
Zoom the interface and editor fonts together |
Space Space |
Collapse/expand the runs-mode command bar |
Shortcuts that aren't in this tab at all#
This is the part worth reading, because the tab looks like a complete list and isn't. All of these work, none of them appear there, and none can be rebound.
(Enter and Escape do appear in the tab — but only for sending, opening a file, and stopping
the agent. The other jobs they do below are listed nowhere.)
In the editor
| Shortcut | Does |
|---|---|
F12 |
Go to definition |
Ctrl+F |
Find in this file |
Ctrl+G / Shift+Ctrl+G, F3 / Shift+F3 |
Find next / previous |
Ctrl+Z / Ctrl+Y |
Undo / redo (Ctrl+Shift+Z also redoes on Linux, ⌘⇧Z on macOS) |
Ctrl+/ |
Toggle comment |
Ctrl+D |
Select the next occurrence |
Ctrl+Shift+L |
Select all matches |
Alt+↑ / Alt+↓ |
Move the line up / down |
Shift+Alt+↑ / Shift+Alt+↓ |
Copy the line up / down |
Ctrl+Alt+↑ / Ctrl+Alt+↓ |
Add a cursor above / below |
Ctrl+Shift+K |
Delete the line |
Ctrl+[ / Ctrl+] |
Outdent / indent |
Ctrl+Alt+G |
Go to line |
Tab |
Expand an Emmet abbreviation, or indent |
In the explorer — Ctrl+C, Ctrl+X, Ctrl+V copy, cut and paste files and folders.
Over the 3D view — Ctrl+F opens the graph search card and flies the camera to what you pick.
In the chat composer (desktop app only) — Ctrl+Z undo, Ctrl+Shift+Z or Ctrl+Y redo,
Ctrl+Shift+←/→ extends the selection by a word, Ctrl+Shift+↑/↓ by a line.
In the theme editor — Ctrl+G groups the selected windows, Ctrl+U ungroups, holding Alt
peeks with the element sampler, Escape leaves.
Everywhere — Escape closes menus, dropdowns, dialogs, the image viewer and the project picker;
↑ ↓ Enter Escape drive the search panel and inline rename fields.
Important
The conflict check only knows about the shortcuts in this tab. You can rebind something onto
F12, Ctrl+F or Ctrl+Z with no warning at all, and then have two things happen at once.
Check this list before choosing.
Some shipped defaults already overlap, without you doing anything: in a code editor or the
chat box, Ctrl+Shift+←/→ extends the selection by a word and switches chat tab; in the chat
box Ctrl+Shift+↑/↓ extends the selection and minimises or restores the run cards; and in the
editor Ctrl+Shift+G finds the previous match and toggles the gizmo. None of that is flagged
anywhere.
Things that will look like bugs#
Ctrl+O does nothing. The Projects menu shows Open Project with Ctrl+O next to it, but
there's no shortcut behind it. Use the menu item.
The menus don't follow your rebinds. Shortcut labels in the menu bar are fixed text. Rebind
Toggle Explorer to something else and the View menu still says Ctrl+B forever.
On Linux, the Super key also triggers everything. Every Ctrl+… shortcut here answers to
Super+… as well. If a shortcut fires when you meant to do something with your window manager,
that's why.
The terminal eats almost every Ctrl shortcut. Ctrl+J is the only combination it hands back
to the app — so that the toggle keeps working while you're in it, at the cost of never being able to
send a literal Ctrl+J to a program running there. Everything else that maps to a control character
— Ctrl+B, Ctrl+T, Ctrl+S — belongs to the terminal while it has focus and never reaches
Semantix, rebound or not.
Note
Ctrl+Tab and Ctrl+1–9 are taken by the browser when Studio runs in a browser tab. They only
reach the app in the desktop build.