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'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.
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.
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.
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.
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 found this one https://sr.ht/~ashton314/emacs-bedrock/ and has been using that (with some of my own mods for development) but a really good base to build on
Only emacs 29
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?
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.
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).
My answer for op is use Doom, I personally think it's more polished and the best end user experience with someone not so experienced.
And now, a rant for why I completely disagree with people here who just recommend Vanilla. Starter kits are there for a reason. It is painfully hard for a new user to start out on GNU Emacs and get everything they want running and if they are not patient, they will outright quit.
I tried it and quit in less than a month. Then I tried Spacemacs and I loved it. I used it for a few months and then I wanted to customize things my way more and used vanilla, which is what I've used for the past 3 years. Right now, I wouldn't use a starter kit even if I was paid to do so, because my vanilla config has too much stuff I like and the premades have a lot I don't like. But I would never have become a power user if I didn't start from a starter kit. Just because you guys use it (and you do well to do so) doesn't mean it's beginner friendly. In my opinion, it's one of the most beginner hostile pieces of software out there. And I love it and wish they never change that, because being the blank canvas it is, it allows you to make virtually anything in it. But that's once you learn the basics and it doesn't slow you down just to use.
I used vanilla emacs for 7 years before trying out both spacemacs and doom for a few weeks. But moved back to vanilla with my own config since I learned little elisp by this point. I would suggest emacs starter kits that don't deviate too far from vanilla.
If OP is looking for an editor with nice defaults and nice customization then I'd agree, use Doom Emacs.
If you have very specific preferences, or simply play around and have fun a bit with editors and tooling, then going with vanilla is the best option.
And now, a rant for why I completely disagree with people here who just recommend Vanilla. Starter kits are there for a reason. It is painfully hard for a new user to start out on GNU Emacs and get everything they want running and if they are not patient, they will outright quit.
It is painfully hard for a new user to start out on GNU Emacs and get everything they want running and if they are not patient, they will outright quit.
I don't know man; I started some 20+ years ago with vanilla and for the first like almost 20 years I had no more than perhaps 20 - 30 lines of elisp in my .emacs file.
I used it so until some ~3 - 4 years ago when I got more interested in Emacs and started to learn Elisp and tinker around with it.
+1 I switched back and forth between doom and spacemacs for a while. At the end, I stayed with doom for its simplicity and nice defaults. The development restarted after a long pause, and nice things are planned for the future.
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.
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.
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.