Emacs + org-mode = todo list nirvana

Here is how I use Emacs and org-mode to keep myself organized.

1. I keep all my todo lists in a single file. My work items, my shopping list, my hobby projects all reside in the same file.

2. I use one top-level heading for each category.

top level headings - one per category

3. Under each top-level heading I have ‘checkboxes’ for each todo item. If you begin an item with – [ ] it is treated as a checkbox. You can use C-c C-c to toggle between the checked [x] and unchecked states [ ]. There is also an intermediate stage [-] that you can use to denote work in progress (set using C-u C-u C-c C-c).

top-level headings with checkboxes

checkboxes can be toggled

4. You can place your cursor anywhere on a top-level heading press tab to hide or show the sub-items.

the sub-items can be hidden

5. If you type [/] against a top-level heading that has checkboxes under it, each time you check or uncheck an item, it’ll automatically update itself with a count of checked/total items. You can also force an update of the checkbox count, by placing your cursor over [/] and pressing C-c C-#

showing counts of items under each top-level heading

6. You can press C-c . to insert a date against a todo item. By default the calendar loads with the current date selected (you can use S–>/S-<- to select a later/earlier date) and press enter to insert the selected ate.

dates can be assigned to each item easily

7. org-mode has support for Emacs’ narrow-mode and you can use it to narrow down your todo list to just one top-level item. C-x n s will leave you with just the top-level heading your cursor was on. You can press C-x n w to see all your headings again.

showing counts of items under each top-level heading

8. org-mode also has support for hyperlinks. You can type/paste something that looks like a link and org-mode will allow you to launch it using C-c C-o:

links can also be added to your todo list

Links these days can look a bit unwieldy. You can give your links a title and hide the url like this: [[href][text]]. e.g. the url in the example above can be written as [[http://shop.oreilly.com/product/9780596004927.do][oreilly store]] and you’ll get a compact link:

compact links

9. A lot of our items at work these days originate as emails. Having the email corresponding to your todo item readily accessible next to it can be a big timesaver. If you use Emacs on MacOS, you can link to individual emails in Mail.app. Visiting the mail link (C-c C-o) will open the email in Mail.app. Copying the currently selected email’s link can be a little tricky. I made a minor tweak to this AppleScript snippet that I found on daringfireball.com:

tell application "Mail"
    set _sel to get selection
    set _links to {}
    repeat with _msg in _sel
        set _messageURL to "[[message://%3c" & _msg's message id & "%3e][email]]"
        set end of _links to _messageURL
    end repeat
    set AppleScript's text item delimiters to return
    set the clipboard to (_links as string)
end tell

I now use it with Alfred [I've assigned it a keyboard shortcut - cpm] to quickly copy a link to my currently selected email for use in my todo list.

compact links

 
close Reblog this comment
blog comments powered by Disqus