Preview your markdown as an interactive mind map in VS Code.
| markmap-vscode (upstream) | Markmap Plus | |
|---|---|---|
| Maintenance | Inactive | Actively maintained |
| Extension ID | gera2ld.markmap-vscode |
cgxiao.markmap-plus |
| Settings prefix | markmap.* |
markmapPlus.* |
| Keyboard shortcuts in the preview | — | ✅ |
| Click anywhere on a node to fold it | — | ✅ |
| Node search / filter | — | ✅ |
| Fold state remembered per file | — | ✅ |
| Markdown outline export | — | ✅ |
| Theme and layout settings | frontmatter only | ✅ settings too |
| Multiple previews stay in sync | — | ✅ |
| Everything else | ✅ | ✅ inherited |
markmap-vscode. Both register a markdown
custom editor, so keeping both installed leads to unpredictable behaviour.
| Old key | New key |
|---|---|
markmap.defaultOptions |
markmapPlus.defaultOptions |
markmap.customCSS |
markmapPlus.customCSS |
Available while the preview has focus. Press ? in the preview to see them.
| Key | Action |
|---|---|
F | Fit window size |
E | Expand all |
C | Collapse all |
+ / = | Zoom in |
- | Zoom out |
/ | Search nodes |
? | Show/hide the shortcut help |
In the preview, left-click a branch node to toggle its immediate children; right-click it to toggle the entire subtree. Ctrl/Cmd+click also toggles the whole subtree. Links and areas outside branch nodes keep their context menus.
When the Markdown editor is active, use the Command Palette's Markmap Plus: Toggle the active node or Markmap Plus: Toggle the active node recursively to act on the node at the text cursor. Neither command has a default keybinding, so typing t or r edits the text normally. You can assign your own keybindings in VS Code.
Press / to search the map. Matching branches stay open and everything else
folds away, so a large document collapses to just the parts that match.
Enter jumps to the next match, Shift+Enter to the
previous one, and Esc clears the search and restores the fold state you had
before.
The branches you fold are remembered per file, so reopening a document shows the map the way you left it. Node ids are content hashes, so renaming a heading simply drops that node from the saved state instead of breaking it.
Use the Export button in the toolbar to save the map as SVG, PNG or a standalone HTML page. Markdown exports the branches that are currently open as a nested list, which is handy for turning a large document into a summary.
{
"markmapPlus.defaultOptions": "{ \"colorFreezeLevel\": 2 }",
"markmapPlus.customCSS": "markmap-view { --mm-link: rebeccapurple; }",
"markmapPlus.theme": "cards",
"markmapPlus.layout": "org-chart"
}
markmapPlus.theme takes classic, cards or
minimal; markmapPlus.layout takes tree,
two-sided or org-chart. Leave either empty to use the document's
frontmatter, or the default.