Keyboard Shortcuts

Leed’s shortcuts belong to the page body. They are the editor’s keymap, not the application’s: they fire when your cursor is inside the text you are writing, and nowhere else. Clicking into the title field, the right rail, a settings screen or the rail itself takes you out of their reach — with one exception, covered at the end.

To see the list without leaving the page, put your cursor in the body and press Cmd + Shift + ? on a Mac, Ctrl + Shift + ? elsewhere — or just F1, which is bound to the same dialog and needs no modifiers.

Throughout the product, and throughout this page, Mod is the platform’s own command key.

Mod is Ctrl. A shortcut written Mod-Shift-8 means Ctrl + Shift + 8, and the in-app dialog renders it as Ctrl+Shift+8 — words, with + between them.

The Keyboard shortcuts dialog, two columns of grouped shortcuts with key chips
Captured on macOS. On Windows and Linux the same rows read Ctrl + Shift + …, with a + between each key.

The dialog lays the same five groups out in two columns — Editor, Formatting and Blocks on the left, Lists and Navigation on the right. The sections below follow that order so the page and the app agree.

Editor

ActionmacOSWindows & LinuxNotes
Undo⌘ZCtrl+ZUndo is collaboration-aware: it undoes your own edits, not a colleague’s
Redo⌘⇧ZCtrl+Shift+ZCtrl+Y also redoes on Windows and Linux — see below
Show page statistics⌘⇧SCtrl+Shift+SWord count, reading time and the rest, for the page you are in
Show keyboard shortcuts⌘⇧?Ctrl+Shift+?Needs Shift plus / on most layouts
Show keyboard shortcutsF1F1The same dialog, no modifiers. The app lists it as its own row

Formatting

ActionmacOSWindows & LinuxNotes
Bold⌘BCtrl+B
Italic⌘ICtrl+I
Strikethrough⌘;Ctrl+;
Code⌘`Ctrl+`⌘' / Ctrl+' also works, and is what the toolbar tooltip advertises
Highlight⌘⇧HCtrl+Shift+HHighlights carry no color — every mark renders the same on your site
Keystroke⌘⇧KCtrl+Shift+KRenders a key chip, like the ones on this page
Superscript⌘.Ctrl+.
Subscript⌘,Ctrl+,

Blocks

ActionmacOSWindows & LinuxNotes
Blockquote⌘⇧>Ctrl+Shift+>
Insert hard break⌘↵Ctrl+EnterShift + Enter does the same thing
Paragraph⌘⇧0Ctrl+Shift+0Turns the current block back into ordinary body text
Code block⌘⇧{Ctrl+Shift+{
Heading 2⌘⇧2Ctrl+Shift+2
Heading 3⌘⇧3Ctrl+Shift+3
Heading 4⌘⇧4Ctrl+Shift+4
Heading 5⌘⇧5Ctrl+Shift+5
Heading 6⌘⇧6Ctrl+Shift+6
Horizontal rule⌘⇧_Ctrl+Shift+_

Lists

ActionmacOSWindows & LinuxNotes
Task list⌘⇧7Ctrl+Shift+7Converts the list at the cursor rather than nesting a new one; press it again on a task list to un-list
Bullet list⌘⇧8Ctrl+Shift+8Same conversion behavior
Ordered list⌘⇧9Ctrl+Shift+9Same conversion behavior
Indent list item / Next table cell⇥TabMoves to the next table cell — see the note below
Outdent list item / Previous table cell⇧⇥Shift+TabMoves to the previous table cell — see the note below

These four are the least self-explanatory in the dialog, so here is what each is actually for.

ActionmacOSWindows & LinuxNotes
Join with previous block⌥↑Alt+↑Merges the current block into the one above — the fast way to undo an accidental split
Join with next block⌥↓Alt+↓The same, downwards
Lift out of container⌘[Ctrl+[Pulls the current block out of whatever wraps it: a blockquote, a list, an alert. The dialog labels this key Bracketleft
Select parent node⎋EscSelects the whole block you are inside, then its parent, and so on outwards — useful before deleting or moving a nested block

Four shortcuts the dialog does not list

All four are bound and all four work. They are simply missing from the in-app list, which is a gap in the product rather than in these docs.

ActionmacOSWindows & LinuxWhere it works
Open the AI drafting widget⌘JCtrl+JPage body
Open the link dialog⌘KCtrl+KPage body
Insert a hard break⇧↵Shift+EnterPage body — the same command as ⌘↵
Redo—Ctrl+YPage body, Windows and Linux only. Not bound on macOS

Outside the editor

One shortcut lives somewhere else. On the Settings home screen, Cmd / Ctrl + K focuses the card search box, so you can jump from anywhere in Settings to the card you want by typing its name.

When a shortcut does nothing

Three reasons, in the order they are likely.

Your cursor is not in the page body. This is nearly always it. Every shortcut on this page except the settings search is registered inside the editor, so it only fires when the editor has focus. Click into the body text and try again.

The page is read-only. A page you are viewing rather than editing — because it is published and locked, because someone else holds the edit lock, or because you have switched into Viewing mode — will not take a cursor in the body, so nothing types and no shortcut fires. Autosave, collaboration and locking explains the publish lock, and suggesting mode and tracked changes covers Viewing mode.

You are looking for a button that a page-type setting hides. A posts-type page type can switch formatting features off, which removes their toolbar buttons. Note what that does and does not do: it hides the control, it does not unbind the key. Of everything in the dialog, only Code block corresponds to one of those switchable features, and pressing ⌘⇧{ still inserts a code block on a page type where the toolbar button has been removed. What each page type lets you format has the nine switches and where each one bites — and note that documentation and api page types are not gated at all, so a docs author hunting for a switch that turned something off will not find one.

Every shortcut here has a toolbar button behind it, and the editor toolbar reference pairs each control with the Leed Markdown it produces — the fastest way to work out which shortcut you actually wanted.

ESC