I've been using hnb ever since I blogged about it early last year. It has been getting on my nerves though, the UI is ok for outlining, but gets annoying for text entry, and the file format, being a nasty xml thing, is hard to keep in sync and I've sometimes lost a few entries of data. It also has a lot of open bugs, including really obvious things like support for encryption.

So today I found vimoutliner and gave it a try:

  • The debian package (vim-vimoutliner, what a silly name) installs everything working without configs needed.
  • Any file ending in .otl is an outline. Outlines are plain text files.
  • As a vim plugin, it does a very nice job of getting out of the way when I'm editing text.
  • It's really obvious how to add new items to the outline, add sub-items, move items to a different level, move stuff around, search, undo/redo, etc. Just indent with tabs, and use normal text editing for all of this.
  • Since I already know how to use folds in vim, opening and closing levels was completly obvious, just use zc, zo, etc.
  • Seems that the debian package needs to use double-backslash insead of double-dot as the prefix for the extended commands.
  • There's all kinds of other features, more than I'll ever need. Nice to know they are there.
  • Since my vim is already configured to support transparent (though perhaps not 100% safe) editing of encrypted files ending in ".gpg", it was easy to configure it to treat .otl.gpg files as transparently encrypted outlines: au! BufRead,BufNewFile *.otl.gpg setfiletype vo_base
  • otl2html made it easy enough to add .otl file support into ikiwiki, and the file format allows fairly good mixing of WikiLinks and other stuff with the outline.