The Ultimate VIM TODO List

By , 9 August 2012

The Ultimate VIM TODO List
The Ultimate VIM TODO List

With a TODO list of over 500 items I clearly need advanced software to manage my tasks. And finally I have found just the tool for the job...


After trying web based project trackers, spreadsheets, desktop project management apps, calendar based, email-based, smartphone apps and everything else I could think of, it looks like I'll be sticking with my plain text todo file with a couple of handy VIM scripts.

Here's how it works.

The Ultimate VIM TODO List

My todo.txt is just a tab-separated text file that looks something like this:

1	8	roger	tax return
1	12	seo	keyword tools
1	20	web	single domain login access
2	1	blog	ultimate VIM TODO list
2	2	web	settings page broken
2	2	cms
3	3	blog	glassfish-vs-tomcat-update.txt
3	5	blog	enums in jsf

The first column is priority and the second is a time estimate in hours. I sort by priority then time by using the following VIM command.

:%!sort -k1,1n -k2,2n -s

Which I map to a custom command (S) in my .vimrc file:

:command S %!sort -k1,1n -k2,2n -s

Using a plain text file for my TODO list is the simplest and fastest way I found to manage my jobs. With VIM I can add tasks anywhere in the list and then use VIMs powerful commands to sort, search and filter my tasks. If I ever need to I can also open up my list in a spreadsheet program, although so far I haven't had to do that.

Give it a try, or let me know if you think you have a better task management system in the comments below.

About Roger Keays

The Ultimate VIM TODO List

Roger Keays is an artist, an engineer, and a student of life. He has no fixed address and has left footprints on 40-something different countries around the world. Roger is addicted to surfing. His other interests are music, psychology, languages, the proper use of semicolons, and finding good food.

Leave a Comment

Please visit to add your comments.

Comment posted by: , 6 years ago

For the record, I no longer use VIM for task management. I'm now using an Android app I built called "The Game Of Your Life". The app is built on principles of psychology and uses Quests, Bounties, and Rewards to motivate you to complete tasks. Bounties are sorted automatically using the formula priority = (benefit * urgency / cost) so you don't waste time on pointless tasks.

Definitely worth checking out if you have an android phone - or even if you don't you could easily build something similar using a spreadsheet. As for subtasks in VIM - code folding is your friend :)

Comment posted by: Mindey, 6 years ago

Well, I often need subtasks, so I use a bit different format, which looks like python code :).

I'm happy with VIM task management, but for time tracking, I'd like to have an ID for each task somehow automatically inserted, so that I could reference tasks in other places.