This is a read-only archive!

org-mode is awesome

I've seen org-mode for Emacs mentioned very frequently around the interwebs, so it went into my mental queue of topics to learn. It finally bubbled to the top this week, so I took a look.

Organizer? Nah.

As an organizer/calendar, well, I doubt I'll need it. Enforced use of MS Outlook is mandated by work. My Post-it-notes-all-over-my-desk method of organization will also continue to serve me well.

There are some nice agenda-related shortcuts that are probably worth using though, like typing C-c . to enter a datestamp, like <2011-01-20 Thu>. Then you can increment or decrement it one year/month/day at a time via S-up and S-down. I like this.

Plaintext editor? Yes!

As a plaintext outline and table editor... wow. org-mode rocks. Do you know how many hours of my life could have been saved by having a good ASCII table/bullet-list editor? org-mode lines everything up and keeps it all nice and neat for you.

You can also make plaintext check boxes and check/uncheck them. And you can insert hyperlinks and footnotes, and click them to open web pages or jump back and forth between footnote and reference.

There are ways to collapse and expand outlines, search for items and only display those items, and so on. The documentation for org-mode is very clear and took me less than an hour to read through. All-in-all a pleasant experience.

* Agenda
** Things to learn
1. [X] Clojure
2. [X] org-mode (see [fn:diagram1])
3. [ ] Haskell
4. [ ] Japanese
   1. [X] Hiragana
   2. [X] Katakana
   3. [ ] Kanji
5. [ ] The true meaning of friendship

* Footnotes

| Task                              | Annoyance (1-10) |
| Making ASCII tables by hand       |              9.5 |
| Making ASCII bullet lists by hand |              7.2 |
| Using org-mode                    |              0.4 |

It looks nice plastered into my blog, but you don't get a real idea of how many cool things you can do with it until you open it in Emacs and start shuffling items around, bumping them up/down a level in headlines, creating properly-numbered bullet items with one key, and seeing the columns in the table auto-resize as you type.

I also highly recommend putting (setq org-startup-indented t) into .emacs to make everything look pretty on-screen. It still saves as the simple plaintext above, but it looks like this in Emacs:


I can definitely see using org-mode for TODO files in some of my projects. (You can mark entries as TODO (just by typing TODO in front), and then toggle between TODO/DONE via C-c C-t.) I can also see using it as a general-purpose note-taker.

org-mode also has a mobile version for iPhone and Android, synced via WebDAV or Dropbox, so you can org-mode on your phone while you're driving to the grocery store1. Again I don't really need this, but there it is.

The joy of plaintext

Plaintext is awesome.

It's the universal file format. It's readable and writeable by scripting langauges, terminals, text editors, IDEs, word processors, web browsers, even lowly humans.

Plaintext's one shortcoming is its lack of structure. It's just a bunch of letters. It doesn't have a color, it doesn't have a style, it doesn't line up into columns without a lot of effort. There's nothing stopping you from opening a parenthesized list and forgetting the closing paren.

Computers don't care about these problems, but humans are bad at producting plaintext by hand, and bad at editing it once it's produced. Our clumsy, stumpy fingers and inconsistent, chaotic brains can't handle the freedom.

Emacs (and Vim) are awesome because they let you do magical things to plaintext. They enforce structure. They provide shortcuts so you can get your plainext right the first time.

[ ] is just two braces and a space, but org-mode lets me hit C-c C-c and turn the space into an X. This may seem banal, hardly worth caring about, but add to this shortcut thousands upon thousands of others. Things like org-mode, or paredit, or all of Vim's built-in magic... it all adds up to something wonderful.

And best of all, you always still have the option of manually keyboarding over and typing that X between the braces yourself. It's still just plaintext underneath. So you end up with the best of both worlds.

  1. I do not recommend using org-mode while driving, for public safety reasons.

January 20, 2011 @ 8:14 AM PST
Cateogory: Programming


Avdi Grimm
Quoth Avdi Grimm on January 20, 2011 @ 11:52 PM PST

I basically live my life in Org-mode these days. I've been very happy using it in conjunction with S5 (using org-s5) to write presentations The addition of Babel makes creating incline code samples complete with code output wonderfully easy.

Quoth jerojasro on January 23, 2011 @ 12:43 AM PST

vim-outliner offers you pretty much the same functionality (except those tables, IIRC)

Quoth anonymous on February 07, 2011 @ 10:22 AM PST

Why are you writing the term "plain text" as "plaintext"?

Jagtesh Chadha
Quoth Jagtesh Chadha on February 09, 2011 @ 8:41 PM PST

Great blog, and thanks for the article. Quick question, how can I make my emacs look like how it is in the screenshot? Thanks in advance!

Ch P
Quoth Ch P on April 26, 2011 @ 2:24 AM PDT

Hi Mate! Lately from time to time when I visit I get a blank content section apart from a "File not found" error. Have you seen it? Also, perhaps it's time to finally change the captcha to another word : ) May I suggest the obvious onomatopeia?

Quoth Gregory on May 06, 2011 @ 2:07 PM PDT

I think (setq org-startup-indented t) in your .emacs file might require at least Emacs 23.21 and version 6.29 of Org.

In Emacs 23.1.1, I got a similar look by hiding leading stars. I put (setq org-hide-leading-stars t) in my .emacs.

I also swapped the backgroud and foreground colors by following this : .

Quoth progo on May 23, 2011 @ 12:41 AM PDT

Yeah org-mode is the bomb. :)

I can't force myself into Emacs so I learned vimwiki instead. It ain't org-mode but it is useful and very cool.

Quoth joe on June 17, 2011 @ 9:03 AM PDT

I started using org-mode because of this post, and not for todo lists, calendar, etc, but just for structuring ordinary text, since it gives me a way to not only have collapseable headers, but to tag sections and create decent bullet lists. It could go further with this use case, but there'd always been a gap between plaintext and desktop publishing, and it fills this gap well. I don't care so much what something looks like as how it's structured, when content and organization are my main concern.

Quoth markc on September 19, 2011 @ 11:51 AM PDT

Many great things about org mode. I've been using it for about 4 years now, mostly for TODO and for my engineering journal. A few things to check out:

  • TAGS - to categorize and filter
  • #+STARTUP: (set initial visibility, hidestars)
  • #+SEQ_TODO: Customize the TODO -> STARTED -> DONE cycle
  • Journaling with org-journal-entry (see
  • Archiving
  • Deadline and completion datestamps on entries