Ask HN: Is it worth learning Vim/Emacs if you're doing well with VSCode already? - nexuist
======
nextos
I'll be a bit provocative and say they are things in 3 different categories
that just overlap a bit in the class of text editors.

VSCode is an open-source and slimmed down version of a really good IDE, Visual
Studio. It's a great choice for developing with MS tools like C# or F#.

Vim is an extension of Vi, which is mostly a set of primitives for
manipulating text. As an implementation, I think Vim is not good. Vimscript
shows its age. But this can be forgiven because the text manipulation
primitives are so good. Vi, and to a lesser extend Vim, try to outsource
everything that is not strictly text manipulation.

Emacs is a text-mode Lisp VM. Since (mostly) everything is text-oriented, it
happens to have great editing facilities. But this should not distract you
from the main fact. It's a platform. And it has high-quality applications
(Org, Notmuch, Magit, Calc, Dired...) plus lots of libraries. Most
importantly, applications can easily talk to each other in Lisp.

After more than a decade hopping around different environments, I decided
computing is better done in 3 platforms. Emacs (for nearly everything), a web
browser (just for hypertext) and a terminal (to deal with plumbing, Unix in my
case). I've tied everything together with a tiling WM. I find it is a lot
saner than using little CLI or GUI silos.

------
runjake
vim is worth learning as it's on most systems and you'll probably need it in a
pinch -- perhaps dozens of times, in some cases. Although nano seems to be on
everything these days and it's much more approachable. But, I've learned to
love the power of vi/vim, so I use that.

Somehow I've gone 30 years working without learning any emacs. Every time I
try I get turned off by its philosophy pretty quickly. It's not for me, but
maybe it's for you.

------
davismwfl
Regardless of tool, I have always felt programmers should learn a simple
terminal editor if you want to be proficient on *nix boxes. And it should be a
basic terminal editor, what you can do in an ansi/vt100 emulator, e.g. no GUI,
and not require a heavy editor like Emacs or VSCode etc. This can help make
you more efficient and speed up simple tasks.

IDE's are awesome, but they come with a lot of weight that just isn't always
needed. To this day I still us vi for all my quick checks, small edits etc
even on projects within an IDE project (if I don't have the IDE loaded right
then). I've been using vi since the 80's so it is just natural for me, but it
is super powerful and requires very little resources to use. Even emacs while
a pretty awesome editor is much heavier weight than simple vi and serves, IMO,
a different purpose.

------
a-saleh
Depends.

Do you spend time in console? On remote machines? Vi will be there. It is
fast, you can start it right away, and once you get used to modal editing, it
is really nice when editing configuration files.

With Emacs, your mileage may vary more, it has few killer apps (i.e. Org-mode,
maybe magit, friend swears by notmuch for his email), but learning it takes
time.

Currently, I use

* pycharm for python

* vs-code for programming in general

* vim for editing config files especially on server (but even when I need to edit .git/config, I usually open terminal in my vs-code and etid that with vim :P)

* experimenting with notes, blogging and and presentation-building eith emacs org-mode

So, for me it was worth it, you might find it too expensive of a time
investment :-)

------
bitwize
Yes. These are the time-honored tools of hacking. They've been around for
decades and run largely the same way as they did back then, over any sort of
UI, local or remote, even a bare VT100 terminal. Understanding these editors
will provide you insight into how the hackers of the past worked, and why some
prefer these editors even today. Even if you stick with your preferred tools
in your day-to-day (and that's fine, everyone does their best work in
different ways), the additional perspective gained by understanding these old
tools, their general shapes largely unchanged by time, will be valuable to you
as a programmer.

------
SmirkingRevenge
I would say its a big, fat, maybe.

If you are hoping for some panacea of developer efficiency, you will probably
be disappointed. At best, they are just another way to do most of the same
things you can already do, with vscode. For some tasks, they will undoubtedly
be more efficient or easier. For others, they will make your life more
difficult.

If they interest you, sure give them a shot. Maybe check out some screencasts,
and see if you like what they do/how they work:

\- [http://vimcasts.org/](http://vimcasts.org/)

\- [http://emacsrocks.com/](http://emacsrocks.com/)

------
Veen
I think Vim is worth learning. I don't use it for day-to-day writing and
coding, but there are occasions when I need to reorganize text or data and Vim
macros make short work of what would otherwise take a lot of futzing around
with Awk and the like. Plus, it's handy when you're SSH'd into a Linux server,
although there are alternatives unless you're in a very stripped down server
environment.

------
tmm84
Do you ever have to SSH into a server? Then learn some vim or if you are like
me and it is usually a conf file then nano will do just fine.

Do you want an editor that is big on being customization and automation (a
programmable text editor)? Then try using emacs. Loads of stuff you can change
and automate. You can even use it as a simple web browser.

If the above don't interest you then VSCode is probably more than adequate for
your needs.

------
django77
At least with vim/emacs you have certain stability and proven record that
they'll be around in 5 years and all the time you invest in it will pay out.
For vscode, who knows what the next most popular editor will be in 2-3 years?
But then again, these editors are easy to pick up. I think if vim or emacs
intrigues you, you should go for it and try it out for at least a week or so.

------
codegladiator
Not worth at all unless you work too much in ssh/cli.

Just the basic paradigm and few basic commands is all you need.

------
ramtatatam
I know vim but somehow my brain is just not compatible with it. I was always
using `nano` and never had a need to switch, I'm working heavily over ssh,
quite often coding over ssh too.

------
DevX101
I still use vim keyboard bindings to navigate code. It's helpful, but not
necessary if you already have native commands wired in your brain.

------
diehunde
Yes. You can always do better.

