Emagicians Starter Kit
This is my Emacs. There are plenty like it, but this one is mine.
Perhaps one of the coolest things about Emacs is that it is a code editor that is infinitely customizable by virtue of it being a programming language that is used to make editors, and not just an editor.
If you don't like the keyboard shortcuts, you can change em. You don't like the way it handles indentation? You can change that too. Need a syntax highlighter and completion mechanism for a new language? Easy Peasy.
And anyone can, and has, done this. People have customized their own emacs and released those customizations to the world.
So I have done likewise: The Emagicians Starter Kit
This is part lab-notebook, part religious text, part emacs-lisp and all a labour of love. This is more than 10 years (yikes!) of learning to use emacs.
I'm not saying my configuration is the best (heavens no!) but there are a few things I have learned:
Don't Skimp on the Meta!
Yo dawg.
I heard you like customizing the shit out of your editor, so I customized your editor to help you customize what you customize.
Almost all of my Emagician Starter Kit commands are launched by using the [f3]
, so I know if I am working with anything Emagician, I can get there with a quick [f3]
. Perhaps the most important part is [F3][F3]
which launches a file completion list of all files in the starter kit.
Customization will break shit.
So get comfortable with that, and make tools to get to 'fixed' asap.
Because of the way loading the Emagicians Starter Kit is managed, there lots of places that things can potentially go wrong. As my config is loading it is constantly spewing messages to the scratch buffer so that it is clear what is being loaded.
Because of the way emacs works, you can execute a chunk of text on the screen as code. So part of the initialization process is to output the text of commands like:
- Relaunching the editor in debug mode
- Opening all files in the starter it
- Get a list of all files on the
Use org-mode to store your customizations
There are a few reasons for this:
- It lets you keep a log of what your customizing and why. This is important for future me who already forgot why past me wanted that package or that setting.
- It provides code folding in an outline-like way, which is a killer way to organize initialization code—which at best is procedural.
- You can use the whole host of org mode tools against it, such as tagging, linking, headlines-as-task, even attachments if you like.
Declare bankruptcy once in awhile
The state of the art changes. In the old days we didn't even have package.el and everything was loaded from site-lisp. Then the Emacs Wiki came along ad we started using that. Now we're using use-package
and MELPA like bosses.
And that's just package loading. What was great 3 years ago may not be great anymore. Taking the time to declare bankruptcy gives you the option to explore new ideas and is time well spent.