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.
[[wiki]], [markdown](url), plain URLs) with a single keypress.The primary way to navigate. Like / search but better.
s in Vim normal mode, or via command)Controls:
Backspace to delete charactersEscape or click to cancelQuick navigation between links in your note.
Shift)Works with wiki links, markdown links, and bare URLs.
Regex-powered navigation to any text pattern.
main.js, manifest.json, styles.css from Releases<vault>/.obsidian/plugins/obsidian-flash/Use with obsidian-vimrc-support:
" Flash Mode (recommended primary navigation)
exmap flash obcommand flash:search-mode
nmap s :flash<CR>
vmap s :flash<CR>
" Jump to Link
exmap jumpLink obcommand flash:jump-to-link
nmap gl :jumpLink<CR>
" Jump to Anywhere
exmap jumpAnywhere obcommand flash:jump-to-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 |
flash:search-mode # Flash Mode (incremental search)
flash:jump-to-link # Jump to Link
flash:jump-to-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:
\p{L} (letters) and \p{N} (numbers) for universal matchingInspired by:
MIT