Vim KeyNav
pendingby Guo Ang
Vim-style keyboard navigation for reading mode and built-in browser: scrolling (j/k/gg/G), half-page (Ctrl+d/f/u/b), tab switching (H/L), history (Ctrl+o/i), search (/), link hints (f/s).
Vim KeyNav
Vim-style keyboard navigation for Obsidian's reading mode and built-in web browser.
Obsidian's built-in Vim mode (Settings → Editor → Vim key bindings) only works in edit mode. This plugin brings the same muscle memory to reading mode and webview tabs — scroll with j/k, jump to top/bottom with gg/G, open links with Vimium-style hint labels, and more.
Keybindings
| Key | Action |
|---|---|
j / k | Scroll down / up |
gg | Scroll to top |
G | Scroll to bottom |
Ctrl+d / Ctrl+f | Half-page down |
Ctrl+u / Ctrl+b | Half-page up |
H / L | Switch to previous / next tab |
Ctrl+o / Ctrl+i | Go back / forward in history |
/ | In-page search |
f / s | Activate link hints |
All keybindings work in both reading mode and the built-in browser (webview).
Link Hints
Press f or s to show yellow labels on every visible link. Type the label characters to click that link. Press Escape to cancel.
Link hints use home-row characters (fjdkslaghrueiwocmvnt) and automatically switch to two-character labels when there are more than 20 links visible.
Webview Support
The plugin injects keybindings into Obsidian's built-in browser tabs. It uses Electron's before-input-event to intercept keys at the host level, which allows it to work on complex web apps with cross-origin iframes (e.g. Lark/Feishu docs). Keys that map to scroll actions are translated into native browser scroll events (ArrowDown, PageDown, etc.) so they work regardless of page structure.
Input fields are detected automatically — vim keybindings are disabled while you're typing in a text field, search box, or editor.
Installation
Manual
- Download
main.jsandmanifest.jsonfrom the latest release. - Create a folder
vim-keynavinside your vault's.obsidian/plugins/directory. - Copy
main.jsandmanifest.jsoninto that folder. - Restart Obsidian, then enable Vim KeyNav in
Settings → Community Plugins.
License
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.