start emacs

Look, we've all been down that road of downloading Emacs and optimistically opening up the tutorial, only to get lost trying to reconfigure the theme. This time, try starting with a little extra help.

Start Emacs is a single, 300-line configuration file that serves up the basics with an extra helping of comments. It's meant to be approachable, easy to read, and easy to extend.

What you need

  • git (to clone Start Emacs)
  • gcc (to compile tree-sitter grammars)
  • Emacs (to… use Emacs)

Step one: where's my config?

Open up Emacs and invoke the describe-variable keybinding:

C-h v user-emacs-directory RET

That's ctrl + h, followed by v, type user-emacs-directory, hit enter.

This variable shows you the /path/to/emacs/directory that you'll need for step two.

Step two: clone Start Emacs

Clone this git repo, https://github.com/mgmarlow/start-emacs, to your config directory.

git clone https://github.com/mgmarlow/start-emacs.git /path/to/emacs/directory

That's it, you're good to go

Now's a great time to hit up the Emacs tutorial: C-h t.

Wait, what's in it?

Great question. Here are a few highlights:

  • Tree-sitter: using regular expressions for syntax highlighting is so last year. Tree-sitter is the new hotness: incremental parsing for all of your syntax needs. When you open a buffer for a source file that is tree-sitter-supported, Start Emacs (thanks to the treesit-auto package) will prompt you to install the language grammar and set everything up.
  • LSP (eglot): language server protocol. You know it, you probably love it (unless you're Jonathan Blow, or something). Configure your LSP servers with Start Emacs (see the eglot listing in init.el) and you will have an IDE-like editing experience, complete with code-completions, contextual breadcrumbs, and everyone's favorite squiggles.
  • Searching and navigation improvements: while Emacs developers may think that the default search tools are "good enough", I very much do not. Start Emacs sets up a couple of packages that bring new life to searching and navigating: C-s no longer sucks, minibuffer completions don't require you to spam TAB, and your completing-read filter text doesn't have to be 100% identical to your search to pull up hits. Trust me, it's a world of difference.