Walter Mays

# My Crazy Notetaking Setup

Without going into too much detail, let’s just say that I enjoy messing with my workflow far too much. I’m constantly trying to get a more efficient setup, a faster, newer, better, shinier plugin, and a more robust tool to use. I have an addiction for configuration. However, for the past few months, I’ve found a workflow that works pretty consistently for me.

## Note-Taking

I take all of my notes in Vim. I’ll leave it to you to determine whether this is because I’m very efficient in Vim, or because I’m a little bit masochistic. (Hint: it’s a bit of both.) I take all of my notes in Markdown, which I find very easy to write, read, and use. It’s especially nice when I want to generate a study guide for my classes, since I can use the amazing pandoc command.

## Note Management

Since I take my notes in plaintext, I can take advantage of the power of Git to track revisions. Each separate class has its own Git repository which I host on Gitlab (I would have used Github, but the fact that I can’t have infinite private repositories means that all of my university’s administration would jump down my throat for academic dishonesty). This way, I can properly synchronize my repositories between my desktop and laptop.

## Study Guides

This is where my love of Linux (and ancient technologies) rears its ugly head. Generally, I want to take all of the notes that I’ve taken over the quarter or semester and compile them into one document that I can easily read anywhere. I use pandoc to convert all of my notes into LaTeX, which I then \input into a container document. Then I can compile my document and voila! I have a beautifully typeset (like that matters) study guide with all of my notes. I generally format the container to be a tiny bit fancier than usual, including a table of contents and multiple chapters.

Of course, running these commands by hand every time I updated my notes would get quite cumbersome. So, looking into the past for inspiration, I landed on another ancient Unix utility: make. I always make sure to implement a clean rule and that I use wildcards to prevent having to update my makefile with every new note markdown file. I also modify my .gitignore so I don’t actually include those automatically generated .tex files in my version control history.