My Notetaking Setup
A quick update today because this tweet reminded me that I wanted to talk briefly about my notetaking setup. I recently streamlined my notetaking tools after living with them for about two years(!)
The problem statement I started from is:
- I primarily work in a terminal with a vim session inside,
- I have two laptops across which I wish to share notes,
- I experience process as friction (so Zettelkasten and Bullet Journaling are right out),
- I find myself needing to refer back to notes via distant memory,
- I write notes more often than I read them,
Given this, I want to keep searchable notes about work, life, and research with as little friction as possible.
The system I use is a slight refinement of a previously unregarded group of
behaviors! I used to take notes in an editor in any directory I happened to be
in. As a result, I had a pile of unordered, untitled notes files in my $HOME
directory. Whenever I switched computers, I'd lose all of my notes. Even on a
single computer, finding a note I had previously written was fairly
impossible.
It wasn't all bad, though: the act of writing notes was valuable in and of itself in helping me retain thoughts, and -- maybe more importantly -- it was the seed of a habit which I could spin in a more useful direction. In a sense, I had handled the first point of my problem statement already!
Two years ago, I collected all of my notes, meticulously adding titles and
modified times from the files themselves, then moved them into a ~/notes
directory. I symlinked this directory to DropBox on both of my laptops.
Success! I crossed off point 2. There was a little added process: note
filenames now started with a YYYYMMDD-
timestamp to give them an unambiguous
sort order.
This, however, added process. The process was "look up the date, then run vim ~/notes/20080808-chomp-womp.md
" to take a note. Even that amount of added
process itched, so a couple of weeks ago, I wrote a little script to take
notes. (I wrote it in Bash, to no-one's surprise.) This crossed off
point 3. I integrated fzf
and ag
into the script so now I can run:
$ note search 'some term'
To bring up a fuzzyfinder window with just the matching notes. If only one note
matches, it'll open in $EDITOR
instead. Inside fuzzyfinder I can select
multiple notes to open in vim
tabs.
I can also run note last
to open up the last note I took. Finally, running
note
with no arguments opens an $EDITOR
window and lets me enter freeform
text. It takes the first line, slugifies it, and places it in the ~/notes
dir
with an appropriate name. Combined, those features tackle points 4 and 5.
I've been fairly happy with the results: I've taken more notes and been less tempted to combine unrelated notes into a single document. The thing I'd want you to take away from this is not that you should use my note-taking system, but that having any note-taking system is useful. (Also, look for places in your life where you're experiencing friction and try to formulate a problem statement! You'll be happier with solutions that are tied to a tightly-defined problem!)