I've learnt vim and have a good setup for programming already. I started learning/using emacs recently enticed by all the features I hear about. I think I'll need to spend some time with it to utilize it efficiently.<p>Is learning emacs worth it? I see hardcore emacs users complaining about how bad e-lisp is and macros causing RSI.
> Is learning emacs worth it?<p>Yes.<p>Especially now that you know vim. Using evil mode, in combination with leader keys (see Doom Emacs or Spacemacs) resolves the RSI issues that have caused emacs users so much trouble in the past.<p>A lot of folks will tell you that learning and using emacs will not make you a better programmer. I disagree - it will certainly make you a better programmer if you put the time into learning it.<p>Why? Not because it's magic or will make you more productive than using something like VS Code. It is not magic, and it won't make you noticeably more productive than someone using VS Code.<p>The reason emacs will make you a better programmer is that it really pushes you out of the "consumer" mindset and into the "creator" mindset.<p>When using something like VS Code, if something doesn't work the way you like, your first instinct is to look for an opaque plugin written by someone else. Or, not finding a suitable plugin, you just get frustrated and bend your work flow into what the good folks at Microsoft think it ought to be. In this scenario, you're a passive consumer, waiting for microsoft or others to solve your problems.<p>In emacs by contrast, the functions and documentation of the <i>entire program</i> are at your fingertips. You can read through the entire code base, change anything you like, or build new features that integrate seamlessly with the rest of the program. While this may seem like an academic point for nerds, it really isn't. What it means is that when something doesn't work the way you like, over time your first instinct is to read the documentation of whatever you're dealing with then code some new fix or feature.<p>This by itself is not a huge advantage. But what is a huge advantage is developing that creator mindset where your first instinct is to dive into the code and improvement rather than googling for some new feature that you hope someone somewhere built.<p>Emacs is certainly not the only way to develop this mindset, but it is a really good way and one I'd recommended.
"Should"? It's up to you. If you're interested in it then go for it. My suggestion is to:<p>1. Run through the tutorial (built-in)<p>2. Try out org-mode<p>3. Try out magit<p>I've been using emacs for 20 years, but those two things are what will keep me using emacs, even if I pull up another editor or IDE for programming sometimes.<p>4. Try out evil-mode for vim keybindings (since you already know vim).<p>elisp (no hyphen) isn't bad, it's actually a decent lisp (this part is opinion) now that lexical scope are the default instead of dynamic scope. Performance has improved with the recent work to add JIT compilation, as well. I really have only two gripes about the language, but they aren't going to stop me from using it: I wish elisp had real modules/packages for namespacing things, and that it had better concurrency support.<p>I don't get the RSI thing, you do use control a lot, but I found mapping that to caps lock made it a lot more comfortable, plus I never use caps lock as caps lock anyways. But if you switch on evil-mode, you'll avoid most of the chords while editing text anyways.
Really only you can answer that question. If you're curious enough, take a deep dive some weekend and see if Emacs is right for you. As for how bad Emacs Lisp is, it's really only bad <i>compared to other Lisps</i>. And this can be mitigated by enabling lexical scoping and using some of the Common Lisp features that have been ported to Emacs Lisp. It's still a tremendously powerful environment to program in.<p>That said, I don't really recommend Emacs for new programmers. The reason why is because ecosystem is pretty much the only thing that matters in computing, and the ecosystem has chosen a winner: Visual Studio Code. Your coworkers are likely to be using Visual Studio Code, and it has better support for any non-Lisp programming language than Emacs does, even with Emacs's LSP support. If you want to be productive and efficient as a programmer, Visual Studio Code is hands down the best choice as an editor.
I'll go against the grain. Probably not. If you already "have a good setup for programming already", then I think the gains in productivity for you would be minimal, and you might even lose productivity with the time it takes you to transition to Emacs.<p>I used Emacs for a few years. At first I just used it as a TUI text editor. Then I started using it as an GUI IDE, browsing the web, as a full blown window manager/desktop environment with exwm...the thing that happens with Emacs, is that once you start using it for one thing, you start using it for <i>everything</i>, even when there are better options available. You might end up boxing yourself in. Personally, I am more happy using the wide world of programs available out there that aren't written in Emacs Lisp.<p>But if it's for fun, then do what you want, y'know?
I’ve spent way too much time “learning” emacs! lol<p>A better option would be to define your goal with emacs and then learn that. I use it for plaintext finances and learned enough lisp to get it working the way I like it and it’s been an amazing experience!!<p>The pitfall of “learning” emacs without a goal is that you won’t know when you have reached it, how far might you be from reaching it and so on. Do you know emacs when you can write elisp fluently? When you use org mode for everything? When you have replaced every other tools for emacs?<p>Emacs is a really fun tool with ridiculous amount of power, so enjoy the journey but get/make a map! It transforms aimless wandering into a journey :)
I’ve fallen into the trap before of spending more time configuring my development environment then writing code in it. So I’d suggest you focus on what you’re comfortable in. If you’re finding specific complaints about your existing set up then by all means try something different. But if you’re happy but just experimenting because someone recommended something else, we’ll that might just be unfocused energy that’s better used elsewhere.
It’s probably worth doing the basic tutorial. The move around the editor commands (control A, control E….) are used on a lot of Unix command lines(bash etc)<p>I like the emacs editor, but hardly use a large portion of its functionality. I like the macros (f3 to record f4 to playback)
No need to ask other people about that.
Just have a weekend learning Emacs + Lisp and make your own opinion. This configuration (<a href="https://github.com/susam/emfy" rel="nofollow">https://github.com/susam/emfy</a>) is a great start. If you like it - use it, if you don't - throw it away.
Also, you don't have to fall into a trap of configuring Emacs, well known hackers uses the bare minimum of it and are highly productive.
If you're afraid of RSI, you can quickly change default bindings using, for example, Xah-Fly-Keys, or Evil if you're into Vim bindings.