--- title: /nota.html --- description: nota (.nvim) is a (very opinionated) neovim plugin for note management. ## nota.nvim Tools to work with notes and tasks in neovim. It allows you to: * Open and edit periodic notes with templates (daily, weekly, monthly, seasonal, and yearly) * Open, edit and archive .plan files * Open and capture learning entries in a learning file * Manage tasks in your notes, including views to find open and important tasks, rescheduling and capturing. => https://git.r.bdr.sh/rbdr/nota.nvim view source @ git.r.bdr.sh => https://git.sr.ht/~rbdr/nota.nvim source mirror @ sourcehut ## 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', }) ``` Some features in this plugin depend on fzf-lua[1] => https://github.com/ibhagwan/fzf-lua [1] 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 } }) ``` ### Configuration The plugin allows you to configure a variety of directories and settings. All the available settings and their defaults are here: ``` 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. } } } }) ``` ## Keybinds Unless disabled, these are the key bindings provided: ### Opening Notes * `od`, `:NotaOpenDailyNote`, Opens today's daily note. * `ow`, `:NotaOpenWeeklyNote`, Opens this week's weekly note. * `om`, `:NotaOpenMonthlyNote`, Opens this month's monthly note. * `os`, `:NotaOpenSeasonalNote`, Opens this season's seasonal note. * `oy`, `:NotaOpenYearlyNote`, Opens this year's yearly note. * `on`, `:NotaOpenNote`, Opens an arbitrary note. (Requires fzf-lua) ### Task Views * `oa`, `:NotaOpenAgenda`, Opens the agenda window with this week's tasks. * `oo`, `:NotaOpenOpen`, Opens a window that lets you navigate through all open tasks. * `oO`, `:NotaOpenOpenImportant`, Opens a window that lets you navigate through all open important tasks. * `oj`, `:NotaOpenJournal`, Opens a window that lets you search completed tasks to find journal entries. (Requires fzf-lua and ripgrep) ### Task Handling Commands * `t`, `:NotaToggleTask`, Toggles completion state of the task under the cursor. * `st`, `:NotaToggleTaskImportance`, Toggles importance state of the task under the cursor. (- [ ] is a regular task, * [ ] is an important task) * `it`, `:NotaInsertTask`, Inserts a task at cursor location. * `ct`, `:NotaCaptureTask`, Captures a new task into the inbox. * `Tt`, `:NotaTagTask`, Adds a tag to the current task. * `Rt`, `:NotaRemoveTagTask`, Removes a tag from the current task. * `rt`, `:NotaRescheduleTaskToday`, Reschedules the task under the cursor to today. * `rT`, `:NotaRescheduleTaskTomorrow`, Reschedules the task under the cursor to tomorrow. * `rs`, `:NotaRescheduleTaskSomeday`, Reschedules the task under the cursor to someday. * `rr`, `:NotaRescheduleTask`, Reschedules the task under the cursor to an arbitrary date. ### Learning Handling Commands * `ol`, `:NotaOpenLearning`, Opens the learning file. * `cl`, `:NotaCaptureLearning`, Captures a new task into the inbox. ### Plan Handling Commands * `op`, `:NotaOpenPlan`, Opens the current plan file. * `cp`, `:NotaCapturePlan`, Captures a new plan and archives the current one. ## Conventions used in the text files. * - [ ] and - [x] indicate a regular task * * [ ] and * [x] indicate an important task * - [>YYYY-MM-DD] and * [>YYYY-MM-DD] indicate a rescheduled task. This is only applied to tasks that were rescheduled after they were due.