tgrrrr48 downloadsOutliner-style editing for heading-based Markdown: move, indent, and unindent full sections with keyboard shortcuts.
Heading Outliner is an Obsidian plugin that brings Outliner-style editing to heading-based Markdown. Move, indent, and unindent entire sections using the same keyboard hotkeys as bullet lists.

Ctrl+Shift+↑ / Ctrl+Shift+↓)Move a heading and all its content (body text + sub-headings) up or down past sibling sections. Fold state is preserved - sections that were folded before the move stay folded afterward.
Tab / Shift+Tab)Increase or decrease heading levels. Tab/Shift+Tab only activates when the cursor is on a heading line - body text and list items are unaffected. Supports single or multiple selected headings (range selection or multi-cursor). Fold state is preserved. Smart fold handling: When indenting a heading to become a child of a folded parent, the parent automatically unfolds to show the new child. All other fold states remain unchanged.
Optional per-level indentation in both the editor and reading view, styled via CSS.
Fully compatible with the Outliner plugin. Both plugins use context-aware CM6 keymaps: Heading Outliner intercepts keypresses only when the cursor is on a heading line and explicitly passes through to Outliner on bullet/list lines. There are no hotkey conflicts.
Obsidian Community - Heading Outliner
Or just search Heading Outliner in Obsidian Settings → Community plugins → Browse
| Action | Hotkey |
|---|---|
| Move section up | Ctrl+Shift+↑ |
| Move section down | Ctrl+Shift+↓ |
| Indent section | Tab (on heading line) |
| Unindent section | Shift+Tab (on heading line) |
Hotkeys are handled via CodeMirror 6 keymaps and are not exposed to Obsidian's hotkey manager. This is intentional: these keys need context-aware interception (activate only on heading lines, pass through otherwise) which Obsidian's command system cannot provide (see Hotkey Architecture Dilemma). Custom modifier configuration is planned for a future release.
| Setting | Default | Description |
|---|---|---|
| Indent headings by level | On | Visually indent headings by level |
| Indent size (em) | 0.5 | Spacing per heading level |