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
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Expandomatic

Onsi FakhouriOnsi Fakhouri98 downloads

Expand selection outward through word, sentence, paragraph, section, document — like VSCode's expand selection.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates1

An Obsidian plugin that progressively expands the selection outward, modelled after VSCode's Expand Selection (Alt+Shift+→).

Usage

You'll need to assign the keybindings to Expand Selection and Shrink Selection yourself.

Press ⌃⇧⌘→ (Control+Shift+Command+Right Arrow) repeatedly to grow the selection one unit at a time. Each press wraps the current selection in the next larger syntactic unit. Moving the cursor or changing the selection manually resets the expansion.

Press ⌃⇧⌘← (Control+Shift+Command+Left Arrow) to shrink back through the expansion history one step at a time. Shrink only works while the selection exactly matches the last expanded selection — any manual change to the cursor or selection clears the history.

Expansion levels

Prose (default)

Press Selects
1st Word under cursor
2nd Full URL (if cursor is inside one), otherwise sentence
3rd Sentence
4th Paragraph (blank-line bounded)
5th+ Innermost section (heading + content), then parent sections outward
Last Entire document

Sentence detection uses punctuation heuristics (. ! ? followed by a capital letter or end of text). Single-letter abbreviations like U.S. and Dr. are not treated as sentence boundaries.

Inside a table

Press Selects
1st Word
2nd Cell content (between `
3rd Entire row
4th Entire table

Inside a fenced code block

Press Selects
1st Word
2nd Entire line
3rd Entire fenced block (from ``` to ```)

Inside a math block ($$...$$ or inline $...$)

Inline $...$:

Press Selects
1st Word/token
2nd Term (operator-bounded: + - * / = ^ , ( ) [ ] { })
3rd Entire $...$ (including delimiters)
4th Entire line

Block $$...$$:

Press Selects
1st Word/token
2nd Term
3rd Entire line
4th Entire $$ block

Installation

  1. Build: npm install && npm run build
  2. Copy main.js and manifest.json into <vault>/.obsidian/plugins/expandomatic/
  3. Enable the plugin in Settings → Community Plugins

Hotkeys can be rebound under Settings → Hotkeys by searching for "Expand Selection" or "Shrink Selection". The defaults are ⌃⇧⌘→ (expand) and ⌃⇧⌘← (shrink).

Development

npm install
npm run dev   # watch mode, rebuilds on save
npm run build # production build
96%
HealthExcellent
ReviewSatisfactory
About
Expand selection outward through syntactic units (word → URL/sentence → paragraph → section → document) with repeated commands. Shrink back stepwise through the expansion history and handle table cells, fenced code blocks, and inline/block math intelligently.
Editing
Details
Current version
1.0.0
Last updated
2 weeks ago
Created
2 weeks ago
Updates
1 release
Downloads
98
Compatible with
Obsidian 0.15.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
Onsi FakhouriOnsi Fakhourionsi
GitHubonsi
  1. Community
  2. Plugins
  3. Editing
  4. Expandomatic

Related plugins

Advanced Tables

Improved table navigation, formatting, and manipulation.

Meta Bind

Make your notes interactive with inline input fields, metadata displays, and buttons.

Outliner

Work with your lists like in Workflowy or Roam Research.

Various Complements

Complete words similar to auto-completion in an IDE.

Creases

Tools for effectively folding Markdown sections.

Simplified Chinese Word Splitting

Adds Simplified Chinese word splitting support for the editor and Vim mode.

LanguageTool Integration

advanced spell/grammar checks with the help of language-tool.

Easy Typing

Auto format when typing.

Lapel

Show the heading levels in the gutter of the editor.

Datacore

An even faster reactive query engine for the data obsessed.