I’ve toyed on and off with journalling for some time now. Not blogging, which is a much more public activity focused on sharing, but true journalling: the writing of thoughts for personal reasons and not for public consumption.

But it’s never really taken.

I’ve tried to be consistent about writing travel logs for major trips, as I do find that activity extremely powerful for both cementing memories at the time and allowing me to refresh my memories after the event. But beyond that, it’s not something I’ve been able to turn into a habit.

Now, my past attempts always focused on putting pen to paper, but recently I realized that, as fascinated as I am with notebooks and so forth… well, I bloody well hate physical writing! Because I’m horribly out-of-practice, it’s slow, tiring, and messy, while affording me no real benefits. It simply gets in the way, and in doing so, makes the act of journalling more unpleasant.

And, the reality is I’m a technologist. My tools are the screen and the keyboard. Why fight that?

So I decided to turn to those tools to build an alternative stack built on Vim, plus a few plugins, based on this blog post.

For basic journalling functionality, vimwiki and calendar-vim are a perfect combination:

Automatic timestamped files with basic markup and linking. Simple. Easy. Portable.

After that, it’s all about ergonomics. My preferred writing environment is spartan and attractive, with a large, easy-to-read font. That brings us to a few additions:

Finally, we have a bit of vimrc configuration that I’ve found handy:

001 | " Automatically switch to writing mode when a wiki page is opened.
002 |  au FileType vimwiki set guifont=Office_Code_Pro_Light:h14|call pencil#init({'wrap': 'soft'})|set sbr=
003 | 
004 | 
005 |  " Turn on Limelight when Goyo is enabled
006 |  autocmd! User GoyoEnter Limelight
007 |  autocmd! User GoyoLeave Limelight!
008 | 
009 |  " Hotkey mapping to open the calendar pane
010 |  map <leader>C :Calendar<cr>
011 |  map <leader>G :Goyo<cr>

And voila!

Now, I’m still getting used to this setup, so I could see it requiring additional tweaks. And it is Vim, so it’s not the ideal word processing environment (though I finally figured out the right formatoption tweaks to get paragraph reflow to mostly work the way you’d expect). But it’s simple and it works!

The only remaining question is whether I’ll actually start building up the habit…