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