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

Native Search Replace

humoumouhumoumou34 downloads

Adds replacement controls directly to Obsidian's built-in Search and uses the native Search result model for exact files and result rows.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates4

Replacement controls integrated into Obsidian's built-in Search tab.

Installation

Download main.js, manifest.json, and styles.css from the matching GitHub release. Place them in <vault>/.obsidian/plugins/native-search-replace/, reload Obsidian, and enable Native Search Replace under Settings → Community plugins.

Usage

Open Obsidian's built-in Search tab and run a search. Use the per-file or per-match replace controls that appear on the native result rows, or run Native Search Replace: Preview replace all in native Search results from the command palette before applying a bulk replacement.

v0.2.0 — native result-model integration

This version replaces the fragile DOM-to-file inference used in v0.1.x.

  • Gets result files directly from Obsidian SearchView's native result items (view.dom.vChildren._children[*].file).
  • Per-file and per-match actions keep the exact native result item instead of guessing from a displayed filename.
  • Exact quoted searches such as "foo bar" are treated as one simple literal target, so the duplicate Find target row stays hidden.
  • Simple regex and single-token searches also infer their replacement target automatically.
  • Case sensitivity follows the native Search Aa state; the plugin no longer owns a second case-sensitive setting.
  • Complex Search DSL still gets an explicit Find target row because the target cannot be inferred safely.
  • No result-tree MutationObserver and no full result scan on Search open. Result action buttons are added lazily on hover/focus.
  • Writes still use Vault.process() and recompute against current file contents immediately before saving.

Why internal SearchView data is used

Obsidian does not expose a public extension API for attaching replace operations to the core Search result model. Reading the SearchView result items is more reliable than parsing truncated DOM labels and is the same class of integration used by established Search-enhancement plugins.

Manual install

Copy into <vault>/.obsidian/plugins/native-search-replace/:

  • manifest.json
  • main.js
  • styles.css

Then reload Obsidian and enable Native Search Replace.

Privacy and license

Native Search Replace makes no network requests, uses no telemetry, and reads and writes only vault files through Obsidian's vault API. It is released under the MIT License.

HealthExcellent
ReviewPassed
About
Add replace controls directly to Obsidian's built-in Search tab and run per-file or per-match replacements from native result rows. Preview replace-all from the command palette and apply bulk or targeted edits while preserving native search behavior like case sensitivity and exact quoted searches.
SearchEditing
Details
Current version
0.2.3
Last updated
Last week
Created
Last week
Updates
4 releases
Downloads
34
Compatible with
Obsidian 1.5.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Author
humoumouhumoumou
GitHubhumoumou1215
  1. Community
  2. Plugins
  3. Search
  4. Native Search Replace

Related plugins

LanguageTool Integration

Advanced grammar and spell checking, powered by LanguageTool.

Smart Connections

Find related notes and excerpts while writing. Your AI link building copilot displays relevant content in graph + list view. A local embedding model powers semantic search. Zero setup. No API key.

Meta Bind

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

Tag Wrangler

Rename, merge, toggle, and search tags from the tag pane.

Quick Switcher++

Enhanced Quick Switcher, search open panels, and symbols.

Advanced Tables

Improved table navigation, formatting, and manipulation.

Thino

Quickly capture memos and display them in the sidebar with a heatmap. (Closed source)

Omnisearch

Intelligent search for your notes, PDFs, and OCR for images.

Editing Toolbar

The Editing Toolbar is modified from cMenu, which provides more powerful customization settings and has many built-in editing commands to be a MS Word-like toolbar editing experience.

Outliner

Work with your lists like in Workflowy or Roam Research.