Keyboard shortcuts
Build emails entirely from the keyboard — every common action has a shortcut.
The editor is built keyboard-first. Most things you do with the mouse — selecting, moving, duplicating, inserting blocks — have a shortcut. On Mac, the modifier is ⌘ (Cmd); on Windows/Linux, it's Ctrl. Both are shown below.
Selection and navigation
| Action | Mac | Windows / Linux |
|---|---|---|
| Select previous sibling at same level | ↑ | ↑ |
| Select next sibling | ↓ | ↓ |
| Select parent (zoom out) | ⌘⇧↑ | Ctrl+Shift+↑ |
| Select first child (zoom in) | ⌘⇧↓ | Ctrl+Shift+↓ |
| Deselect / close any open menu | Esc | Esc |
Arrow-up/down jump across sibling types within a column (text → image → button → …), and across sections at the body level. Combined with ⌘⇧↑/↓ to traverse the tree, you never have to click to navigate.
Edit history
| Action | Mac | Windows / Linux |
|---|---|---|
| Undo | ⌘Z | Ctrl+Z |
| Redo | ⌘⇧Z | Ctrl+Y |
Element actions (something selected)
| Action | Mac | Windows / Linux |
|---|---|---|
| Copy | ⌘C | Ctrl+C |
| Cut | ⌘X | Ctrl+X |
| Paste | ⌘V | Ctrl+V |
| Duplicate | ⌘D | Ctrl+D |
| Delete | ⌫ Backspace | Backspace / Delete |
| Move up | ⌘↑ | Ctrl+↑ |
| Move down | ⌘↓ | Ctrl+↓ |
| Add new section below | ⌘A | Ctrl+A |
| Save selected section as module | ⌘⇧M | Ctrl+Shift+M |
| Comment on selected element | ⌘⇧/ | Ctrl+Shift+/ |
| Primary action (open chip picker on empty section/column, media library on image) | ↵ Enter | Enter |
⌘⇧M pairs with ⌘M: in the empty-section menu, ⌘M inserts a saved module; with a section selected, ⌘⇧M saves the section as a new module. The two are mirror images.
⌘⇧/ mirrors the universal "toggle comment" shortcut in code editors — but here it opens the Comments drawer scoped to the element you have selected.
⌘A is overloaded: with something selected it adds a new empty section below; with nothing selected and the body empty, it inserts the first section. (It does not "select all" — the editor never selects everything by accident.)
Inserting content (empty-section / empty-column menu open)
When you click an empty section or column, a 4-column chip picker opens. While it's open, press the modifier (⌘ on Mac, Ctrl on Windows) plus a single letter to pick a chip without leaving the keyboard:
| Chip | Shortcut |
|---|---|
| Paragraph | ⌘P |
| Image | ⌘G (Graphic) |
| Button | ⌘B |
| Bulleted list | ⌘L |
| Numbered list | ⌘O (Ordered) |
| Social icons | ⌘S |
| Table | ⌘E (tablE — ⌘T is browser new tab) |
| Divider | ⌘D |
| Spacer | ⌘V (Vertical space) |
| Saved module picker | ⌘M |
| Heading 1 | ⌘1 |
| Heading 2 | ⌘2 |
| Heading 3 | ⌘3 |
| Heading 4 | ⌘4 |
| Heading 5 | ⌘5 |
| Heading 6 | ⌘6 |
Why these letters? Most match the chip name (P, B, S, D…). The ones that don't are because the browser reserves the obvious letter:
- ⌘O for Numbered list —
⌘Nopens a new browser window. - ⌘E for Table —
⌘Topens a new browser tab. - ⌘G for Image —
⌘Iopens browser info; G = Graphic. - ⌘V for Spacer —
⌘Sis taken by Social,⌘Pby Paragraph; V = Vertical space.
Saved module picker (⌘M)
⌘M (Mac) / Ctrl+M (Win) opens a typeahead over your saved modules. From there:
| Action | Key |
|---|---|
| Type to filter | letters |
| Move highlight up / down | ↑ / ↓ |
| Insert highlighted module | ↵ Enter |
| Back to chip menu | Esc |
See Saved modules for the full picker behaviour.
Inline text editing
When you've entered an <mj-text> block and the cursor is in the text, browser-native formatting shortcuts work:
| Action | Mac | Windows / Linux |
|---|---|---|
| Bold | ⌘B | Ctrl+B |
| Italic | ⌘I | Ctrl+I |
| Underline | ⌘U | Ctrl+U |
These are also available from the floating format toolbar — use whichever is faster.
Code mode
When you switch to Code mode, the editor automatically formats the MJML. Most CodeMirror shortcuts apply:
| Action | Mac | Windows / Linux |
|---|---|---|
| Comment / uncomment selection | ⌘/ | Ctrl+/ |
| Find | ⌘F | Ctrl+F |
| Find and replace | ⌘⇧F | Ctrl+Shift+F |
| Go to line | ⌘G | Ctrl+G |
| Indent / outdent | Tab / Shift+Tab | Tab / Shift+Tab |
| Move line up / down | Alt+↑ / Alt+↓ | Alt+↑ / Alt+↓ |
Standard typing, selection, and clipboard shortcuts (⌘C / ⌘V / ⌘Z) work as in any text editor.
Reserved by your browser
These shortcuts are intercepted by the browser before the editor sees them, so we don't bind them:
⌘N/Ctrl+N— new browser window⌘T/Ctrl+T— new browser tab⌘W/Ctrl+W— close tab⌘R/Ctrl+R— reload page
If you find yourself reaching for one of these and getting a browser action, look at the chip-picker table above for the editor's equivalent.
Discoverability
You don't need to memorise these. The empty-section chip picker shows the letter shortcut on each chip in the corner. Right-click context menus on sections also show the shortcut next to each action.