spenhos176 downloadsSearch and replace ignoring diacritics — Hebrew nikud, Arabic tashkil, Latin accents, and more. Works in active note and vault-wide.
Search and replace text ignoring diacritical marks in Obsidian
Hebrew nikud · Arabic tashkil · Latin accents · Greek polytonic · Any Unicode combining mark
🌐 English | Español | עברית | العربية | Français | Русский | Português
If your notes contain vocalized Hebrew like בְּרֵאשִׁית, searching for בראשית (without vowels) won't find it. The same happens with café vs cafe, Arabic بِسْمِ vs بسم, and any other diacritical marks.
Diacritics-Free Search solves this by making all diacritics transparent during search — type without marks and find text that has them.
Search query: בראשית → Finds: בְּרֵאשִׁית ✓
Search query: cafe → Finds: café ✓
Search query: بسم → Finds: بِسْمِ ✓
| Shortcut | Option + F (suggested — assign in Settings → Hotkeys) |
| Behavior | Opens a search bar at the top of the active note (Chrome-style) |
Capabilities:
| Shortcut | Shift + Option + F (suggested — assign in Settings → Hotkeys) |
| Behavior | Opens a modal to search across all markdown files in your vault |
Capabilities:
.md file in your vaultThe plugin uses Unicode NFD normalization to decompose characters, then removes all combining marks (Unicode category Mn):
| Original | Normalized | Script |
|---|---|---|
| בְּרֵאשִׁית | בראשית | Hebrew (nikud + cantillation) |
| café | cafe | Latin (acute accent) |
| بِسْمِ ٱللَّهِ | بسم الله | Arabic (tashkil) |
| naïve | naive | Latin (diaeresis) |
| Ἀθῆναι | Αθηναι | Greek (polytonic) |
| résumé | resume | Latin (multiple accents) |
| über | uber | Latin (umlaut) |
💡 Both sides are normalized — if you search with diacritics, it still matches text without them (and vice versa).
| Action | Shortcut |
|---|---|
| Open local search | Option + F (suggested — assign in Settings → Hotkeys) |
| Open global search | Shift + Option + F (suggested — assign in Settings → Hotkeys) |
| Next match | Enter or ▼ button |
| Previous match | Shift + Enter or ▲ button |
| Close search | Esc (works from anywhere) |
| Replace current | Enter in replace field |
Both commands are also available via the Command Palette (Cmd + P).
| Script | Example | What's stripped |
|---|---|---|
| 🇮🇱 Hebrew | בְּרֵאשִׁית → בראשית | Nikud, cantillation marks |
| 🇸🇦 Arabic | بِسْمِ → بسم | Tashkil / harakat |
| 🇫🇷 Latin | café → cafe | Accents, umlauts, cedillas, tildes |
| 🇬🇷 Greek | Ἀθῆναι → Αθηναι | Polytonic accents, breathings |
| 🇷🇺 Cyrillic | й → и | Combining breve |
| 🇮🇳 Devanagari | — | Anusvara, virama, etc. |
| 🌍 Any | — | All Unicode Mn (Mark, Nonspacing) |
Or install in one click: Open in Obsidian →
main.js and manifest.json from the latest release<your-vault>/.obsidian/plugins/diacritics-free-search/git clone https://github.com/spenhos/obsidian-diacritics-free-search.git
cd obsidian-diacritics-free-search
npm install
npm run build
Copy main.js + manifest.json to your vault's plugin folder.
| Setting | Description | Default |
|---|---|---|
| Case sensitive by default | Start searches with case sensitivity enabled | Off |
| Match highlight color | Color used to highlight all matches | #ffd000 |
| Current match color | Color of the currently selected match | #ff8c00 |
| Minimum characters (vault search) | How many characters before the vault search starts | 2 |
| Maximum files shown (vault search) | Limit how many files appear in vault results | 50 |
The whole interface is localized and follows Obsidian's language (English, Español, עברית, العربية, Français, Русский, Português).
If this plugin is useful to you, you can support its development:
Issues and PRs are welcome! If you find a script or language where diacritics aren't being properly stripped, please open an issue with an example.
Made with ❤️ for multilingual note-takers