Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Join the community
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Heading Outliner

tgrrrrtgrrrr48 downloads

Outliner-style editing for heading-based Markdown: move, indent, and unindent full sections with keyboard shortcuts.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates3

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.

Features

Section movement (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.

Indent / unindent (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.

Visual heading indent

Optional per-level indentation in both the editor and reading view, styled via CSS.

Compatibility with Outliner

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.

Installation

Obsidian Community - Heading Outliner

Or just search Heading Outliner in Obsidian Settings → Community plugins → Browse

Hotkeys

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.

Settings

Setting Default Description
Indent headings by level On Visually indent headings by level
Indent size (em) 0.5 Spacing per heading level

Roadmap

  • Implement moving all selected blocks up/down, same way as indenting/unindenting selected blocks work
  • Implement custom movement modifier configuration via individual ALT, CTRL, SHIFT boolean toggles in settings
  • Implement Drag-n-drop

Changelog

1.0.2

  • Prepared for release, bugs fixed

0.0.4

  • Fixed: Multi-selection now preserves all selections after indent/unindent
  • Fixed: Nested headings no longer cause duplicate text changes
  • Fixed: Fold states are now properly preserved during operations
  • Fixed: When indenting into a folded parent, only that parent unfolds (siblings stay folded)
  • Refactored: All operations now use native CodeMirror 6 API for better reliability

0.0.3

  • Initial release with core features
92%
HealthExcellent
ReviewSatisfactory
About
Move entire heading sections (body text and sub-headings) up or down while preserving fold state. Indent or unindent headings with Tab/Shift+Tab on heading lines, support multi-selection and smart fold handling that auto-unfolds parents when needed; optionally add per-level visual heading indentation and work alongside Outliner.
FormattingHotkeysCSS
Details
Current version
1.0.2
Last updated
Yesterday
Created
Last month
Updates
3 releases
Downloads
48
Compatible with
Obsidian 1.0.0+
License
MIT
Report bugRequest featureReport plugin
Sponsor
Ko-fi
Author
tgrrrrtgrrrr
github.com/tgrrrr
GitHubtgrrrr
  1. Community
  2. Plugins
  3. Formatting
  4. Heading Outliner

Related plugins

Admonition

Admonition block-styled content.

Colored Text

Color the selected texts.

Columns

Create columns in Markdown.

Highlightr

A minimal and aesthetically pleasing highlighting menu that makes color-coded highlighting much easier with a configurable assortment of highlight colors.

Underline

Add underline with shortcut.

Hotkeys++

Additional hotkeys to do common things.

Style Settings

Adjust theme, plugin, and snippet CSS variables.

Linter

Format and style your notes. Linter can be used to format YAML tags, aliases, arrays, and metadata; footnotes; headings; spacing; math blocks; regular Markdown contents like list, italics, and bold styles; and more with the use of custom rule options.

Lapel

Show the heading levels in the gutter of the editor.

CSS Editor

Edit CSS snippet files.