Neovim todo nu
Neovim todo-nu
"Or how to use neovim to make your todo reviews"
A lot has been said and written about using vim as a Zettelkasten, personal wiki, note taking app. And there is plenty of plugins that support these methods:
- Vimwiki
- neorg
- Telekasten..
Just have a look at the list on neovimcraft I'm using one of them as well and just changed recently from Telekasten to obsidian.nvim.
But this post should not be about note taking itself. To be honest I just want to shamelessly promote my own plugin 😅.
No really, don't use it, its done badly, and has ugly dependencies.
"But it works! And has a point!", so hear me out.
Use Case
The way I work is kind a weird. I work on a lot of projects simultaneously, with many little todos that don't have deadlines, but are important nonetheless. And I have to be able to switch context very quickly, constantly trying not to forget what the next step should be. Sometimes a project is not in focus for months, and still I want to continue where I left over.
I try to keep track of my todos in the GTD method. Or at least kind of.
So I have a notes.md
file as my inventory, to keep mail, phone, talk, ideas clean from my head, and when I feel about it, I clarify them, finish them or place them to a location where, and that's important:
"I am confident I will see them again when needed."
How it works
And there is where I might do this a little different. I tried to keep a central repository of all my todos, like one would when using things like todo.txt. But they always felt like a giant vault, where I never actually was looking into again. Whenever I switched to a different project, I had to look in several places to get on track again.
There must be a better way.
So I started to place todos and documentation in the same .md
files.
For example a made up hardware.md
file would be:
# Hardware
I have 2 laptops
A raspberry pi 4
A raspberry pi 3
A desktop machine
One laptop is for abroad working, the other is mostly the backup.
The Desktop is for gaming that I don't have time for.
The raspbi 4 is a homelab server, but its actually not powerfull enough.
- [ ] Buy one of those mini-pcs with the new intel N100 @year
But I actually already have too many PCs that are not really in use.
- [x] Sell the raspberry pi 3
- [ ] Sell the desktop PC @month
Now what todo-nu
does is aggregating only the todos of this file, or better:
All todos of the whole wiki.
Then the telescope picker plugin uses the output of this todo-nu, so that I can quickly fuzzy find and jump to an entry, and have documentation and next steps right there.
While this is cool by itself, I'm trying to use it for my todo reviews as well. In telescope I can send the fuzzy find todo list to a quickfix list, and then just cycle through every todo, to check whether I have done something, or completely missed it. I do this weekly and while usually I just skip the most things, it also helps to get the right radar and sense for which would be the right focus and priorities.
What could be better
I thought long about marking todos as something like @sprint
. But I always felt like... naa that doesn't work!
The contexts really work, but more like @team
, for stuff I want to say when I am in the team meeting.
Or @name
for when I have to wait for somebody or when I'm with them.
But I never was able to filter todos that I don't actually want to see in the "weekly" review. So I recently changed from @maybe
contexts to @year
and @month
contexts.
The picker is not yet able to correctly parse contexts. However I recently changed todo-nu, so that I can exclude what I don't want to see in the review.
Lets see if this works better for quicker and better reviews.
Fun turned out to be useful
One of the purposes of the todo-nu cli script was to play around with nushell. So I implemented a randomize function, that just picks one of all the todos.
I didn't think I'm ever going to use it, but it has some value. In GTD they also talk about contexts with low time or energy level. I don't label them like that, because that would take effort by itself. So whenever I feel like;
I don't want to take on a new project, nor do I want to quit work, I just let the dice decide and pick a random todo. Ok, usually I dice several times, but when I stumble upon a todo, where I can say: "Hey I can do this in these 20min left.", these are very satisfying tasks when accomplished.
And it didn't take me any effort to think about what I want to do, the dice did that. 🤫
Ok I mean, I had to get this system in place, which I yet have to get the time back for, but isn't that where the fun actually begins on a vim journey? 🤡
This post was motivated by the carnival for september 2025 with the topic "How do you use Vim / Neovim?"