jelenv28 downloadsOpinionated LazyVim-style keyboard setup: space leader keys and a neo-tree-style file explorer with vim keys.
Opinionated, LazyVim-style keyboard setup for Obsidian. Omakase: install it and the keys are already chosen for you.
space space to find files, space e for the explorer, and more.j/k/h/l, a add, d delete, r rename, m move, x/y/p cut/copy/paste).Desktop only. Editor leader keys need Obsidian's vim mode (Settings → Editor → Vim key bindings).
| Keys | Action |
|---|---|
space space / space f f |
Find files (Omnisearch if installed, otherwise the quick switcher) |
space e |
Toggle file explorer (reveals the current file) |
space / / space s g |
Search in vault |
space , / space f r |
Switch file (quick switcher) |
space : |
Command palette |
space f n |
New note |
space - / space | |
Split below / right |
space b d / space w d |
Close tab |
space b o |
Close other tabs |
space s s |
Outline |
space g g |
Git view (Obsidian Git) |
Active while the file explorer is focused.
| Key | Action |
|---|---|
j / k |
Move down / up |
h |
Close folder, or go to parent |
l |
Open file, or expand folder |
enter |
Open file, or toggle folder |
g g / G |
First / last item |
z |
Collapse all folders |
a |
Add file. End with / for a folder; nested paths like a/b/note work; no extension means .md |
A |
Add folder |
d |
Delete, after a confirmation (enter/y confirms, escape/n cancels). Uses Obsidian's trash setting |
r |
Rename (links are updated) |
m |
Move to a path (missing folders are created) |
c |
Copy to a path |
x / y / p |
Cut / copy / paste into the focused folder |
u |
Undo the last add, rename, move, copy, paste or delete (this session) |
s / S / t |
Open in vertical split / horizontal split / new tab |
q |
Close the explorer |
escape |
Back to the editor |
Obsidian's own space and enter handling in the explorer is switched off while Vimakase handles those keys, so space works as the leader there.
Sequences behave like which-key in LazyVim:
+file/find.escape cancels, backspace goes one level up, and any other key cancels.In the editor, leader keys start only in vim normal mode with no vim command in progress, so counts, operators and f/t keep working. Canvas and Excalidraw views are skipped, because space pans there.
Not in the community plugin list yet. Manual install:
main.js, manifest.json and styles.css from the latest release.<vault>/.obsidian/plugins/vimakase/.The repo pins Node through mise; mise install once, or use your own Node 24.
npm install
npm run dev # watch build
npm run build # typecheck + production build
npm run lint # Obsidian's plugin lint rules
npm run check # lint + build, the gate the release runs behind
npm install points core.hooksPath at .githooks, whose pre-push hook runs
npm run check, so a broken build cannot leave the machine. git push --no-verify
skips it.
Release: write what changed under ## Unreleased in CHANGELOG.md, then npm version patch (bumps package.json, manifest.json and versions.json, dates the Unreleased section, commits and tags without a v), then git push --follow-tags. The tag push triggers .github/workflows/release.yml, which checks the tag against the manifest, builds, attests build provenance and creates the GitHub release with main.js, manifest.json and styles.css attached. Obsidian picks the release up on its own.
npm run link:dev -- <vault> links this working copy into a vault as a separate plugin, Vimakase (dev), so the community build can stay installed next to it. Reload plugins in Obsidian after linking or rebuilding, and keep only one of the two enabled, since both bind the same keys.
The file explorer has no public API. Vimakase uses a few undocumented internals (listed in src/internals.ts), so an Obsidian update can break it until Vimakase is updated. File operations use the public API.
Inspired by LazyVim, neo-tree.nvim and Sidebar Keyboard Navigation.
MIT