
Ask HN: Would you recommend someone to learn Emacs now? - aryamaan
I use JetBrains products for the development. I was wondering if it makes sense to learn and invest time learning Emacs (or vim).
======
btschaegg
I think for both Vim and Emacs the decision comes down to this: Do you intend
to _invest_ in your editor? Not only in the sense of investing time to learn
their idioms and acquire some basic muscle memory, but also to configure it to
your liking.

Both Emacs and Vim are usable in the default state, but there's much much more
you can get out of them. As opposed to most IDEs, which usually have one
proper way to use them, both Vim and Emacs thrive on configurability. On the
flip side, that means that you're going to spend time setting up and
maintaining your config. If that's not something you can endure (or even
enjoy), you might want to leave it be.

As far as I can tell, that's also the main reason both are often overlooked in
CS classes: The goal of most professors teaching programming is to actually
teach you a language, not explain an editor for a couple of weeks.

~~~
skinnymuch
Isn't the initial learning curve the biggest time suck? I don't know either
besides some basic vim commands. But seems like learning vim to the point of
it being second nature would take up the majority of time.

~~~
btschaegg
That's one way of seeing it. You'll have to keep in mind, though, that you
don't need to learn hundreds of Vim commands to be as productive in writing
text as before - that's actually rather easy to achieve. So, for me, it
doesn't seem like a timesink that much because anything past that point will
speed you up. Hacking around in my Emacs config (I'm an Evil user) on the
other hand _does_ eat up time. I don't know if it wouldn't be as bad if I
wasn't annyed with minor things not working exactly how I want them to,
though.

Edit: I'd also say that Vim bindings are something where "learning by doing"
is the best way to get going, and I'd assume the same applies to Emacs
hotkeys. If you want to use them effectively, you'll want to develop muscle
memory for the most common actions, so they are a great thing to pick up while
you're actually working on stuff.

~~~
skinnymuch
Sorry for the late reply. But thanks for your response.

------
shimon
I've used emacs for about... gosh, 18 years now since I first learned it in
1999 in my high school AP CS class.

I'd say the main benefits of learning emacs or vim today are:

1\. Exposure to the history of systems they embody.

2\. Experiencing the philosophy that customizability should be a key
characteristic of your tools and work environment.

For the first, deep use of emacs will teach you about using lisp in a non-
academic way; self-documenting systems; modularity; maybe even the unix
command line. Oh, and the indisputable fact that your caps lock key should be
remapped to Ctrl. :)

For the second, you have a fair bit of customizability in JetBrains but it's
nothing compared with emacs or vim. In both of those there is incredible power
to modify the behavior of the environment, and the incredible range of ways
this power has been applied is a testament to its design.

------
speedplane
They taught us Emacs in college... it was clear from the beginning that this
was an ultra nerdy and powerful editor and that the "serious" nerds should use
it. I drank the cool-aid and used it for a while, but when I graduated I
didn't use it again. I just started using what my co-workers were using. I
suppose that makes me a bit of a follower on editors, but in my mind, I don't
care, I don't get excited about editors.

My advice is to use what everyone around you is using and focus on making cool
stuff.

------
hackermailman
Xah Lee, infamous troll of comp.lang.lisp has a great emacs page
[http://ergoemacs.org/emacs/emacs.html](http://ergoemacs.org/emacs/emacs.html)
or the mini-manual [http://tuhdo.github.io/emacs-
tutor.html](http://tuhdo.github.io/emacs-tutor.html)

I avoided starting w/Spacemacs or Prelude defaults but you may want them
[https://github.com/bbatsov/prelude](https://github.com/bbatsov/prelude)

Emacs you'll find most productive if you live in it, so aside from development
where you get your SQLI shell or whatever, also using magit, using pdf-tools
to read papers, reading project mailing lists, using org-mode for billing if
you're a freelancer, scripting your shell (and now your packages too
[https://alezost.github.io/guix.el/](https://alezost.github.io/guix.el/) )
ect.

~~~
brudgers
The _ad homimem_ is irrelevant and unwarranted.

------
rekado
I do recommend Emacs for when you are not only looking for an editor. A while
ago I wrote up why I really enjoy using Emacs:
[https://elephly.net/posts/2016-02-14-ilovefs-
emacs.html](https://elephly.net/posts/2016-02-14-ilovefs-emacs.html)

------
itamarst
[http://spacemacs.org](http://spacemacs.org) is Emacs setup that supports both
Emacs and Vim keybindings, and it's quite nice.

On the other hand, JetBrains tools are supposed to be very nice.

I'd say pick one thing and learn it well.

------
thecupisblue
I'd say learn Vim. I also use JetBrains products for development, but can find
my way around vim and can set it up to my liking. The skill has been a pretty
nice timesaver for both me and my colleagues when they need to do something
with it.

------
top256
If you do lots of console works (e.g. script shell, Linux system stuff), learn
emacs or vim.

On the other hand if you're a front end Web dev or an Android dev there is
probably not much point except from a curiosity point of view

~~~
mod
As a web dev who does about 40% front-end, I find vim just as useful there as
I do for all he other dev work I do--which is very, very useful.

I have no particular reason to want to jump into an IDE, which I imagine is
what you're recommending instead. Vim acts as my IDE without much effort. I
have a linter, syntax highlighting, etc.

I won't sing the benefits of vim here since they should probably be well-known
in this thread, but editing code without vim movements is, to me, a nightmare.

I'm not sure what you think would be different in another editor.

~~~
top256
That makes sense. Thanks for your perspective.

------
brudgers
Emacs does some things better and some things worse. There is no Silver Bullet
or free lunch. Language support is one of the things it does better than your
favorite IDE. If you want to write code in Graphviz's Dot and Standard ML and
Erlang and Clojure and C and Python with a consistent user interface, Emacs is
a viable option.

Many IDE's also provide Emacs-like keybindings as does Bash by default. The
ability to maintain a consistent user interface may or may not be worth the
Emacs learning curve. Org-mode is another thing that may or may not be worth
the curve.

Good luck.

------
rmurri
Yes and no. I generally don't recommend emacs to everybody by default because
I've come to realize it's not what everybody wants. Until people _want_ to
have a powerful, customizable editor I recommend something pretty and user
friendly. Perhaps sublime text, where they can ease into being productive.

That said, I do definitely recommend it to people on a case by case basis
(Power users, command line gurus, mouse haters, etc). Those who make it over
the initial learning hump tend to really love it.

------
bjourne
Yes. If I had to give any advice to young programmers it would be these: 1.
Learn to touch type. 2. learn to code in Python. 3. Learn emacs.

~~~
ekr
replace python with haskell, and emacs and vim, and i'm with you.

------
auganov
Not sure. One part of me wishes I hadn't. Once you get used to emacs, working
in other environments will get rather annoying. Don't think it makes me that
much more productive either. Not to mention the days and weeks wasted
customizing it.

I won't be quitting anytime soon, but wouldn't recommend it either.

------
swah
Only if you want to learn about the greatest piece of extensible software.
Most software written nowadays doesn't have the same objectives as Emacs.
Emacs unfortunately gives me RSI.

------
e19293001
Yes. Learn how to use emacs and use org-mode to organize everything. Also, the
best way to learn emacs is to use it everyday. Emacs lisp is a powerful
programming language too!

------
rurban
Sure, it's getting better and better, with more exciting functionality builtin
and just working, which was in the previous decades just optional and
unstable.

------
chetanahuja
Yes. Emacs has the wonderful property of one time investment in time and
learning curve that pays off over years to do all sorts of code and non-code
editing.

------
taway_1212
Not using Emacs myself, but read reports of long-time users getting RSI from
all the keyboard shortcuts.

