I am a huge fan of overleaf. I use it almost every day to take class notes, write up homework, etc. Two features which I see heavily requested are speed (people who compare overleaf to sharelatex often cite this as the reason they use sharelatex over overleaf) and offline editing. Thanks again for the great software!
I've got a question for you since you mentioned that you use it to take class notes. I have attempted this in the past and I have found it pretty hard to keep up with a professor while they talk and write things down. When it is just straight speech I am taking notes of there is no problem of course since it is just normal text. But when math starts being quickly written on a board I find it hard to keep up.
Writing out all the symbols names and getting the formatting right seems to take a fair amount of time and I typically get behind.
I have a Microsoft Surface I use for class, so what I have just switched to handwriting the notes now on the surface.
I guess my reply wasn't worded so well. I don't really mean in-class notes. In class, I do the same thing you do - I write everything down on paper. In the past I have tried to type everything and ran into the same problem you stated. What I currently do is move most of my written notes into class independent documents on Overleaf. It then become easy to create study guides for exams since all of my notes can be printed and shared from a single document. Sorry for the confusion!
Are you able to save your notes out of Overleaf in the free version? It looks like a nice service but I don't want to pay to have offline access to notes especially since I like to have a nice git repo with all my old notes backed up.
I think there does exist a way to enter a visual block mode, but i is kind of a pain. You might try looking around for some third party modules. Here is one I found by doing a github search: https://github.com/terryma/vim-multiple-cursors
I thought the article did very well in providing an introductory resource to students hoping to learn more about the structure of an interpreter. On the other hand, if one wanted a nearly identical, and possibly more rigorous approach to learning about implementing a "tiny lisp" Peter Norvig's lispy implementation is a wonderful resource: http://norvig.com/lispy.html ... of course any computer scientist studying languages should also have read Mcarthy - http://www.cse.sc.edu/~mgv/csce330f13/micromanualLISP.pdf