Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/2kabhishek/tdo.nvim

Fast & Simple Notes in Neovim 📃🚀
https://github.com/2kabhishek/tdo.nvim

editor journal neovim neovim-plugin note-taking notes pkm second-brain todos tools

Last synced: 4 days ago
JSON representation

Fast & Simple Notes in Neovim 📃🚀

Awesome Lists containing this project

README

        

tdo.nvim


License


People


Stars


Forks


Watches


Last Updated

Fast & Simple Notes in Neovim 📃🚀

tdo.nvim in action


tdo.nvim in action

tdo.nvim integrates [tdo](https://github.com/2kabhishek/tdo) into your neovim workflow to make managing notes and todos super simple and fast. [Demo video](https://youtu.be/N4IRT7M-RLg)

## ✨ Features

- All features provided by [tdo](https://github.com/2kabhishek/tdo?tab=readme-ov-file#-features)
- Various commands to make working with tdo seamless
- Todo navigation and toggle helpers
- Integration with telescope for easy notes searching

## ⚡ Setup

### ⚙️ Requirements

- neovim
- [tdo](https://github.com/2kabhishek/tdo)
- telescope.nvim

### 💻 Installation

Add the following to your lazy/packer config

```lua
-- Lazy
{
'2kabhishek/tdo.nvim',
dependencies = 'nvim-telescope/telescope.nvim',
cmd = { 'Tdo', 'TdoEntry', 'TdoNote', 'TdoTodos', 'TdoToggle', 'TdoFind', 'TdoFiles' },
keys = { '[t', ']t' },
},

-- Packer
use '2kabhishek/tdo.nvim'
```

## 🚀 Usage

### 📡 Commands

`tdo.nvim` adds the following commands:

- `Tdo `: open today's todo when no `args`, accepts `args` same as [tdo](https://github.com/2kabhishek/tdo?tab=readme-ov-file#-usage)
- `TdoEntry `: open today's journal entry, accepts `offset`
- `TdoNote`: create new note with title, if left empty creates a draft with current timestamp
- `TdoTodos`: show all your incomplete todos
- `TdoToggle`: toggle todo state
- `TdoFind `: interactively search for `text` in all your notes
- `TdoFiles`: review all your notes

### ⌨️ Mappings

`tdo.nvim` adds the following mappings:

- [t / ]t — Go to previous/next todo `[ ]`

#### Recommended which-key Mappings

Other than the standard commands, you can use which-key to create your own commands.

I have defined commands for yesterday/tomorrow's todos, commit note and timestamp insertion.

```lua
n = {
name = 'Notes',
d = { 'Tdo', "Today's Todo" },
e = { 'TdoEntry', "Today's Entry" },
f = { 'TdoFiles', 'All Notes' },
g = { 'TdoFind', 'Find Notes' },
h = { 'Tdo -1', "Yesterday's Todo" },
j = { "put =strftime('%a %d %b %r')", 'Insert Human Date' },
J = { "put =strftime('%F')", 'Insert Date' },
k = { "put =strftime('%r')", 'Insert Human Time' },
K = { "put =strftime('%F-%H-%M')", 'Insert Time' },
l = { 'Tdo 1', "Tomorrow's Todo" },
n = { 'TdoNote', 'New Note' },
s = { 'lua require("tdo").run_with("commit " .. vim.fn.expand("%:p")) vim.notify("Commited!")', 'Commit Note', },
t = { 'TdoTodos', 'Incomplete Todos' },
x = { 'TdoToggle', 'Toggle Todo' },
},
```

## 🏗️ What's Next

You tell me!

## 🧑‍💻 Behind The Code

### 🌈 Inspiration

Most note-taking systems offer a lot more than I needed, so I wrote [tdo](https://github.com/2kabhishek/tdo) and then tdo.nvim for better integration.

### 💡 Challenges/Learnings

- Dove deeper into nvim APIs
- Learned about not interactive shell scripting.

### 🧰 Tooling

- [dots2k](https://github.com/2kabhishek/dots2k) — Dev Environment
- [nvim2k](https://github.com/2kabhishek/nvim2k) — Personalized Editor
- [sway2k](https://github.com/2kabhishek/sway2k) — Desktop Environment
- [qute2k](https://github.com/2kabhishek/qute2k) — Personalized Browser

### 🔍 More Info

- [co-author.nvim](https://github.com/2kabhishek/co-author.nvim) — Easily add git co authors
- [nerdy.nvim](https://github.com/2kabhishek/nerdy.nvim) — Easily add nerd glyphs


⭐ hit the star button if you found this useful ⭐

Source
| Blog
| Twitter
| LinkedIn
| More Links
| Other Projects