Skip to content

Repository files navigation

Flash

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.

Features

  • 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.

How It Works

Flash Mode

The primary way to navigate. Like / search but better.

  1. Activate Flash Mode (s in Vim normal mode, or via command)
  2. Start typing — matches highlight in real-time
  3. After 2 characters (configurable), labels appear next to matches
  4. Press a label key to jump, or keep typing to narrow results
  5. If one match remains, auto-jumps immediately

Controls:

  • Type any character to search or select a label
  • Backspace to delete characters
  • Escape or click to cancel

Jump to Link

Quick navigation between links in your note.

  1. Activate Jump to Link
  2. Labels appear on all links
  3. Press a label to jump (or open in new pane with Shift)

Works with wiki links, markdown links, and bare URLs.

Jump to Anywhere

Regex-powered navigation to any text pattern.

  1. Activate Jump to Anywhere
  2. Labels appear on all regex matches (default: words with 3+ characters)
  3. Press a label to jump

Installation

Community Plugins (Recommended)

  1. Open Settings → Community Plugins
  2. Click Browse and search for "Flash"
  3. Click Install, then Enable

Manual

  1. Download main.js, manifest.json, styles.css from Releases
  2. Create folder: <vault>/.obsidian/plugins/obsidian-flash/
  3. Copy files into the folder
  4. Enable in Settings → Community Plugins

Vim Integration

Use with obsidian-vimrc-support:

" Flash Mode (recommended primary navigation)
exmap flash obcommand flash:search-modenmaps:flash<CR>vmaps:flash<CR>" Jump to Link
exmap jumpLink obcommand flash:jump-to-link
nmapgl:jumpLink<CR>" Jump to Anywhere
exmap jumpAnywhere obcommand flash:jump-to-anywhere
nmap<Space>j:jumpAnywhere<CR>

Configuration

General

SettingDescriptionDefault
Characters for hintsLetters used for labels (home row first recommended)asdfghjkl...
Auto-jump single targetSkip label when only one matchOn

Flash Mode

SettingDescriptionDefault
Minimum charactersCharacters needed before showing labels2
Case sensitiveMatch case when searchingOff
Jump positionWhere cursor lands: match start/end, word start/endMatch end
Jump position (Shift)Position when holding ShiftMatch start

Flash Mode Appearance

SettingDescriptionDefault
Label backgroundBackground color for labels#F47D1A
Label text colorText color for labels#000000
Match highlightColor for matched characters#F47D1A
Dim opacityOpacity of non-matching text (0-1)0.4
Inherit fontLabels match surrounding text fontOn

Jump to Anywhere

SettingDescriptionDefault
Regex patternPattern for matching targets(?:^|[^\p{L}\p{N}_])([\p{L}\p{N}]{3,})...
Jump positionWhere cursor landsAfter last char
Jump position (Shift)Position when holding ShiftFirst char

Command IDs

flash:search-mode # Flash Mode (incremental search)
flash:jump-to-link # Jump to Link
flash:jump-to-anywhere # Jump to Anywhere

CSS Customization

/* 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);
}

Unicode & Cyrillic Support

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

Requirements

  • Obsidian 0.15.0+
  • CodeMirror 6 editor (default in modern Obsidian)

Credits

Inspired by:

License

MIT

About

Neovim-style navigation for Obsidian. Jump anywhere with minimal keystrokes using flash.nvim/leap.nvim inspired motion.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages