Keyboard shortcuts

Most interactive widgets on this site can be operated entirely from the keyboard. This page lists every custom keyboard shortcut. Standard browser shortcuts (Tab to move focus, Enter to activate buttons and links, Space to toggle controls, etc.) are not repeated here.

On macOS, use Cmd wherever you see Ctrl. Both modifiers work everywhere.

Tutorials & SEBook

Shortcuts for tutorial pages and SEBook navigation.
KeysAction
Ctrl+P Open the print-friendly view of the current tutorial.
Ctrl+M In the code editor, toggle whether Tab inserts a tab character or moves keyboard focus to the next control.
Shift+Tab Move focus out of an embedded terminal and back to the previous page control.
/ In the SEBook language toggle, move between languages.
Home/End In the SEBook language toggle, jump to the first or last language.
Enter/Space On the SEBook sidebar toggle button, open or close the sidebar.
Esc Close an open SEBook sidebar section.

Step-through debugger

Used in Python, Node, and Java tutorials. The debugger panel must be focused for these to take effect.

Step controls in the inline debugger.
KeysAction
F5 Continue execution to the next breakpoint or until the program ends.
Shift+F5 Stop the debugger.
Alt+Shift+F5 Run backwards to the previous breakpoint.
F10 Step over the next line.
Shift+F10 Step backwards over the previous line.
Alt+Shift+F10 Step backwards out of the current function.
F11 Step into the next function call.
Shift+F11 Step out of the current function (or step backwards on return).
Enter Confirm a value entered in a watch or breakpoint input field.
Esc Cancel and close the active input field without saving.

Command labs (filesystem, git)

Shortcuts for the filesystem and git command labs.
KeysAction
Esc Close the lab modal and return to the tutorial.

Embedded tutorial terminal

The Python tutorials embed a small in-browser terminal under the editor for git, filesystem, and python commands. The terminal must be focused for these to take effect. macOS users can use Option wherever you see Alt. Ctrl+W and Ctrl+T are claimed by the browser on Linux and Windows (close tab / new tab) — use the Alt alternatives there.

Line editing and history shortcuts in the embedded terminal.
KeysAction
/ Move the cursor one character left or right.
/ Step backwards or forwards through the command history.
Home/End Jump the cursor to the start or end of the line.
Tab Complete the current command, git subcommand, or path. Press twice to list every candidate.
Backspace/Delete Delete one character before or after the cursor.
Alt+/ Jump the cursor one word left or right. Ctrl+/ behaves the same.
Alt+Backspace Delete the word before the cursor. Ctrl+W does the same.
Alt+Delete Delete the word after the cursor. Alt+D does the same.
Cmd+/ macOS only. Jump the cursor to the start or end of the line.
Cmd+Backspace macOS only. Delete from the cursor back to the start of the line.
Cmd+Delete macOS only. Delete from the cursor forward to the end of the line.
Ctrl+A/E Jump the cursor to the start (A) or end (E) of the line.
Ctrl+B/F Move the cursor one character backwards or forwards.
Ctrl+P/N Step backwards (P) or forwards (N) through the command history.
Ctrl+U Delete the entire line.
Ctrl+K Delete from the cursor to the end of the line.
Ctrl+Y Paste back the most recently killed text (from Ctrl+U, K, W, Alt+Backspace, or Alt+Delete).
Ctrl+T Swap the two characters around the cursor (transpose).
Alt+. Insert the last argument of the previous command. Press repeatedly to cycle further back through history. Alt+_ does the same.
Alt+U/L/C Convert the word at the cursor to UPPERCASE, lowercase, or Capitalised form.
!! Type at the prompt. Expands to the previous command before running. Use sudo !!-style retries.
!$ Type at the prompt. Expands to the last argument of the previous command. !^ uses the first argument; !* uses all arguments.
Ctrl+L Clear the screen and redraw the prompt with the current line.
Ctrl+C Discard the line being typed and start a fresh prompt.
Ctrl+V Paste from the system clipboard. macOS users can use Cmd+V. Granting clipboard read permission may be required the first time.

Refactoring engine

Shortcuts inside refactoring dialogs (Rename, Extract Method, etc.).
KeysAction
Enter Apply the refactoring with the values you entered.
Esc Cancel the refactoring and close the dialog without changes.

Tutor chat

Shortcuts inside the in-tutorial chat input.
KeysAction
Enter Send the current message.
Shift+Enter Insert a newline without sending.

UML & diagram viewers

Shortcuts for fullscreen UML and ArchUML diagrams.
KeysAction
Esc Close the fullscreen diagram view.
Ctrl+ scroll Zoom the diagram in or out.

UML visual editors

Shortcuts active inside the visual editor on /SEBook/tools/uml-playground and /SEBook/tools/uml-editor when Visual edit is checked.

Keyboard shortcuts for the UML visual editors.
KeysAction
Tab Move focus through the palette buttons, hitboxes (movable elements), and edit handles.
Enter or Space Activate the focused tool button, select the focused element, or, with a relation tool armed, mark the focused element as source / target.
Nudge the focused element by 10 px (or 1 px with Shift).
Delete or Backspace Delete the focused / selected element or relation (and remove all references to it from the source).
F2 Focus the “Identifier” field in the Properties side-panel for the selected element.
Esc Cancel the active tool, close the relation chooser popup, exit fullscreen mode, or deselect the current element.
F Toggle the playground’s full-screen mode.
? Show or hide the “Quick tips” banner at the top of the editor (the one that explains the palette, hover-to-connect, and double-click-to-rename interactions).
Cmd/Ctrl+Z Undo the last visual mutation (place, connect, rename, drag, group ops, props edits, deletes). Continuous bursts (a held arrow nudge, one drag) collapse into a single undo step.
Cmd/Ctrl+Shift+Z  or  Cmd/Ctrl+Y Redo the last undone mutation.
Cmd/Ctrl+ click Toggle the clicked element / relation in the multi-selection. Shift+click also adds.
Cmd/Ctrl+A Select every element and relation in the current diagram.
double-click Inline-edit the focused element label, relation label, or sequence-fragment condition without opening the Properties side-panel. Enter commits, Esc cancels.
drag empty canvas Pan the diagram canvas. The pan offset is reset on the next page load.
Cmd/Ctrl+ scroll-wheel Zoom the canvas in / out anchored on the cursor. Works with two-finger pinch on trackpads.
Cmd/Ctrl++ / Cmd/Ctrl+ Zoom in / zoom out (also via the toolbar group).
Cmd/Ctrl+0 Reset zoom and pan to 100% / origin (also via clicking the zoom percentage).
right-click Open the contextual menu for the element / relation / canvas (rename, duplicate, delete, new element here, select all, reset zoom).

Quizzes, flashcards & Parsons problems

Shortcuts for quizzes, SE Gym flashcards, and code-arrangement (Parsons) problems.
KeysAction
A/B/C... or 1/2/3... In a SE Gym workout quiz or tutorial quiz, select the matching visible answer option while the quiz has focus.
Enter/Return In a multiple-answer SE Gym workout quiz or tutorial quiz, submit the selected answers once the Submit Answer button is enabled; after feedback, move to the next question.
/Z In a SE Gym flashcard after revealing the answer, mark the card as "I got it right".
/X In a SE Gym flashcard after revealing the answer, mark the card as "I got it wrong".
1/2/3... In a SE Gym workout Parsons problem or tutorial Parsons problem, move the matching numbered line between the bank and the solution.
Enter/Return In a SE Gym workout Parsons problem or tutorial Parsons problem, check the order; after feedback, move to the next question.
Space In a SE Gym workout Parsons problem or tutorial Parsons problem, move the focused line between the bank and the solution.
Space/Enter/Return In a SEBook page Parsons problem, move the focused line between the bank and the solution.
/ In a SEBook page Parsons problem, reorder the focused line within the solution area.

Popout windows & modals

Shortcuts that work inside any popout, modal, or overlay.
KeysAction
Esc Close the popout, modal, or overlay and return focus to the trigger element.
Cmd/Ctrl+Z In the SE Gym hero customizer, undo the last avatar edit while the modal is open.
Cmd/Ctrl+Y In the SE Gym hero customizer, redo the last undone avatar edit while the modal is open.

Tooltips

Global tooltip controls.
KeysAction
Esc Hide all visible tooltips.

Conflicts with browser and operating system shortcuts

The shortcuts above are scoped to specific widgets — they only fire while the widget is focused. None of them override browser-wide shortcuts (such as Ctrl+T for a new tab or Ctrl+W for closing a tab) or operating system shortcuts. The debugger keys (F5, F10, F11) shadow the browser’s reload and devtools shortcuts; this only happens while the debugger panel has focus, so click outside the debugger if you need the browser’s default behaviour.

Reporting accessibility issues

If a shortcut on this page does not work, or if you encounter an interactive widget that cannot be operated by keyboard, please open an issue on GitHub.