~rbdr/nota.nvim

A plugin to manage periodic notes, tasks, learning and plan files in neovim.
503bfaa9 — Ruben Beltran del Rio 5 months ago
Namespace the plugin
ca10d2a3 — Ruben Beltran del Rio 9 months ago
Allow next and previous
9e9e89d8 — Ruben Beltran del Rio 9 months ago
Add tagging

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~rbdr/nota.nvim
read/write
git@git.sr.ht:~rbdr/nota.nvim

You can also use your local clone with git send-email.

#nota.nvim

Tools to work with notes and tasks in neovim.

#Installation

#lazy.nvim

The minimal setup doesn't require any configuration, and sets the default paths and keybins as defined in the sections below.

require('lazy').setup({
    'https://git.sr.ht/~rbdr/nota.nvim',
})

This plugin has an optional dependency: fzf-lua.

By default, nota adds keybinds that might not suit your style or conflict with other plugins. You can disable them with the default_keybinds option.

require('lazy').setup({
  {
    'git@git.sr.ht:~rbdr/nota.nvim',
    opts = {
        default_keybinds = false
    }
})

Here's the full configuration with its default values:

require('lazy').setup({
    {
        'git@git.sr.ht:~rbdr/nota.nvim',
        opts = {
            nota_home = '~/.local/share/nota',          -- Root location in which to store all notes
            default_keybinds = true,                    -- Whether or not to set the default keybinds
            periodic_locations = {
                daily = 'periodic/daily',               -- Location to store daily notes, relative to nota_home
                weekly = 'periodic/weekly',             -- Location to store weekly notes, relative to nota_home
                monthly = 'periodic/monthly',           -- Location to store monthly notes, relative to nota_home
                seasonal = 'periodic/seasonal',         -- Location to store seasonal notes, relative to nota_home
                yearly = 'periodic/yearly'              -- Location to store yearly notes, relative to nota_home
            },
            templates = {
                daily = 'templates/daily.md',           -- Template for daily notes, relative to nota_home
                weekly = 'templates/weekly.md',         -- Template for weekly notes, relative to nota_home
                monthly = 'templates/monthly.md',       -- Template for monthly notes, relative to nota_home
                seasonal = 'templates/seasonal.md',     -- Template for seasonal notes, relative to nota_home
                yearly = 'templates/yearly.md',         -- Template for yearly notes, relative to nota_home
                plan = 'templates/plan.md'              -- Template for plan notes, relative to nota_home
            },
            tasks = {
                inbox = 'inbox.md',                     -- Location of the file in which to store newly captured tasks, relative to nota_home
                someday = 'someday.md'                  -- Location of the file in which to store indefinitely deferred tasks, relative to nota_home
            },
            learning  = {
                learning_file = 'learning.md',          -- Location of the file in which to store learning entries, relative to nota_home
                prefix = '%Y-%x-%d: '                   -- Prefix to add when capturing learning entries
            },
            plan = {
                archive = 'plans',                      -- Location of the plan archives.
                plan_file = '~/.plan'                   -- Location of the active plan, the default is what is expected by finger.
            }
        }
    }
})

#Default Keybinds

#Opening Notes

  • <leader>od, :NotaOpenDailyNote, Opens today's daily note.
  • <leader>ow, :NotaOpenWeeklyNote, Opens this week's weekly note.
  • <leader>om, :NotaOpenMonthlyNote, Opens this month's monthly note.
  • <leader>os, :NotaOpenSeasonalNote, Opens this season's seasonal note.
  • <leader>oy, :NotaOpenYearlyNote, Opens this year's yearly note.
  • <leader>on, :NotaOpenNote, Opens an arbitrary note. (Requires fzf-lua)
  • <leader>N, :NotaOpenNextNote, Opens the next periodic note. (eg. tomorrow or next year)
  • <leader>P, :NotaOpenPreviousNote, Opens the previous periodic note. (eg. yesterday or last week)

#Task Views

  • <leader>oa, :NotaOpenAgenda, Opens the agenda window with this week's tasks.
  • <leader>oo, :NotaOpenOpen, Opens a window that lets you navigate through all open tasks.
  • <leader>oO, :NotaOpenOpenImportant, Opens a window that lets you navigate through all open important tasks.
  • <leader>oj, :NotaOpenJournal, Opens a window that lets you search completed tasks to find journal entries. (Requires fzf-lua and ripgrep)

#Task Handling Commands

  • <leader>t, :NotaToggleTask, Toggles completion state of the task under the cursor.
  • <leader>st, :NotaToggleTaskImportance, Toggles importance state of the task under the cursor. (- [ ] is a regular task, * [ ] is an important task)
  • <leader>it, :NotaInsertTask, Inserts a task at cursor location.
  • <leader>ct, :NotaCaptureTask, Captures a new task into the inbox.
  • <leader>Tt, :NotaTagTask, Adds a tag to the current task.
  • <leader>Rt, :NotaRemoveTagTask, Removes a tag from the current task.
  • <leader>rt, :NotaRescheduleTaskToday, Reschedules the task under the cursor to today.
  • <leader>rT, :NotaRescheduleTaskTomorrow, Reschedules the task under the cursor to tomorrow.
  • <leader>rs, :NotaRescheduleTaskSomeday, Reschedules the task under the cursor to someday.
  • <leader>rr, :NotaRescheduleTask, Reschedules the task under the cursor to an arbitrary date.

#Learning Handling Commands

  • <leader>ol, :NotaOpenLearning, Opens the learning file.
  • <leader>cl, :NotaCaptureLearning, Captures a new task into the inbox.

#Plan Handling Commands

  • <leader>op, :NotaOpenPlan, Opens the current plan file.
  • <leader>cp, :NotaCapturePlan, Captures a new plan and archives the current one.