]> git.r.bdr.sh - rbdr/r.bdr.sh/blob - nota.gmi
Add selection
[rbdr/r.bdr.sh] / nota.gmi
1 --- title: /nota.html
2 --- description: nota (.nvim) is a (very opinionated) neovim plugin for note management.
3 ## nota.nvim
4
5 Tools to work with notes and tasks in neovim. It allows you to:
6
7 * Open and edit periodic notes with templates (daily, weekly, monthly, seasonal, and yearly)
8 * Open, edit and archive .plan files
9 * Open and capture learning entries in a learning file
10 * Manage tasks in your notes, including views to find open and important tasks, rescheduling and capturing.
11
12 => https://git.r.bdr.sh/rbdr/nota.nvim view source @ git.r.bdr.sh
13 => https://git.sr.ht/~rbdr/nota.nvim source mirror @ sourcehut
14
15 ## Installation
16
17 ### lazy.nvim
18
19 The minimal setup doesn't require any configuration, and sets the default paths and keybins as defined in the sections below.
20
21 ```
22 require('lazy').setup({
23 'https://git.sr.ht/~rbdr/nota.nvim',
24 })
25 ```
26
27 Some features in this plugin depend on fzf-lua[1]
28
29 => https://github.com/ibhagwan/fzf-lua [1] fzf-lua
30
31 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.
32
33 ```
34 require('lazy').setup({
35 {
36 'git@git.sr.ht:~rbdr/nota.nvim',
37 opts = {
38 default_keybinds = false
39 }
40 })
41 ```
42
43 ### Configuration
44
45 The plugin allows you to configure a variety of directories and settings. All the available settings and their defaults are here:
46
47 ```
48 require('lazy').setup({
49 {
50 'git@git.sr.ht:~rbdr/nota.nvim',
51 opts = {
52 nota_home = '~/.local/share/nota', -- Root location in which to store all notes
53 default_keybinds = true, -- Whether or not to set the default keybinds
54 periodic_locations = {
55 daily = 'periodic/daily', -- Location to store daily notes, relative to nota_home
56 weekly = 'periodic/weekly', -- Location to store weekly notes, relative to nota_home
57 monthly = 'periodic/monthly', -- Location to store monthly notes, relative to nota_home
58 seasonal = 'periodic/seasonal', -- Location to store seasonal notes, relative to nota_home
59 yearly = 'periodic/yearly' -- Location to store yearly notes, relative to nota_home
60 },
61 templates = {
62 daily = 'templates/daily.md', -- Template for daily notes, relative to nota_home
63 weekly = 'templates/weekly.md', -- Template for weekly notes, relative to nota_home
64 monthly = 'templates/monthly.md', -- Template for monthly notes, relative to nota_home
65 seasonal = 'templates/seasonal.md', -- Template for seasonal notes, relative to nota_home
66 yearly = 'templates/yearly.md', -- Template for yearly notes, relative to nota_home
67 plan = 'templates/plan.md' -- Template for plan notes, relative to nota_home
68 },
69 tasks = {
70 inbox = 'inbox.md', -- Location of the file in which to store newly captured tasks, relative to nota_home
71 someday = 'someday.md' -- Location of the file in which to store indefinitely deferred tasks, relative to nota_home
72 },
73 learning = {
74 learning_file = 'learning.md', -- Location of the file in which to store learning entries, relative to nota_home
75 prefix = '%Y-%x-%d: ' -- Prefix to add when capturing learning entries
76 },
77 plan = {
78 archive = 'plans', -- Location of the plan archives.
79 plan_file = '~/.plan' -- Location of the active plan, the default is what is expected by finger.
80 }
81 }
82 }
83 })
84 ```
85
86 ## Keybinds
87
88 Unless disabled, these are the key bindings provided:
89
90 ### Opening Notes
91 * `<leader>od`, `:NotaOpenDailyNote`, Opens today's daily note.
92 * `<leader>ow`, `:NotaOpenWeeklyNote`, Opens this week's weekly note.
93 * `<leader>om`, `:NotaOpenMonthlyNote`, Opens this month's monthly note.
94 * `<leader>os`, `:NotaOpenSeasonalNote`, Opens this season's seasonal note.
95 * `<leader>oy`, `:NotaOpenYearlyNote`, Opens this year's yearly note.
96 * `<leader>on`, `:NotaOpenNote`, Opens an arbitrary note. (Requires fzf-lua)
97
98 ### Task Views
99 * `<leader>oa`, `:NotaOpenAgenda`, Opens the agenda window with this week's tasks.
100 * `<leader>oo`, `:NotaOpenOpen`, Opens a window that lets you navigate through all open tasks.
101 * `<leader>oO`, `:NotaOpenOpenImportant`, Opens a window that lets you navigate through all open important tasks.
102 * `<leader>oj`, `:NotaOpenJournal`, Opens a window that lets you search completed tasks to find journal entries. (Requires fzf-lua and ripgrep)
103
104 ### Task Handling Commands
105 * `<leader>t`, `:NotaToggleTask`, Toggles completion state of the task under the cursor.
106 * `<leader>st`, `:NotaToggleTaskImportance`, Toggles importance state of the task under the cursor. (- [ ] is a regular task, * [ ] is an important task)
107 * `<leader>it`, `:NotaInsertTask`, Inserts a task at cursor location.
108 * `<leader>ct`, `:NotaCaptureTask`, Captures a new task into the inbox.
109 * `<leader>Tt`, `:NotaTagTask`, Adds a tag to the current task.
110 * `<leader>Rt`, `:NotaRemoveTagTask`, Removes a tag from the current task.
111 * `<leader>rt`, `:NotaRescheduleTaskToday`, Reschedules the task under the cursor to today.
112 * `<leader>rT`, `:NotaRescheduleTaskTomorrow`, Reschedules the task under the cursor to tomorrow.
113 * `<leader>rs`, `:NotaRescheduleTaskSomeday`, Reschedules the task under the cursor to someday.
114 * `<leader>rr`, `:NotaRescheduleTask`, Reschedules the task under the cursor to an arbitrary date.
115
116 ### Learning Handling Commands
117 * `<leader>ol`, `:NotaOpenLearning`, Opens the learning file.
118 * `<leader>cl`, `:NotaCaptureLearning`, Captures a new task into the inbox.
119
120 ### Plan Handling Commands
121 * `<leader>op`, `:NotaOpenPlan`, Opens the current plan file.
122 * `<leader>cp`, `:NotaCapturePlan`, Captures a new plan and archives the current one.
123
124 ## Conventions used in the text files.
125
126 * - [ ] and - [x] indicate a regular task
127 * * [ ] and * [x] indicate an important task
128 * - [>YYYY-MM-DD] and * [>YYYY-MM-DD] indicate a rescheduled task. This is only applied to tasks that were rescheduled after they were due.