Markdown Shortcuts: The Complete Guide
When you write in Markdown, are you still manually typing every asterisk, hash, and bracket? Honestly, that was me for the first two years. Every time I needed bold text, I'd type four asterisks. Every link meant juggling between square brackets and parentheses. Then I stumbled onto Ctrl+B and it felt like discovering a cheat code.
This article breaks down everything about markdown shortcuts — not just a list of keybindings, but a real understanding of how they differ across editors and how to make them second nature.
What Are Markdown Shortcuts, Really?
Before we dive in, let's clear up a common confusion. "Markdown shortcuts" actually refer to two different things:
Editor keyboard shortcuts: These are key combinations you press inside an editor to trigger formatting. Select some text, press Ctrl+B, and the editor wraps it in ** for bold. These shortcuts are defined by the editor, so the bindings differ from one app to another.
Syntax triggers: These happen when you type Markdown symbols and the editor auto-completes or auto-formats. Type # followed by a space, and the editor recognizes it as a heading. This is tied to the editor's auto-completion system, not keyboard shortcuts.
Both speed up your writing, but they work differently. I'll cover both in detail.
Universal Markdown Formatting Shortcuts
Regardless of which editor you use, these keyboard shortcuts are the most widely supported. Most markdown editors (VS Code, Typora, Obsidian, and many others) support these basic operations [^1] [^2]:
| Action | Windows / Linux | macOS | Markdown Syntax |
|---|---|---|---|
| Bold | Ctrl + B | Cmd + B | **text** |
| Italic | Ctrl + I | Cmd + I | *text* |
| Insert link | Ctrl + K | Cmd + K | [text](url) |
| Undo | Ctrl + Z | Cmd + Z | — |
| Redo | Ctrl + Y | Cmd + Shift + Z | — |
These shortcuts are so universal that they even work in many online editors — GitHub comment boxes, CMS platforms, and web-based markdown editors. If you only want to memorize a few, start with Ctrl+B (bold), Ctrl+I (italic), and Ctrl+K (link). These three are the ones you'll use most often.
My own habit is to pair these shortcuts with text selection. When I'm writing a paragraph and want to emphasize a word, I double-click to select it, then hit Ctrl+B. One step, done. Way faster than typing ** on both sides manually.
Markdown Shortcuts in VS Code
VS Code is many developers' primary editor. Its native markdown shortcuts are decent, and you can extend them further with extensions [^3].
Native Shortcuts
VS Code has a few built-in markdown-related operations:
| Action | Windows / Linux | macOS |
|---|---|---|
| Open markdown preview | Ctrl + Shift + V | Cmd + Shift + V |
| Open preview to the side | Ctrl + K V | Cmd + K V |
| Change heading level | Ctrl + Shift + ] / [ | Cmd + Shift + ] / [ |
Worth noting: the difference between Ctrl + K V (side preview) and Ctrl + Shift + V (full preview). Side preview shows source code on the left and rendered output on the right, which is great for live editing. When I write markdown in VS Code, I almost exclusively use side preview — type a line, see the result immediately.
The heading level shortcuts are also handy. Place your cursor on a heading line, press Ctrl + Shift + ] to promote it (e.g., ## becomes #), or Ctrl + Shift + [ to demote it. Much faster than manually deleting or adding # characters.
Extension Enhancements
VS Code's native markdown shortcuts are somewhat limited. I recommend installing the "Markdown Shortcuts" extension by mdickin, which adds these keybindings [^4]:
| Action | Windows / Linux | macOS |
|---|---|---|
| Open command menu | Ctrl + M Ctrl + M | Cmd + M Cmd + M |
| Toggle bold | Ctrl + B | Cmd + B |
| Toggle italic | Ctrl + I | Cmd + I |
| Toggle strikethrough | Ctrl + Shift + S | Cmd + Shift + S |
| Toggle list | Ctrl + L | Cmd + L |
To be fair, VS Code isn't really designed as a markdown editor first — it's a code editor that supports markdown. But with the right extension, all the basic formatting shortcuts work fine.
Markdown Shortcuts in Typora
Typora has the most comfortable markdown shortcuts I've used. Since it's a WYSIWYG markdown editor, shortcuts trigger instantly and you see the rendered result right away — no separate preview pane needed [^5].
| Action | Windows / Linux | macOS |
|---|---|---|
| Bold | Ctrl + B | Cmd + B |
| Italic | Ctrl + I | Cmd + I |
| Strikethrough | Alt + Shift + 5 | Cmd + Shift + S |
| Heading 1 | Ctrl + 1 | Cmd + 1 |
| Heading 2 | Ctrl + 2 | Cmd + 2 |
| Heading 3 | Ctrl + 3 | Cmd + 3 |
| Increase heading level | Ctrl + = | Cmd + = |
| Decrease heading level | Ctrl + - | Cmd + - |
| Blockquote | Ctrl + Shift + Q | Cmd + Shift + Q |
| Ordered list | Ctrl + Shift + [ | Cmd + Shift + [ |
| Unordered list | Ctrl + Shift + ] | Cmd + Shift + ] |
| Inline code | Ctrl + Shift + `` | `Cmd + Shift + ` `` | |
| Code block | Ctrl + Shift + K | Cmd + Shift + K |
| Insert link | Ctrl + K | Cmd + K |
| Insert image | Ctrl + Shift + I | Cmd + Shift + I |
| Table | Ctrl + T | Cmd + T |
| Horizontal rule | Ctrl + Shift + - | Cmd + Shift + - |
Typora's heading shortcuts are brilliantly designed — number keys Ctrl + 1~6 map directly to heading levels 1 through 6. More intuitive than any other editor. And Ctrl + = / Ctrl + - lets you quickly bump headings up or down, which is incredibly useful when restructuring documents.
One time I was reorganizing a 200+ line technical document and needed to demote a bunch of level-3 headings to level 4. Doing that manually by deleting # characters would have been eye-straining. With Typora's Ctrl + -, I just moved through each line with arrow keys and tapped the shortcut. Done in a couple of minutes.
Markdown Shortcuts in Obsidian
Obsidian's shortcut system is a bit different from Typora's. It leans more heavily into "syntax trigger" style input, but the common formatting operations still have keyboard shortcuts [^2]:
| Action | Windows / Linux | macOS |
|---|---|---|
| Bold | Ctrl + B | Cmd + B |
| Italic | Ctrl + I | Cmd + I |
| Strikethrough | — | — |
| Insert link | Ctrl + K | Cmd + K |
| Inline code | Ctrl + `` | `Cmd + ` `` | |
| Unordered list | Ctrl + L (configurable) | Cmd + l (configurable) |
| Toggle preview/source | Ctrl + E | Cmd + E |
Obsidian doesn't have a default shortcut for strikethrough, but you can bind one in settings. That's actually one of Obsidian's strengths — its keyboard shortcuts are highly customizable.
By the way, Obsidian has some nice syntax trigger features. Type - followed by a space at the start of a line, and it auto-converts to a bullet list. Press Tab inside a list item to indent it as a sub-item. Type > with a space to create a blockquote. These aren't keyboard shortcuts per se, but they do save a lot of typing.
Syntax Triggers: Shortcuts Without Memorizing Keys
Beyond pressing key combinations, many editors support "type a few characters to trigger formatting." You don't need to memorize anything — just knowing markdown syntax is enough:
| Type | Result | Works In |
|---|---|---|
# + space | Heading 1 | Almost all editors |
## + space | Heading 2 | Almost all editors |
- + space | Unordered list | Almost all editors |
1. + space | Ordered list | Almost all editors |
> + space | Blockquote | Almost all editors |
--- + Enter | Horizontal rule | Most editors |
``` + Enter | Code block | VS Code, Typora |
[] | Task list | Obsidian |
The upside is obvious — no shortcut combinations to memorize. The downside is they're slightly slower than keyboard shortcuts since you're still typing characters.
My advice: use keyboard shortcuts for high-frequency operations, and syntax triggers for everything else. Bold, italic, links, and headings are daily operations — invest the time to make those shortcuts muscle memory. For less common stuff like horizontal rules and code blocks, just type the syntax.
Three-Editor Shortcuts Cheat Sheet
Here's all the common shortcuts from the three editors in one table for quick comparison:
| Action | VS Code | Typora | Obsidian |
|---|---|---|---|
| Bold | Ctrl+B | Ctrl+B | Ctrl+B |
| Italic | Ctrl+I | Ctrl+I | Ctrl+I |
| Strikethrough | Needs extension | Alt+Shift+5 | Needs custom bind |
| Headings | Ctrl+Shift+][ | Ctrl+1~6 | Type # manually |
| Link | Ctrl+K | Ctrl+K | Ctrl+K |
| Blockquote | — | Ctrl+Shift+Q | Type > manually |
| Unordered list | Needs extension | Ctrl+Shift+] | Configurable |
| Inline code | — | Ctrl+Shift+`` | `Ctrl+ ` `` | |
| Code block | — | Ctrl+Shift+K | Type manually |
| Table | — | Ctrl+T | Type manually |
| Preview | Ctrl+Shift+V | WYSIWYG | Ctrl+E |
Typora has the most comprehensive shortcut coverage — nearly every formatting operation has a dedicated keybinding. VS Code needs extensions for full markdown support. Obsidian sits in between, with shortcuts for common operations and syntax triggers for the rest.
That's why many people who write in markdown daily prefer Typora — its shortcuts are purpose-built for markdown, unlike VS Code which supports markdown as one of many languages.
How to Customize Markdown Shortcuts
If the default shortcuts don't work for you, all three editors support customization.
VS Code Custom Shortcuts
In VS Code, press Ctrl+K Ctrl+S (Cmd+K Cmd+S on macOS) to open the keyboard shortcuts settings. Search for the command you want to modify, double-click it, and press your new key combination.
You can also edit keybindings.json directly. For example, here's how to add a shortcut that wraps selected text in a markdown link:
{
"key": "ctrl+alt+k",
"command": "editor.action.insertSnippet",
"when": "editorTextFocus",
"args": {
"snippet": "[$TM_SELECTED_TEXT]($0)"
}
}Now selecting text and pressing Ctrl+Alt+K turns it into a link.
Typora Custom Shortcuts
In Typora, go to Preferences → General → Shortcuts. Click the command you want to change and type the new key combination. Typora's customization range is somewhat limited — you can only modify commands from a preset list.
Obsidian Custom Shortcuts
Obsidian has the most flexible customization of the three. Go to Settings → Hotkeys, and you can bind custom shortcuts to almost any command — including those provided by community plugins.
My approach was to bind strikethrough to Ctrl+Shift+S in Obsidian (matching Typora's macOS shortcut), so I don't have to re-adapt when switching between the two editors.
Look, the syntax itself isn't complicated — there aren't that many symbols to learn. But using shortcuts well genuinely saves time. The key is not to try learning everything at once. Start with bold, italic, link, and headings. Once those become muscle memory, gradually expand to other shortcuts.
References
[^1]: Markdown Guide - Markdown Cheat Sheet: https://www.markdownguide.org/cheat-sheet/[^2]: Obsidian Official Docs - Keyboard shortcuts: https://help.obsidian.md/Extending+Obsidian/Keyboard+shortcuts[^3]: VS Code Official Docs - Markdown editing with Visual Studio Code: https://code.visualstudio.com/docs/languages/markdown[^4]: VS Code Marketplace - Markdown Shortcuts extension: https://marketplace.visualstudio.com/items?itemName=mdickin.markdown-shortcuts[^5]: Typora Official Docs - Markdown Reference: https://support.typora.io/Markdown-Reference/