DEV Community

dunkbing
dunkbing

Posted on

A Minimal Note-Taking System with Vim, fzf, and Git

I wanted to share a simple note-taking workflow that's fast, works offline, and doesn't lock me into any platform. Here's a ~80 line bash script.

The Setup

Notes live in ~/notes as plain markdown files. That's it. No database, no app, no subscription.

Daily Notes

note              # opens ~/notes/2024-12-14.md
note ideas        # opens ~/notes/ideas.md
note work/standup # opens ~/notes/work/standup.md
Enter fullscreen mode Exit fullscreen mode

The script creates parent directories automatically, so organizing by project or topic is effortless.

Finding Things

note -l           # list all notes, sorted by recent
note -s "keyword" # search content across all notes
note -t           # find all unchecked todos
Enter fullscreen mode Exit fullscreen mode

list

todo

All powered by fzf with preview. I can fuzzy-find through hundreds of notes instantly and jump to the exact line.

Syncing

note sync           # sync with git
Enter fullscreen mode Exit fullscreen mode

First run initializes the repo and asks for a remote URL. After that, it pulls, commits changes with a timestamp, and pushes. Simple backup and multi-device sync.

Why This Works

  • Speed: vim opens instantly. no electron, no loading screens (or you can choose whatever editor you want).
  • Portable: plain text works everywhere, forever.
  • Searchable: grep + fzf.
  • Git history is free time travel.
  • No vendor lock-in: your notes are just files.

Top comments (0)