Posted by weakfish 2 days ago
Ask HN: Where to begin with "modern" Emacs?
I’m a longtime Neovim user who’s been EMacs-curious. The hold up for me has been that I’ve been unable to find a source of truth for what’s top-of-the-line as far as plugins are. With Neovim, it’s a safe bet to look at what folks like Folke are doing, but I have struggled to find a similar figure in the Emacs community who gives insight into what’s-what. I know Doom exists, but I want to fully “own” my config and not over complicate it.
Thanks!
You're basically about to go on a journey to a country you've never been, so my recommendation is to just read up about it and see if you find some things you want to experience.
Long time vim/neovim user, used fennel to configure it lastly, but I wanted to see what Emacs has to offer to compare.
I started by reading Mastering Emacs by Mickey Petersen and from there start adding things that I felt I needed (configure key bindings, project.el, eglot, LSP things, helm, corfu, vterm, flycheck, etc)
I still have things to do, but I'm not in a hurry, I'm quite comfortable with Emacs right now, so will approach them shortly.
There's also Protesilaos' Stavrou channel on YouTube with a good amount of videos covering Emacs' topics in depth. I highly recommend them.
(Btw, I still don't know what Vertigo and Consult provide, but I can navigate through files, text search and replacement, functions and all with comfort, so not sure if I'm missing something.)
Emacs have this whole completion things, but it’s a bit bare as it’s somewhat similar to bash completion (a lot of tab-bing). Vertico add incremental completion and present the candidates in a vertical list, so it’s more like filtering than completions.
Consult provides a lot of collections for completions and some niceties on top of some existing completion sources. Two of its main features are narrowing (kinda like selectibg a subcollection) and asynchronous sources (you can have something like ripgrep powering the sources of completion candidates).
I use the regular package manager for emacs (package-install).
Been a user since the first version of GNU Emacs, back when RMS was trying to reproduce Gosling's emacs (which I used for a couple of years). That was the early 80's.
Are the major distros shipping packages with tree-sitter support yet?
There are preferences.
Asking where to begin with 'modern' Emacs is like asking where to begin with 'music'.
Just use stock until you find something you like better. It is one of the few pieces of software left where taste is king and there are no right answers.
I have other packages installed, but they're esoteric for my own purposes.
I'd look into spacemacs (what I use).
It's similar to doom, in that it makes some decisions for you, but you can very much have a customized experience.
I for instance have a lot of "stock" sections, and other things that are very customized that I've made myself.
Look into the "layers" (sets of packages that work together). I'd particularly recommend checking out the compleseus layer, which is a composition of consult, orderless, vertico, and embark.
They're all built to be composable (selection, pattern matching, selection interface, and context menu respectively), and they each add up to a brilliant emacs experience while reusing emacs' built-in frameworks (completing read). It's an alternative to helm and ivy (I've used each before).
The reason I recommend spacemacs (I'm sure doom could be the same, I just didn't know it) is because it is an easy way to see what packages other people find useful and how to use them, and it has similar conventional across different packages (so you can run tests in the same way no matter whether you're using rust, or python or whatever other language).
On macOS: Install from emacs-plus in Homebrew
On Linux: Install from your distro’s pkg manager.
I used Doom for a couple months.
Then started considering a vanilla eMacs. I started taking notes on packages I found highly recommended and interesting.
Then I found this. And the author has done all that work and then made it into a “let me walk through a config” including a lot of the most recommended packages and sensible configs.
Gives you the lesson of building a config, knowing what’s in your config, and then being fluent in changing it.
He also has more notes on his blog about the packages + more : https://www.jamescherti.com/essential-emacs-packages/
And I now feel comfortable making changes myself.
If a full IDE is what you are seeking go with DOOM. It will give you a fully put together experience.
If you just want a text editor that you want to slowly add to go vanilla.
Doom is like getting a fully furnished apartment where you can choose the furniture and curtain colors. Vanilla is an empty plot of land that you need to build a foundation, house, and connect to city services all on your own.