Neovim-style navigation for Obsidian. Jump anywhere with minimal keystrokes.
Flash brings the speed of flash.nvim and leap.nvim to Obsidian. Type a few characters, see labels appear on matches, press a label to jump instantly.
- Flash Mode — Incremental search with live-updating labels. Type characters to narrow matches, press a label to jump.
- Jump to Link — Navigate to any link (
[[wiki]],[markdown](url), plain URLs) with a single keypress. - Jump to Anywhere — Regex-based navigation to jump to any word or pattern.
- Smart labels — Labels never conflict with the next character after a match, so you can keep typing naturally.
- Auto-jump — Automatically jumps when only one match remains.
- Full Unicode support — Works with Cyrillic, CJK, and any Unicode text. Cyrillic keyboard input maps to Latin labels.
- Visual feedback — Search panel shows your query, matched text highlights, non-matches dim.
The primary way to navigate. Like / search but better.
- Activate Flash Mode (
sin Vim normal mode, or via command) - Start typing — matches highlight in real-time
- After 2 characters (configurable), labels appear next to matches
- Press a label key to jump, or keep typing to narrow results
- If one match remains, auto-jumps immediately
Controls:
- Type any character to search or select a label
Backspaceto delete charactersEscapeor click to cancel
Quick navigation between links in your note.
- Activate Jump to Link
- Labels appear on all links
- Press a label to jump (or open in new pane with
Shift)
Works with wiki links, markdown links, and bare URLs.
Regex-powered navigation to any text pattern.
- Activate Jump to Anywhere
- Labels appear on all regex matches (default: words with 3+ characters)
- Press a label to jump
- Open Settings → Community Plugins
- Click Browse and search for "Flash"
- Click Install, then Enable
- Download
main.js,manifest.json,styles.cssfrom Releases - Create folder:
<vault>/.obsidian/plugins/obsidian-flash/ - Copy files into the folder
- Enable in Settings → Community Plugins
Use with obsidian-vimrc-support:
" Flash Mode (recommended primary navigation)
exmap flash obcommand obsidian-flash:activate-flash-mode
nmap s :flash<CR>
vmap s :flash<CR>
" Jump to Link
exmap jumpLink obcommand obsidian-flash:activate-flash-link
nmap gl :jumpLink<CR>
" Jump to Anywhere
exmap jumpAnywhere obcommand obsidian-flash:activate-flash-anywhere
nmap <Space>j :jumpAnywhere<CR>| Setting | Description | Default |
|---|---|---|
| Characters for hints | Letters used for labels (home row first recommended) | asdfghjkl... |
| Auto-jump single target | Skip label when only one match | On |
| Setting | Description | Default |
|---|---|---|
| Minimum characters | Characters needed before showing labels | 2 |
| Case sensitive | Match case when searching | Off |
| Jump position | Where cursor lands: match start/end, word start/end | Match end |
| Jump position (Shift) | Position when holding Shift | Match start |
| Setting | Description | Default |
|---|---|---|
| Label background | Background color for labels | #F47D1A |
| Label text color | Text color for labels | #000000 |
| Match highlight | Color for matched characters | #F47D1A |
| Dim opacity | Opacity of non-matching text (0-1) | 0.4 |
| Inherit font | Labels match surrounding text font | On |
| Setting | Description | Default |
|---|---|---|
| Regex pattern | Pattern for matching targets | (?<![\p{L}\p{N}_])[\p{L}\p{N}]{3,}... |
| Jump position | Where cursor lands | After last char |
| Jump position (Shift) | Position when holding Shift | First char |
obsidian-flash:activate-flash-mode # Flash Mode (incremental search)
obsidian-flash:activate-flash-link # Jump to Link
obsidian-flash:activate-flash-anywhere # Jump to Anywhere
/* Label appearance */
.flash-label {
background: #your-color;
color: #your-text-color;
border-radius: 3px;
}
/* Matched text highlight */
.flash-highlight {
color: #your-highlight !important;
}
/* Dimmed text during Flash Mode */
.flash-active {
--flash-color: rgba(128, 128, 128, 0.5);
}
/* Search panel */
.flash-search-panel {
background: var(--background-secondary);
border-color: var(--text-accent);
}Full support for non-Latin text:
- Search any script — Flash Mode finds matches in Cyrillic, CJK, or any Unicode text
- Cyrillic keyboard mapping — Type on Russian layout, labels still work (ф→a, ы→s, etc.)
- Unicode regex — Jump to Anywhere uses
\p{L}(letters) and\p{N}(numbers) for universal matching
- Obsidian 0.15.0+
- CodeMirror 6 editor (default in modern Obsidian)
Inspired by:
- flash.nvim — The gold standard for Neovim navigation
- leap.nvim — Lightning-fast motion plugin
- obsidian-jump-to-link — Original Obsidian link jumping
MIT