- IDE-like features via LSP
- The best git porcelain out there: magit. Even when I'm not using emacs, I come back to magit for code-browsing (recursive blame) and staging hunks.
- Emacs/vim's fantastic buffer/window concept, where open files are not owned by their windows. I miss this whenever I use anything else.
- project support to quickly grep across all files or jump to files
- Very mature vi keybindings, with their infinite composability
I still sometimes find that it's either too rigid or too manual at certain things, but I could say the same for CLion and VSCode. I still come back to CLion for its refactoring tool, the 3-way merge window and the debugger integration.
It is a bit messy though. It's very well done for what it is, but it's cobbled together from many disparate components. It seems that it should be possible to create the same type of experience from a simpler, more coherent system. I rarely update the base system, but when I do, I've occasionally had to google for some exotic elisp error and add a fix here or there.
Why is this useful? I basically treat my nvim buffers like windows. What am I missing?
[1] Why can't we just delete the extra file after we recovered the .swp!
oh hell yes!
But, now I realize this is a very powerful configuration of Emacs if and only if you prefer using the VI keybindings.
It looks like spacemacs is that as well.
I actually enjoy Emacs keybindings, and would like to find something as polished and supported as Doom, but without using VI keybindings.
Does anyone know where I should look for that?
Or, can I revert to emacs keybindings in Doom and use the rest of the amazing features? I'm concerned I might be swimming against a tsunami if I try to do that and would be better off finding another project.
https://emacs.stackexchange.com/questions/53319/how-to-disab...
See https://github.com/doomemacs/doomemacs/blob/master/modules/e...
There's also prelude which doesn't include evil by default. Not quite as fully featured as doom/spacemacs, but it's a good place to start.
All that said, you could just set it up from scratch. Now that lsp-mode and dap-mode are things, you can setup a fully featured IDE in not very much config at all. I have everything in my init.el and setting up projectile, lsp-mode and dap-mode which is like 85% of what you need for a fully featured IDE. That bit is only about 30 lines of config. Throw in flycheck, company-mode, hydra for keybindings. maybe treemacs for a project view.. a few hundred other lines to make it not all look like trash....
On second thought, it's kind of a pain in the ass. Just use clion or vscode or something.
Can't I beg you to share your init.el? I want LSP and the other stuff but Doom even when turning off evil mode seems to far away from the emacs I'm familiar with.
https://pastebin.mozilla.org/mShC6Dm0
I'm still using evil mode. Most of my important functions are bound to some combination off space bar though.
It's certainly not perfect and has some "quirks" (or bugs if we're being honest), but it works pretty well.
Unconfigured Emacs is a bit clunky, but you'll understand it a lot better if you configure it yourself. Also, just in my opinion, there are better options than the packages supplied by Doom.
My suggestion is to set up Emacs with use-package for package configuration (this will be in Emacs 29 anyway), and then you can easily play around with different package combinations.
I'd add a nice-looking theme first of all, then try adding the following modern packages, one at a time. Play around with them a bit before adding another so you know what they do.
Vertico - visual completion UI (selecting files, buffers, commands etc.)
Orderless - user-friendly completion framework
Consult - search and navigation commands
Embark - contextual actions
Marginalia - fancy completion decorations
Magit - nuclear-powered Git framework
Eglot - lightweight LSP functionality (will be in Emacs 29)
...that gives you a powerful selection of features that play nice together and you can easily build on.
https://gitlab.com/gshulegaard/my-emacs
Disclaimer: This config is a bit perpetually dusty at this point, so I wouldn't copy it verbatim but instead use it as inspiration for some packages that might be worth looking into. JFYI anything that is from Marmelade might be worth avoiding as I suspect it is unmaintained given it's SSL cert expired in 2018. I just haven't gotten around to removing it from my config.
Emacs has a high barrier of entry though. I think it would be difficult for a novice to get a good IDE experience from emacs, even with doom.