Hacker News new | past | comments | ask | show | jobs | submit login
Emacs Prelude 1.0 (emacsredux.com)
199 points by tosh on Sept 15, 2020 | hide | past | favorite | 60 comments

I don't use Prelude, preferring instead to build up my own minimal config, but other Emacs packages by Bozhidar – CIDER and Projectile – are my daily drivers.

When it dawned on me how much I rely on these tools generously provided to me at no cost, and how much value they bring, I finally bit the bullet and started sponsoring @bbatsov on Github Sponsors.

If you're in the same position, be it with Prelude, CIDER, Projectile, or Rubocop, please do the same!

In general, if you have some other free/open-source packages that you rely on in your work, I urge you to contribute financially to their development. Software needs manpower to thrive, and manpower needs financial support to be sustainable.

(Disclaimer: I'm not affiliated with these packages in any way, other than being a happy user.)

PSA to all Open Source maintainers: offer a version of your software for sale!

In many cases I work on projects that use an open source package where donations are the only means of support (if possible at all). I could never get a client to 'donate' €500 but I can easily approve €1000 for software support or licensing.

This seems to be the idea behind Vim registration: “You can become a registered Vim user by sending at least 10 euro. This works similar [read: basically identically] to sponsoring Vim (see above). Registration was made possible for the situation where your boss or bookkeeper may be willing to register software, but does not like the terms "sponsoring" and "donation".” https://www.vim.org/sponsor/

No thank you. My open source software is a hobby I spend time on when I feel like it. The moment I start asking for money and selling it it's no longer a fun hobby but instead a burden on my time as I'll now feel obligated provide support since people gave me money.

This is wise. I've known people who have accepted donations that wound up very much regretting it later for more or less exactly the reason you mention.

Thanks for your support! Much appreciated!

Prelude is an Emacs distribution that aims to enhance the default Emacs experience. Prelude alters a lot of the default settings, bundles a plethora of additional packages and adds its own core library to the mix. The final product offers an easy to use Emacs configuration for Emacs newcomers and lots of additional power for Emacs power users.

source: https://prelude.emacsredux.com/en/latest/

Why are so many projects allergic to screenshots? You put so much work into something and you write a really good readme but then not a single image after stating 'Improved UX, that's still in line with Emacs traditions'.

It really doesn't look any different from many other emacs set-ups and the actual appearance depends a lot on what the user has configured for themselves. The "out-of-the-box" look is minimal and optimized for keyboard, that's really all you can say about the appearance.

The "UX" in the case of Prelude is basically a curated set of "plug-ins" that "just work" and are organized in a way that is easier to maintain than if you accreted your dotemacs file over the course of years (or decades).

Prelude is a really low-friction way to get started with emacs "the right way" if you're choosing to go down that rabbit hole.

M-x screenshot even exists, and there are the elpa packages emacs-gif-screencast and keycast. It's so easy to do from right inside of emacs that there really isn't a good excuse. Less than stellar documentation is a pet peeve of mine and I try to submit small improvements to the documentation for the packages I use most often. I'd encourage everyone else that hates bad documentation to do the same. It's one of the easiest and most impactful ways to contribute to open source, and often something that the maintainers have difficulty doing simply because they can never view their project in the way a new user would.

I haven't used prelude so I don't know, but as an Emacs user the points described here https://prelude.emacsredux.com/en/latest/ would not suggest to me that they're something that can be represented well with screenshots. UX is user experience, which with Emacs is not necessarily visual.

They could just record the screen (https://obsproject.com) / terminal (https://asciinema.org/).

A gif then.

This is a great example of a generational shift in what UX/User Experience/Interface means. A person who's grown up with GUIs and post Web 2.0 interfaces wants to see your screenshots when you talk about UX. Most emacs users want to see the key mappings or talk about magit-style interfaces vs fuzzy tab-completion algorithms.

I don't want to see a screenshot. I want to see a heat map on the keys my left pinkie is responsible for.

> Most emacs users want to see the key mappings

I can say absolute certainty that more inveterate emacs users would rather see a screenshot than a litany of keybindings.

I'd say, keymaps + GIFs are nice. For example, I may have never have tried magit or swiper[1] in its early days, if I had not seen someone use it. Keymaps I can configure rather easily, UI flows not so much.

[1] https://writequit.org/denver-emacs/presentations/2017-04-11-...

Fair point, although as others have mentioned Prelude does look like stock Emacs in many ways. :-) I'll put a note to record some screencast in the future, as I think it will give a better idea of prospective users about the nature and features of Prelude.

Easily the best Emacs config I've used. Tried some of the "big" ones at various times like Spacemacs, Doom, etc., but they're massive and Vim-centric. Wrote my own large config I had been using for the past year or two. Recently tried Prelude as it was recommended by some co-workers, and found that it did all the significant things my own config did with much better performance. Included my daily necessities (helm, swipe, which-key, magit, clojure stuff) and more out of the box. Just get rid of the scroll bars if you're not on Mac and good to go. IMO, a great representation of what Emacs should be "out of the box".

Thanks for the kind words! Much appreciated!

Thank you for your work, and I would encourage people to sponsor Bozhidar's work on this and other open-source software many rely on through GitHub https://github.com/sponsors/bbatsov

Reading through the description of the project I see what its aims are but I don't see a list of specifics of what it changes from baseline emacs.

As a long-time emacs user (dear god, it's been 28 years?!), I'd like a more concrete description before considering trying it. Exactly which curated third party packages and UX? Or at least list the major ones.

Otherwise, nice effort. IMHO baseline distrib of emacs has made some odd choices that I think put some people off who might have given it a try.

I'm not sure that I would recommend Prelude for someone who's already got a memory stick with their emacs config files in their pocket. On the other hand, I do recommend it for people who are new to Emacs, especially those who want to see what a well-tuned personal setup can do for you (especially compared to the out-of-the-box product.)

I'm at around a quarter-century with emacs, too, but I tried Prelude a few years ago when I was looking to integrate magit into my workflows better and became interested in projectile.el. I ended up changing a few of the initial defaults, but I must say that I found Batsov's set up very clean and logical. I ended up adopting some of his choices even on packages I'd already set up for myself. The thing that had always irritated me about things like Evil and Spacemacs, even CUA-mode, was the attempt to make emacs something it wasn't--Prelude, on the other hand, felt like emacs properly tuned.

I've moved on to my own curated set now, but quite a few bits migrated from Batsov's work into my own, and I still look at the source for Prelude if I'm looking at incorporating some package into my personal setup.

Prelude includes and sets up the automatic activation of helm, projectile, ido, magit, and a fairly standard set of modules for languages like ruby, python, c, rust, js, css, html, xml, shell, scheme, (haskell, latex, erlang... etc etc)

If you have these set up already, and like the way you have them set up, don't switch. Instead, consider whether you'd benefit from crux, which is where they moved all the formerly unique-to-Prelude stuff:


Thanks. I've been wondering if I should invest the time to learn magit. It looks compelling, but deep and complicated.

There's surprising little time you need to invest before magit starts paying back by decreasing the time you would have previously spent looking at the git documentation for the operations you don't use very often.

Agreed. magit is one of the best pieces of software that I've encountered. Well-deserving of the "porcelain" moniker. Very intuitive, and you can always fall back to CLI if you need to.

All you really, really need is to run magit-status (bind it to a key for convenience) from any `cwd` in your project, and you get a snazzy overview of your outstanding commit. Then hit ?. Should be reasonably clear from there, at least to get started.

If you get confused just go back to the CLI: it's easy to go back and forth, no magic.

You should definitely give it a try. The point of magit is to improve the git experience, not make it more complicated.

Cool. With my remote work situation I've had to give up on local IDEs etc. and am back to emacs (with LSP for C++) so I am going to try to spend some effort to get it to a place where I'm more productive in it.

Great feedback about the bundled packages - I've mentioned a few of them on the homepage. Unfortunately I haven't had much time for OSS lately and I never got to writing proper docs. Future goals! :-)

Prelude is a really great distribution that packages a lot of high quality packages but doesn't completely change the Emacs experience like Spacemacs does. It's also relatively lightweight and small.

If someone wants a great starting point for an Emacs config, I'd recommend Prelude.

I currently use Doom, but actually started out rolling my own config based around Evil, ended up close to 400 lines (though that's small compared to some). IMO better to start with as close to vanilla as possible so you get used to learning elisp. Doom is just so high quality and what I want that I take the shortcut and just use it. However, you still might want to do a lot of customization, and I think you'd be pretty lost as a new user. A sensible prelude is a great place to start.

I'm a long time user of Prelude myself and it is absolutely terrific. I like my Emacs to be well Emacs and prelude as opposed to many other configs fits that description perfectly. A huge thanks to bbatsov for saving countless hours of configuring.

Have it tried Doom Emacs? If so, what do you prefer about Prelude over the former?

He did say that he prefers Emacs to be Emacs; Doom Emacs is more of a vim-in-Emacs, isn't it? That's probably a very good thing (were I starting out, I would probably use Doom or at least Evil mode), but for those of us used to the Emacs bindings it is a chore to switch now.

Well in my case I prefer prelude because it seems like what it really is: a curated set of Emacs settings and configurations.

Doom or Spacemacs really transmogrify Emacs into VSCode or whatnot -- I feel like I'm losing control of my Emacs config as they have layers and layers of elisp.

I use Doom without the vim. Comment out one line of the default config and you retain all the niceness of doom (good defaults, fast loading) but with standard Emacs bindings.

Not author, but I used Prelude for a long time and swapped to Doom a couple years ago and far prefer Doom's approach.

Doom is just a git repo you check out into .emacs.d. It has no state other than updating your git repo to update Doom, and some cache files that can be removed at any time. It's way easier for me to reason about what's going on and to tweak things to my liking, and to have a consistent experience across multiple machines. You can run one command 'SPC-h-d-m' to go directly to the source code of any doom module and edit it and view what it does.

It's not perfect (far too many regressions IMO across versions), but for the first time I feel like I have a super productive Emacs that I can actually grok and modify as a non-Emacs master.

You're welcome! Thanks for the kind words!

I’m a Vi user for over 20 years now. Though, I only know the very basic of Vi to edit config files. I have tried several times to use Vi for as a general editor for programming (with plugins) but didn’t feel intuitive with it. I guess the obscured key shortcuts are putting me off. For some reason, I got hooked to emacs after using CiDER for Clojure. I feel like the shortcuts problem in emacs is just a facade as everything is bound to a function! What a revelation it is. I would give prelude a try because it doesn’t try to force push Vi mode in emacs.

To be fair inputs in Vim can also be bound to a function call. In large parts it's just a different scripting language. After trying both for a while I'd say Emacs and Vim mainly have more very different approaches to the same goals. I never really loved Emacs but I do appreciate its better scripting language(imho) and more robust syntax highlighting.

Wait for Neovim tree-sitter powered syntax highlighting!

Happy user here.

I used to have a large messy emacs config.Not anymore.

Not a full distribution like Spacemacs or Doom. Just vanilla emacs with everything I need!

I don't know much about Prelude, how many lines does your ~/.emacs have? (don't worry about excluding whitespace)

My vanilla .emacs only has 321, but I'm mostly just using org-mode and org-roam with a couple of extras.

Tangential question, but what has happened to the guile conversion? Is it something that the Emacs project aims to upstream?

There's some info on https://www.emacswiki.org/emacs/GuileEmacs but no definitive, recent "current state" section.

Prelude helped me start using Emacs around 8 or 9 years ago; it certainly got me up to speed and productive (once I disabled guru-mode ;) )

My .emacs.d is still technically a fork of Prelude, but I've gradually been replacing parts with use-package, since that seems like a more lightweight, generic, declarative, modular approach to Emacs config these days.

it sounded like you're are actually describing this package manager: https://github.com/raxod502/straight.el

This made getting started with emacs so easy for me, long ago now! Thanks and congratulations!!

Prelude is what really got me into Emacs. It was a just barely decent experience using Emacs, but once I got prelude it really opened up Emacs up for me. It sets you up a lot better for success.



I love Prelude and have been using it for several years. Thanks for all you do!

You're welcome!

> [it doesn't enable] evil-mode (vim keybindings) by default

Is it easy or in any way advisable or otherwise a good idea to use Emacs with Vim keybindings---coming from a Vim background?

Just bite the bullet, take the month it will take to get used to Emacs and jump in.

Sorry to ask for a clarification, but do you mean with or without Vim keybindings?


The advice you'll hear most often, these days, is to start with Doom emacs. Spacemacs is another option, you'll have to do some digging around to figure out why one vs. the other; all I know is that the energy around 'vim keybindings for emacs' has shifted to Doom.

The advantage of using one of those over something like prelude + evil, is that the whole community tends to use the vim bindings, so all the supplementary material is oriented toward that sort of input, and your chances of getting questions answered goes way up.

evil-mode has been around for a long time, and I think there are plenty of people who use it. I do not, though I've been tempted often because my primary job role is sysadmin and I used vim before I used emacs. At this point I'm more comfortable with emacs keybindings, and the nightmare is switching between the two.

Most often I just use TRAMP now for remote editing, instead of trying to switch between vim and emacs throughout the day or installing emacs on all of my servers.

At the same time, that's another reason I haven't yet tried evil-mode: it's such a massive change to the defaults that I worry I wouldn't be able to use a vanilla install of emacs successfully. But I guess I would be able to use vim instead. I probably overthink these things.

I'm not sure, but it seems very popular at the moment. Both Doom and Spacemacs use vim keybindings and are extremely popular.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact