]>
Commit | Line | Data |
---|---|---|
d15c985e RBR |
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 | ||
6297c73a RBR |
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 | |
5d23e27d | 10 | * Manage tasks in your notes, including views to find open and important tasks, rescheduling and capturing. |
d15c985e | 11 | |
69c55f3c RBR |
12 | => https://git.r.bdr.sh/rbdr/nota.nvim ⧇ source |
13 | => https://git.sr.ht/~rbdr/nota.nvim ⧉ mirror | |
d15c985e RBR |
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 | |
6297c73a RBR |
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) | |
d15c985e RBR |
97 | |
98 | ### Task Views | |
6297c73a RBR |
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) | |
d15c985e RBR |
103 | |
104 | ### Task Handling Commands | |
6297c73a RBR |
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. | |
5546a512 | 110 | * `<leader>Rt`, `:NotaRemoveTagTask`, Removes a tag from the current task. |
6297c73a RBR |
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. | |
d15c985e RBR |
115 | |
116 | ### Learning Handling Commands | |
6297c73a RBR |
117 | * `<leader>ol`, `:NotaOpenLearning`, Opens the learning file. |
118 | * `<leader>cl`, `:NotaCaptureLearning`, Captures a new task into the inbox. | |
d15c985e RBR |
119 | |
120 | ### Plan Handling Commands | |
6297c73a RBR |
121 | * `<leader>op`, `:NotaOpenPlan`, Opens the current plan file. |
122 | * `<leader>cp`, `:NotaCapturePlan`, Captures a new plan and archives the current one. | |
d15c985e RBR |
123 | |
124 | ## Conventions used in the text files. | |
125 | ||
6297c73a RBR |
126 | * - [ ] and - [x] indicate a regular task |
127 | * * [ ] and * [x] indicate an important task | |
5d23e27d | 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. |