I’m pretty crazy about text input shortcuts and have spent a fair amount of time honing a system that lets me use selection, editing, Markdown, HTML, and other shortcuts everywhere you can type on macOS. I’m so used to them I make a mess typing on other people’s computers. I try to avoid doing that. Typing on other people’s computers, I mean.
I share a large collection of all of my favorite key bindings on GitHub. Everything is contained in the file
DefaultKeyBinding.dict, which is what macOS reads all key bindings from. In that file I use formatted comments to describe each binding, and I can generate the README and blog page by parsing the bindings file itself. The script that generates the table of shortcuts creates it in Markdown and then uses MultiMarkdown to output the document, ready for GitHub or my project page.
Yes, there is such a thing as too many shortcuts. I walk that line. But I manage to not have so many that I’m accidentally triggering them while doing something else, so I think it’s just the right amount. It’s just more than (even) I can remember all at once. Which is why a searchable cheat sheet you can pop up with a keystroke is handy.
So I modified the documentation generator to output a template for the cheatset gem. It will read whatever is in your KeyBindings.dict file and generate a
Keybindings.docset file for you based on the definitions and comments in the file. So you can take my oversized
DefaultKeyBinding.dict file, trim it down to what you want to use (leaving comments in place), and generate a custom cheat sheet for your own key bindings.
Download the code to get the script (and the bindings file). Make it executable with
chmod a+x cheatset_keybindings.rb. Before running it, you’ll need to install the cheatset gem:
gem install cheatset should do it, though you might need
sudo gem install cheatset, depending on your setup.
You can point the script to whatever
DefaultKeyBinding.dict you like by passing a path as an argument. It will default to using the one in
The script can output the key combinations either as symbols, e.g.
⌃⌘p or as names, e.g.
CTRL+CMD+P. “Name” is the default format; to output symbols instead, use
You can also change things like the docset title and description using command line flags. Just run
cheatset_keybindings.rb -h to see the options.
By default the script will generate the template, then run cheatset to generate the docset, and then delete the template, leaving just the docset. If you just want the template, run the script with
--save. Then you can edit the template and run
cheatset generate TEMPLATE yourself.
I made this because I needed it, not because I expected it to be a popular project. If it’s of use to you, though, please enjoy!