Rapidly accessing cheatsheets to learn data science with Emacs

Matt Dancho’s course DSB-101-R is an awesome course to step into ROI driven business analytics fueled by Data Science. In this course, among many other things - he teaches methods to understand and use cheatsheets to gain rapid level-ups, especially to find information connecting various packages and functions and workflows. I have been hooked to this approach and needed a way to quickly refer to the different cheatsheets as needed.

Favio Vazquez’s ds-cheatsheets repo, akin to the One Ring to Rule them All (with respect to Cheatsheets of course), combined with Emacs ( Projectile + Helm packages) make it almost a breeze to find a specific cheatsheet quickly, by just typing in a few words. 1

The built-in Hydras in Scimax make it very easy to do the above with a few key presses. All I do is F12 » p » ww, start typing in “ds-” and choose the project and then start typing in the name of the PDF file I’m looking for. Check out the animation below.

Rapidly switching to a cheatsheet PDF

The above concept applies to switching to any file in any git based project that is added to Projectile’s lists.

The next aspect to consider was switching between maximized buffer of the opened cheatsheet PDF and the current code buffer. As it goes in Emacs, “there’s probably a package for that..” ! My solution was to use one of the various frame/window configuration packages in Emacs to save the position and orientation of the buffers and rapidly switch between the maximised PDF frame and the split code and interpreter frames.

Facilitating the above was in fact already available in Scimax, where a frame or window configuration can be saved into a register that is valid for that session. Persistent saving of window configuration across sessions (i.e Emacs restarts) is a little more complex, but it is still possible with some tweaking. Winner-mode is also an interesting option to switch rapidly between window configurations.


  1. To some extent, it is also possible that launchers like the Alfred app could be set or programmed to search in particular locations. This is a less hacky and still a functional option for Mac users. ↩︎

Related