Syntax Highlighting With PyCharm, Pygments, and Keynote
I'm prepping talks for a few conferences. I think I've got my workflow down for syntax highlighting slides in Keynote on my Mac.
1. "pip install pygments", not in a virtualenv but in your default Python.
2. Make a Bash script like:
#!/bin/bash
/usr/local/bin/pygmentize -f rtf -O "style=friendly,fontface=Courier Bold" "$1" | pbcopy
Make sure it's chmod'ed executable and on your path. Now you can do
pyg myscript.py
and then paste the syntax-highlighted code into
Keynote. The result is pretty nice; at some point I may make a Pygments
style optimized for presentations:
3. In Keynote, turn off all auto-correction:
4. Bonus round: PyCharm integration. In PyCharm's preferences, choose "External Tools," hit the "+", and fill out the dialog like so:
You can leave "Open Console" checked while you're getting things working.
Finally, in the "Keymap" section of PyCharm's vast settings dialog, search for "pyg" in the filter box, right-click on it, and assign a hotkey of your choice to the tool. I chose Command-Y because it was bound to some weird function I don't use.
Now whenever you're editing a file in PyCharm, you can save it and hit Command-Y, then switch to Keynote and paste.
Readers, if anyone can tell me how to adjust the default font size in Pygments for RTF output specifically, that'd be great.