Skip to content

EthanJWright/quicknotes.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 

Repository files navigation

quicknote.nvim

A minimal Neovim plugin that replaces the start page with a markdown quicknote.

Installation

lazy.nvim

{
  'quicknote.nvim',
  dir = '/Users/ethan/localplug/quicknote.nvim', -- Update this path
  config = function()
    require('quicknote').setup()
  end,
  event = 'VimEnter',
}

packer.nvim

use {
  '/Users/ethan/localplug/quicknote.nvim', -- Update this path
  config = function()
    require('quicknote').setup()
  end,
}

Usage

When you start Neovim without any files, quicknote displays a centered ASCII art header with your notes as markdown bullets.

Keybinds

  • <leader>qn - Open quicknote in current buffer
  • <leader>qa - Add a new note (via prompt)
  • <leader>qc - Clear all notes (with confirmation)
  • <leader>qs - Stash current notes (saves and clears)
  • <leader>ql - Load a stash (replaces current notes)
  • <leader>qb - Browse stashes in a buffer
  • g? - Show help (in any quicknote buffer)

In Buffers

Quicknote Buffer:

  • Edit notes as markdown bullets (lines starting with - )
  • :w to save changes

Stash Browser (<leader>qb):

  • <CR> on a stash to open it for editing
  • Delete bullets and :w to remove stashes

Stash Editor:

  • Edit stashed notes just like regular quicknote
  • :w to save (doesn't affect current notes)

Configuration

require('quicknote').setup({
  keybind = "<leader>qn",                  -- Show quicknote
  add_note_keybind = "<leader>qa",         -- Add note
  clear_notes_keybind = "<leader>qc",      -- Clear notes
  stash_notes_keybind = "<leader>qs",      -- Stash notes
  load_stash_keybind = "<leader>ql",       -- Load stash
  browse_stashes_keybind = "<leader>qb",   -- Browse stashes
  notes_path = vim.fn.stdpath("data") .. "/quicknote_notes.txt",
  stash_dir = vim.fn.stdpath("data") .. "/quicknote_stashes",
  ascii_art = {
    [[  ___        _      _      _   _       _]],
    [[ / _ \ _   _(_) ___| | __ | \ | | ___ | |_ ___  ___]],
    [[| | | | | | | |/ __| |/ / |  \| |/ _ \| __/ _ \/ __|]],
    [[| |_| | |_| | | (__|   <  | |\  | (_) | ||  __/\__ \]],
    [[ \__\_\\__,_|_|\___|_|\_\ |_| \_|\___/ \__\___||___/]],
    "",
  },
})

Disable keybinds by setting them to false:

require('quicknote').setup({
  keybind = false,
  add_note_keybind = false,
  -- etc...
})

How It Works

Notes Storage:

  • Stored in ~/.local/share/nvim/quicknote_notes.txt (default)
  • One note per line in plain text

Stashing:

  • Stashes save your current notes with a custom name
  • Current notes are cleared after stashing (like git stash)
  • Stored in ~/.local/share/nvim/quicknote_stashes/ as JSON files
  • Original names preserved (spaces and special chars allowed)
  • Loading a stash removes it from the stash list (like git stash pop)

Display Modes:

  • Startup mode: Centered ASCII art, no line numbers
  • Normal mode: # Quick Notes header, line numbers enabled
  • Mode persists through stash/load/refresh operations

License

MIT

About

Easy to access task lists and random notes to carry with you through out development.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages