https://github.com/greeschenko/vimsidian
Minimalistic Obsidian-like note system inside Vim (Vim9script).
https://github.com/greeschenko/vimsidian
second-brain vim9
Last synced: about 2 months ago
JSON representation
Minimalistic Obsidian-like note system inside Vim (Vim9script).
- Host: GitHub
- URL: https://github.com/greeschenko/vimsidian
- Owner: greeschenko
- Created: 2026-03-27T16:48:32.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2026-04-01T07:20:53.000Z (3 months ago)
- Last Synced: 2026-04-01T09:43:03.690Z (3 months ago)
- Topics: second-brain, vim9
- Language: Vim Script
- Homepage:
- Size: 13.7 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-vim9 - greeschenko/vimsidian - like note system inside Vim (Vim9script). | โญ1 | (Markdown)
README
# ๐ Vimsidian
Minimalistic Obsidian-like note system inside Vim (Vim9script).
Vimsidian brings wiki-links, backlinks, daily notes, markdown editing helpers, and a fuzzy picker directly into your Vim โ no Electron, no bloat.
---
## โจ Features
* ๐ Wiki links: `[[note-name]]`
* ๐ Automatic note creation
* ๐ Backlinks search via quickfix
* ๐
Daily notes
* ๐ Interactive picker with preview
* ๐ณ Built-in vault explorer using `:Explore`
* โ๏ธ Markdown checkbox support
* ๐ Markdown formatting helpers
* ๐ง Clean architecture (core / ui / editor separation)
* โก Written in Vim9script
---
## ๐ Project Structure
```text
autoload/
โโโ core/
โ โโโ backlinks.vim
โ โโโ daily.vim
โ โโโ notes.vim
โ โโโ path.vim
โ โโโ vault.vim
โโโ editor/
โ โโโ checkbox.vim
โ โโโ list.vim
โ โโโ markdown.vim
โ โโโ visual.vim
โโโ ui/
โ โโโ picker_logic.vim
โ โโโ picker.vim
โ โโโ wiki_links.vim
โโโ vimsidian.vim
plugin/
โโโ vimsidian.vim
```
---
## โ๏ธ Installation
Using vim-plug:
```vim
Plug 'greeschenko/vimsidian'
```
---
## โ๏ธ Configuration
```vim
let g:vimsidian_vault_path = '~/your-vault'
```
Default:
```text
~/VAULT
```
Notes are stored inside:
```text
{vault}/data/
```
---
## ๐งพ Commands
```vim
:VimsidianNew {title} " Create or open note
:VimsidianOpen {title} " Open existing note
:VimsidianFollowLink " Follow [[link]] under cursor
:VimsidianToday " Open today's daily note
:VimsidianBacklinks " Show backlinks
:VimsidianPicker " Open note picker
:OpenVaultExplorer " Open vault/data explorer
:VimsidianToggleCheckbox " Toggle checkbox on current line
:VimsidianToggleCheckboxVisual " Toggle checkboxes in visual selection
:VimsidianMakeCheckbox " Convert current line into checkbox
:VimsidianToggleBold " Toggle bold in visual mode
:VimsidianToggleItalic " Toggle italic in visual mode
:VimsidianToggleCode " Toggle inline code in visual mode
:VimsidianToggleCodeBlock " Toggle fenced code block in visual mode
:VimsidianToggleQuote " Toggle quote block in visual mode
:VimsidianToggleList " Toggle markdown list in visual mode
```
---
## โจ๏ธ Default Keymaps
### Core
```vim
vv Open picker
vf Follow wiki link under cursor
vt Open today's note
vb Show backlinks
ve Open vault explorer
```
### Markdown Editing
These mappings are enabled automatically for markdown files.
```vim
Normal mode:
Toggle checkbox
Convert line into checkbox
Continue current list / checkbox
Visual mode:
Toggle checkbox
Toggle bold
Toggle italic
Toggle inline code
Toggle code block
Toggle quote block
Toggle markdown list
```
---
## ๐ง How It Works
### Notes
* Stored as `.md` files
* Located in `{vault}/data/`
* Created automatically when opening a missing note
### Wiki Links
```text
[[my-note]]
[[projects/my-note]]
```
* Automatically resolved via link parser
* Target note is created automatically if missing
### Backlinks
Uses `:vimgrep` across all notes to find references like:
```text
[[current-note]]
```
### Picker
Features:
* Live filtering
* Arrow navigation
* Preview pane
Actions:
* `Enter` โ open note
* `Ctrl-i` โ insert wiki link
### Vault Explorer
Uses Vim built-in `:Explore` / netrw in tree mode.
Explorer opens directly inside:
```text
{vault}/data/
```
---
## ๐ Unicode / Cyrillic Support
* Titles remain unchanged (UTF-8)
* File names are transliterated to ASCII
Example:
```text
ะะฐะดะฐัะฐ โ zadacha.md
```
Benefits:
* Stable filenames
* Reliable search
* No encoding issues
---
## ๐ Architecture Philosophy
Vimsidian follows a clean layered design:
* `core/` โ business logic
* `ui/` โ Vim interaction layer
* `editor/` โ markdown editing helpers
* `vimsidian.vim` โ public facade
This keeps:
* code testable
* logic reusable
* UI decoupled
---
## ๐ Roadmap
* [ ] Tags support (`#tag`)
* [ ] Media insertion helpers
* [ ] Better fuzzy search scoring
* [ ] Graph view
* [ ] Async file loading
* [ ] File picker integration
---
## ๐ค Contributing
Pull requests are welcome.
Ideas for improvement:
* architecture
* performance
* markdown UX
* picker experience
* vault navigation
Feel free to contribute.