What does HackerNews think of doomemacs?

An Emacs framework for the stubborn martian hacker

Language: Emacs Lisp

#2 in Emacs
#7 in Vim
And with opinionated configurations, you can be up and running with a good configuration in minutes:

https://github.com/doomemacs/doomemacs

I'm not an old greybeard (in my 20s) and I solely use Emacs. What's "modern tools"? Emacs has everything; with the Language Server Protocol it is exactly like VS Code and the like, with autocomplete, find definitions, native tree-sitter support. It can even read PDFs, images, man/info pages, browse the web. I don't see any advantage that VS Code has over Emacs.

PS. Try Doom Emacs and evil-mode:

https://github.com/doomemacs/doomemacs/

What I do is:

1. Install Emacs

2. Install Doom (git clone + run a command): https://github.com/doomemacs/doomemacs

3. space g g to invoke magit

Also Doom Emacs, which is really stable (pins dependencies), fast and has great defaults:

https://github.com/doomemacs/doomemacs

Also, don’t use pinky for controls —— home row mods all the way.

You can try Doom Emacs if you want a solid starting point. (https://github.com/doomemacs/doomemacs). Emacs is so idiosyncratic compared to a lot of modern stuff people are used to, starting with a base like this may be a little easier than trying to do it from the ground up.
If you're a vim user but interested in trying out Emacs, I'd highly recommend Doom Emacs: https://github.com/doomemacs/doomemacs. I had been using neovim as my main editor for a while, but the vim bindings (evil) in Doom Emacs are excellent.

It was a lot to take in at first, so I went back to neovim. But I started using org mode more and more until I finally just went all in on Emacs. Now I understand that the editor war is pointless. Bringing vim + emacs together is bliss.

DOOM Emacs addresses this issue (and is an incredible, if opinionated, Emacs “platform”): https://github.com/doomemacs/doomemacs

> Gotta go fast. Startup and run-time performance are priorities. Doom goes beyond by modifying packages to be snappier and load lazier.

> What both Emacs and Vim have in common is an intimidating learning curve. You can't just dip your toe in.

You kinda can, these days.

One of the main issues is that Emacs is, out of the box, the most complete toolbox you'll ever see, while at the same time being very incomplete. You have an email client, spreadsheet, unit converter, ASCII drawing, debugger, file explorer and so on and so forth. Meanwhile, you open a Python file and you are lacking a bunch of stuff that the likes of VSCode have out of the box.

So the solution is to customize, and that takes an inordinate amount of time.

Thankfully, some other people have solved this for us:

https://www.spacemacs.org/

Spacemacs has VI commands by default - and I don't mean just the simplest keybindings like some VI emulators do, it's using evil-mode and it's pretty good. It can also be used in 'holy' mode (Emacs keybindings).

There's also(the one I use):

https://github.com/doomemacs/doomemacs

Either of these will get you a much more modern Emacs experience out of the box. You may need to add packages (it wouldn't be feasible to add all packages that everyone could possibly want), but they make it easy. Even though Emacs now comes with a package manager, it doesn't have any opinion on how you configure things. Both Spacemacs and Doom Emacs are opinionated, and that's a good thing.

Sure, you still need to learn concepts and keybindings. Thankfully, there's no shortage of tutorials, and Emacs own built-in documentation is very good. It also has a built-in tutorial, which is how I learned.

Because of the steep learning curve and troubleshooting associated with it, I've become more hesitant in recommending Emacs. However for the curious, the video Getting Started in Org Mode [1] which is a great demonstration on Emacs and Org Mode's potential as an organizational tool. Anyone still curious and would like to smooth out the learning curve, I'd recommend using an emacs starter kit such as Doom Emacs [2] which has a lot of OOB functionality without having to immediately learn Elisp.

[1] https://www.youtube.com/watch?v=SzA2YODtgK4

[2] https://github.com/doomemacs/doomemacs

There is a very opinionated and batteries-included "Vim-y" Emacs called Doom [0]. A decent way to approach this if you don't want to start writing elisp outta the gate to have fancy editor features is to learn enough of the Doom config to tweak it to your liking, then add some elisp customization in as needed. I personally use this approach, usually cribbing config and elisp tweaks from the top contributors' configs.

The Evil layer that Doom and most everyone seems to use for Vim modes works really well, and has a lot of ways to tweak things (e.g. changing `j` to `gj` for going through line breaks in normal mode; I forgot what that setting is called...).

There is something to be said by bootstrapping your config entirely from scratch instead of using a "config framework" like Doom, but that can be too daunting and end up preventing one from trying things out.

[0] https://github.com/doomemacs/doomemacs

I use emacs with evil and been using it for over a decade now. However, I use VSCode for web development and Rider for game development as the integrations are superior with vim extensions for those IDEs. What you are looking for is a set of principles that make theses editors better. You can take baby steps towards it and 1 - 2 weeks is very limited time if you want to change your editing style (It's like learning a new language).

1. Modal editing (VIM / Evil): Install vim extension pack[1][2][3] for VSCode. This should give a good starter pack.

2. Practice:

   - Disable the arrow keys using keymapping in VSCode or with a keyboard customization (s/w or h/w).
   - Disconnect the mouse
   - Practice long writing / code editing sessions where your productivity doesn't matter. You are learning.
   - Start with simple navigation (hjkl, go to line)
   - Use numeric prefixes
   - Begin using text manipulation commands (yi" or di> for  example)
   - Use normal mode keys for window navigation (spc + w + h for example)

   Once you get comfortable with this you should already see a decent leap in comfort/experience and almost zero mouse usage.
3. Next install emacs with a configuration repository[4]. Most of your practice in VSCode vim should apply almost directly.

4. With emacs, you have a vast operating surface. You can choose to use it just as your editor or you can use it as an operating system: email, calendering, note taking, calculations, twitter, rss, text based browser, file manager, http request playground etc. Org mode is essential emacs experience. You can add the rest of them very slowly

[1]: vscodevim.vim: https://marketplace.visualstudio.com/items?itemName=vscodevi...

[2]: vspacecode.vspacecode: https://marketplace.visualstudio.com/items?itemName=VSpaceCo...

[3]: vspacecode.whichkey: https://marketplace.visualstudio.com/items?itemName=VSpaceCo...

[4]: doom emacs: https://github.com/doomemacs/doomemacs

I found Obsidian great, so if this reaches near feature parity and allows me to stay in the terminal, it's a great upgrade already.

Recently though I switched from vim to Doom Emacs and started learning org-mode. This turned out to quite literally be a career breakthrough for me, as I realized how much easier it is with both to remain productive throughout the day and to manage my personal knowledge base, or second brain.

I'd highly recommend everyone to try DE out [0]. I always thought Emacs to be unnecessarily complex, but majority of it is hidden away in special features. DE, especially for vimmers, delivers a lot of very useful IDE-like functionality out of the box, simplifies the hotkeys, provides stellar configurability and, in my experience, just lets fingers flow more smoothly across the keyboard.

Org-mode by itself may seem daunting as well, but it turns out to be designed in a similar fashion - take and use what you need, no hidden complexity or other strings attached. I can recommend Distrotube's tutorials on either [1].

[0]: https://github.com/doomemacs/doomemacs

[1]: https://www.youtube.com/watch?v=Ea_-TaEGa7Y

What has helped me with the consolidation is the ubiquity of my preferred key bindings. I use vim keys with spacemacs like bindings.

On emacs, doom-emacs[1] gives me the bindings. On VSCode, VSpaceCode[2], on Jetbrains Rider, Intellimacs[3]. While there are minor differences between the implementations, I have very limited friction when switching between IDEs.

I have paid for the Jetbrains ultimate subscription as I also use DataGrip. I think I’ll be satisfied with the current version of their IDEs for the next 2 years even if I decide to cancel the sub.

[1]: https://github.com/doomemacs/doomemacs

[2]: https://vspacecode.github.io/

[3]: https://github.com/MarcoIeni/intellimacs

I also bounced off multiple times but have now been happily using it for 2 years. I really reccomend trying Doom Emacs and learning the default VIM modal editing. Doom comes with sane defaults and very simple configuration presets for every language out of the box. Learning modal editing pays off quickly.

https://github.com/doomemacs/doomemacs

Doom Emacs is a better alternative IMO (having used both extensively).

https://github.com/doomemacs/doomemacs

Doom emacs[1] also uses straight.el and has been a pleasure to use for the most part.

[1]: https://github.com/doomemacs/doomemacs

Yeah, but when everything lives inside the same Lisp environment, there is no need for glue. You have variables and functions, all with built in documentation, that are easily composed.

Vim, on the other hand, appears to conspire against the user's attempts to build reusable configurations. One plugin may require Neovim. Another may require the Python runtime to be configured and installed. Vanishingly few of them have built in keybinds, and those that do are not guaranteed to be harmonious with other plugins. And besides, should I write my config in vimscript or Lua?

It might sound like I'm picking nits, but I don't find it coincidental that the best configurations that people have managed to build have been upon the strong bones that Emacs provides. Doom Emacs (https://github.com/doomemacs/doomemacs) is best-in-class, providing harmony between all of the built in modules and their bindings. I uncomment a line in a config file and get full Python support, with refactoring and formatting and such, ootb. This ends up being true for a shockingly long list of languages and tools.

On the Vim side you have https://github.com/NvChad/NvChad which appears to no longer be accepting new plugins and https://github.com/LunarVim/LunarVim which appears to provide a really good programming experience but is limited in scope to a handful of core plugins and whichever LSP servers they can get their hands on.

I used to use Neovim and compose everything together by hand as well. I don't see why I should bother today when Doom Emacs provides the same experience I would have built for myself, out of the box.