I know that here was the same question. Which one should i use if i want to forget all vim keys and use only emacs features(no evil mode), i want to use only emacs, no vim anymore!
I started with vanilla emacs and have stayed there. That way, you learn all the original controls and options. Then when you’re ready to configure it to how you want it to work, you can pick and choose what you want.
I’ve tried both for about 6 months each - it was a decent way to discover new packages. I lean towards spacemacs (I had less problems) just be sure to use the development branch. In the end I dusted off my old config and started adding the packages I liked. Troubleshooting doom or spacemacs is harder than plain emacs when something is misbehaving (better docs, larger community). I’d als suggest using emacs 29, feels a lot more snappy that 28 and use-package is pretty nice.
Check out system crafters guides on emacs on YouTube when you decide to start rolling your own configs.
GL
Doom with evil is pretty great so I wouldn’t give up vim bindings entirely. I haven’t used spacemacs before but I really love the doom workspaces setup, it’s really nice if you work in multiple repos often.
Just an observation.
In the responses to the question here, there is close to zero actual comparison of Doom and Spacemacs features or behavior, or mention of specific benefits of one or the other.
Most of the response content is essentially voting - rooting for the colors of one team or the other. Maybe OP finds that that helps somehow; maybe not. (If it does, what a pity.)
Dunno what this indicates. Maybe it says something about Reddit, or about the nature of such questions, or about Doom and Spacemacs fans?
I really don’t know. Just a weightless observation. And maybe after I write this it’ll (hopefully) be proven wrong.
I never tried Doom or Space. A lot of people are kind of hyping about one or the other, but I know the ethology of Emacs community fauna and it should be taken in a way more relaxed way. What are the pros/cons/features compared to “vanilla” and each other?
Neither. Use basic emacs, do the tutorial, look at package managers. I recommend straight
Gonna up for the Doom, it’s way more Emacs than Spacemacs
Just an observation.
In the responses to the question here, there is close to zero actual comparison of Doom and Spacemacs features or behavior, or mention of specific benefits of one or the other.
Most of the response content is essentially voting - rooting for the colors of one team or the other. Maybe OP finds that that helps somehow; maybe not. (If it does, what a pity.)
Dunno what this indicates. Maybe it says something about Reddit, or about the nature of such questions, or about Doom and Spacemacs fans?
I really don’t know. Just a weightless observation. And maybe after I write this it’ll (hopefully) be proven wrong.
Try them all out and decide for yourself
GNU Emacs is configurable for a reason. Don’t use those complete garbages.
The configuration should be made by you. It’s really not that hard, just start from the tutorial.My vote goes to Spacemacs. Doom is fine and comparing them is not very useful because they give you by default almost the same packages.
Not only that, they also don’t restrict you to add more packages, you can totally add all Spacemacs packages to Doom and all Doom packages to Spacemacs.
Why Spacemacs then? Because it does in my opinion more heavy lifting than Doom. Examples:
Doom doesn’t turn off the quit dialog of Emacs by default, Space does
Space adds more shortcuts through auto-evilification than Doom (notably Space gives a bind to org-time-stamp-inactive and Doom doesn’t)
Space has a little better documentation than Doom; some packages in Doom have pages but lack configuration and usage sections
Now, all of these can be addressed in Doom, but Space wins for me because I don’t have to do the extra steps. And if you’re going to make me learn your way of configuring emacs, I want you to then do more work for me so I just add a few packages, change a handful of variables and I move to learn the shortcuts.
Honestly, start with Doom to just get a feel for emacs. Eventually, you might get annoyed with some of its limitations when it comes to customizing your setup.
By the time you reach that point you’ll have an idea of what can be done with emacs and this is where you finally make the switch to vanilla.
You can even make it so you have your vanilla stuff in a separate folder, so you can make it more usable bit by bit, while still having access to doom.
I’m curious, what are those limitatiins you mention in doom emacs?
Emacs 29 introduced the
--init-directory
command line option, so you can have completely different Emacs instances that don’t interfere with each other, loading different modules, ui and what not. You can simply create a shell script for each one and play with different flavors of Emacs. I’ve done it for example when I changed my completion system from ivy to vertico to see if I liked it (I did).
Doom all day. Spacemacs often very brittle, and it’s always slow.
I started with Spacemacs, and became captivated with the idea of Emacs, but then I became overwhelmed by all the layers upon layers of complexity that were in Spacemacs. I’m the kind of guy who, when I have a problem to solve. I Google it. I don’t like reading documentation full of other jargon that I have to look up yet again endlessly. So when I Googled my questions, I found people asking in plain English the kinds of problems I had, and people answering with the correct terminology that I hadn’t heard before, but I was still lost in applying that new info for a Spacemacs config. Heck, I often found people asking for help here on this subreddit for their Spacemacs config, and mostly when I found was people pointing them back to their own Spacemacs community for support since Spacemacs is almost an entirely different beast than Emacs as far as troubleshooting goes.
Then, I heard about Doom Emacs. It started up faster and was easier to start being productive in it sooner. It didn’t have the feature set of Spacemacs, but that was fine. I just wanted a stable base to work off of that didn’t have the insane defaults that vanilla Emacs has. The learning curve for Doom Emacs was much shorter than Spacemacs. The syntax for configuring various parts of an Emacs config is basically the same as vanilla Emacs but with adding an “!” at the end of a bunch of things, which allowed for mostly optional extras. And once I got used to the fact that, when I wanted to install a package, I’d first check to see if it is mentioned as a commented-out line in my
init.el
file. If not there, then add it to mypackages.el
file with no configuration there, contrary to how most package installation instructions seem to show that you can configure the package in the same place where you install it. All package configuration happens in theconfig.el
file. Doom Emacs does handn’t keybind configuration a bit differently than vanilla Emacs, but once you set up a few of those in yourconfig.el
file, then it’s easy to continue following your own example from then on.Other than that, I’ve found that by using Doom Emacs, I can better make sense of vanilla Emacs questions and answers I find online. But with Spacemacs, I always felt like I was isolated and on my own unless I wanted to post a question to the Spacemacs community specifically and wait.
I started with Spacemacs. Switched to Doom. Switched to my own vanilla emacs for a year or two then went back to Doom.
I find Doom’s defaults well thought out. It just works (insofar as Emacs just works). It has sane default bindings and I can just use emacs to get my job done. There’s nothing inherently noble about rolling your own config or choosing a particular kit. Just try them out and see which you enjoy.