
Why I like Vim so much [video] - LightMachine
https://www.youtube.com/watch?v=o6omymj1JZI&feature=youtu.be
======
podiki
While I don't want to start a debate over VIM versus Emacs (I think they can
both be used very effectively once learned), I can't help but share a video
[1] on Emacs that made me go "wow!" (The video is somewhat similar, but uses
multiple-cursors to do editing all at once, while also recording a macro to
repeat it.) I think the real point for Vim or Emacs is that a powerful text
editor, combined with the ability to extend it, is an extremely powerful tool.

[1] [http://emacsrocks.com/e13.html](http://emacsrocks.com/e13.html)

~~~
hackuser
That video is great. The multiple cursors GUI is a brilliant way to visualize
a repetitive operation (i.e., one that often would be recorded and executed by
macro). I was going to ask if anyone else implements it, but I thought I'd
search first. Does anyone know more about it? Its origins? More functionality?

* Vim

[https://github.com/terryma/vim-multiple-
cursors](https://github.com/terryma/vim-multiple-cursors)

* Atom (I'm not sure if it's the same functionality)

[https://atom.io/packages/multi-cursor](https://atom.io/packages/multi-cursor)

[https://www.lynda.com/Web-Development-
tutorials/Selections-m...](https://www.lynda.com/Web-Development-
tutorials/Selections-multiple-cursors/468147/486974-4.html)

* Sublime

[https://stackoverflow.com/questions/14963775/multiple-
cursor...](https://stackoverflow.com/questions/14963775/multiple-cursors-in-
sublime-text-2-windows)

EDIT: Well it seems like Sublime has had this feature since at least 2012. I
suppose I should have considered text editors besides Vim, and I might have
known sooner. I'll leave this post in case there are others as narrow-minded
as I am ...

~~~
chillee
Sublime Text was actually the text editor that innovated this functionality.
If you look at the github for the vim plugin, they clearly say "True Sublime
Text style multiple selections for Vim".

Although I've stopped using sublime text since, sublime text really drove
forward the gui text editor market.

~~~
johncoltrane
No. JEdit had that feature long before Sublime Text.

~~~
chillee
You seem to be right. I always though Sublime Text introduced it (lots of
people seem to believe this: [https://medium.com/@schtoeffel/you-don-t-need-
more-than-one-...](https://medium.com/@schtoeffel/you-don-t-need-more-than-
one-cursor-in-vim-2c44117d51db)), but sublime text introduced multiple cursors
with its release date in 2008, while JEdit appears to have had multiple
cursors at least since 2003?

------
hasenj
After years of using vim, I switched to visual studio code because it feels
like a plain text editor but has all the features of IDEs that matter to me:
intellisence.

~~~
nlawalker
In my years of pretty much working only in Visual Studio/C#, I've occasionally
poked around in vim for a few things and always immediately turned back. It
was just _weird_. I didn't see the benefit of giving up all of the features
and familiarity.

Recently, I've found occasion to work in other languages, and after dabbling
in vim for a little while, I switched to VS Code. After gaining a little bit
of enlightenment about what a comfortable developer workflow looks and feels
like outside of the C# ecosystem, I've had three key insights:

\- I actually appreciate the transparency and flexibility of delegating so
many tasks to command line tools that can be run via scripts and task runners.
Thing still aren't quite as discoverable as they are in VS, but I have enough
general dev experience that I know what to Google for.

\- I still don't care for vim. Maybe someday, when I want to invest time in
becoming a keyboard Jedi.

\- Most importantly: it turns out the only feature I really, _really_ missed
leaving Visual Studio was IntelliSense. Not just semi-intelligent word
completion, but real IntelliSense, with inline documentation, snippets and
parameter info. I don't know why anyone who has ever taken advantage of it
would go without it if given the option - it is a bicycle for the programmer's
mind at every skill level, from early discovery of a language's syntax and
standard libraries to extreme proficiency.

~~~
WillPostForFood
When you brought up the bicycle metaphor, the first thing that came to mind
was training wheels. Training wheels aren't bad when you start, but training
wheels quickly get in the way of really mastering riding a bike.

~~~
nlawalker
I've heard this before, and I've also seen IntelliSense labelled as a crutch.
I don't understand this - how does IntelliSense prevent mastery of a language?
Does it make a difference if someone's mastery of a language involves them
using IntelliSense?

------
grogenaut
It'd be great if he actually explained any of that. One of the problems I've
had with vim and emacs is the average user is so far into it they forget all
of the base stuff that new users have issues with, so most guides skip all of
that. It's gotten better with both of them with the package managers. However
because they're so flexible I find that most users customize the key bindings
in one way or another. And so when they show off how to do things it doesn't
translate as all of the keys are different and I not only have to map the new
feature of the new editor I have to also go through a key translation map. It
is a very high barrier to entry. Same thing goes with all of the plugins
people install. Emacs and vim are so far from stock on most people's machines
it's impossible for me to learn by following.

I took a emacs class at a very good tech conference and I was 1 minute late
and missed the key bindings changes the instructor had made as the first step.
I was unable to follow anything for the next 30 minutes and walked out and got
my money back. (This is much more an issue with the instructor than the
editor).

I do like both of them and try and learn them every few years but I also try
and be flexible across as many editors as I can be so I can help as many of my
junior engineers out as possible. But jumping on someone's vim or emacs is
like switching to dvorak. It's also pretty toxic for pairing unless everyone
has agreed on setup.

------
teddyh
And if you learn Emacs instead, you can skip the VIM stage completely.

~~~
pmoriarty
It's better to learn both, to have more tools in your toolbox and use the
right tool for the job. Both emacs and vim have their strengths and
weaknesses, and it's great to have the option to use either when you need it.

~~~
podiki
Or you can use things like evil [1] to have your vi-style modal editing and
eat your Emacs cake too.

[1] [https://github.com/emacs-evil/evil](https://github.com/emacs-evil/evil)

~~~
pmoriarty
That's mostly what I use, but there are still times that I use vim because
even emacs with evil doesn't do what I need (or do it easily, or as well).

------
sshine
I used vi/vim for 15 years, and still do when changing configuration locally
and remotely, before learning emacs for university work. At work I use Visual
Studio, and for personal scribbling I use Sublime Text. I never understood the
editor wars.

~~~
Torwald
editor wars are like snowball fights. it only hurts if you take the wrong
things too serious.

------
helthanatos
Considering I go between Visual Studio, Visual Studio Code, and Android
Studio, I'm pretty sure I'm not going to be using VIM or Emacs. Just a Windows
centric person.

~~~
c0achmcguirk
Funny, I use Visual Studio and Visual Studio Code a lot. The first extensions
I install are VsVim for Visual Studio and Vim in Code.

After being productive in Vim, I can't go back to using the arrow keys and the
mouse. It feels like I lost a hand.

~~~
joshjje
Admittedly im not a hardcore vim/ _nix user, but I am pretty proficient in_
nix and CLIs in general. Are you saying you dont use the arrow keys? :D

~~~
c0achmcguirk
Ha! Sometimes. But getting around in the editor is so easy with the Vim keys
that the arrow keys seem archaic.

But I still push the arrow keys from time to time, you know, to make sure they
still work.

~~~
joshjje
Lol, it was half joke im sure you gathered. There isnt really much of a
possible shortcut to doing "move the cursor 1 character to the left".

~~~
pritambaral
The optimization isn't in "move the cursor 1 character to the left", it's in
"move the cursor 1 character to the left _without moving your arm_ ".

------
JackMorgan
One of my favorite features of Vim is the built-in history of copy/pastes with
history registers. You can learn about them here:
[https://github.com/steveshogren/10-minute-vim-
exercises/blob...](https://github.com/steveshogren/10-minute-vim-
exercises/blob/master/book_sample_history_registers.md)

------
diegoprzl
I would say that an important number never go back from the keybindings/modal
editing. I use them everywhere I can, from Chromium to Emacs.

------
IE6
I use IDEs when it makes sense but do often times find myself wishing their
text editor behaved like VIM.

~~~
beached_whale
There are plugins for many to add a vim mode. At least for Intelij based
ones(Pycharm, IntelliJ, Clion) and Visual Studio

~~~
jcrben
[https://github.com/lunixbochs/ActualVim](https://github.com/lunixbochs/ActualVim)
gives you neovim inside Sublime Text, altho I haven't tried it.

I couldn't stand IdeaVim, the one for the Jetbrains IntelliJ platform - felt
very buggy. Such as when you open a modal and it remains in Normal mode so you
can't enter text.

Currently using
[https://github.com/VSCodeVim/Vim](https://github.com/VSCodeVim/Vim) when
using VSCode which is better but still got some rough edges.

Despite a fair bit of use and study - mostly using neovim - I feel that I
haven't got as much from vim as I'd expected or hoped. Switching from Normal
to Insert mode - even when you get good at the one-time Normal mode commands -
doesn't always elegant.

There's all sorts of configurations and plugins that try to plug the gaps, but
it's such a huge effort to assemble them all. For example, just installed
[https://github.com/terryma/vim-multiple-
cursors](https://github.com/terryma/vim-multiple-cursors) today to attempt get
the elegant multiple selection of modern text editors.

~~~
chillee
I've been contributing to VSCodeVim quite a bit recently, so I'd love to hear
if you have any suggestions for us to improve on.

------
Torwald
I agree with the video: it feels amazing. That's what it is about. I can only
speak as an ex-Emacs user, never used VIM, but I guess with vi-style editors
the feeling is even more intense.

I think this is a real valueable thing, this feeling. I wouldn't have to
justify using one of those editors with any of the usual reasonings that get
pulled by the adherents of these editors. The feeling and it's side effects
are awesome enough.

Only reason I use another editor which doesn't suck instead is that I value
"macness" even more.

------
kstenerud
I used vi for years when I needed to edit things or write code on remote
machines. And every time I was able to work locally, I'd use an IDE and
breathe a sigh of relief.

It all depends on your style of development, and mine most definitely is NOT
conducive to vi (or emacs).

------
throwaway7645
Not a power user, but I've used vim for a few years in linux and really like
it. It blows my mind how inefficient it is to just open a file in windows,
edit it, and save it just using CMD without downloading gvim.

~~~
mynameishere

      notepad [filename]
      type stuff
      ctrl+s
    

Yeah, notepad isn't good, but it fits your specifications.

~~~
throwaway7645
The word of what I said technically, but not the spirit. Yes, I've done that
before, but it stinks. Notepad is just far too limited for anything outside
the absolute basics. Heck, I'd be happy if Windows even had Nano included. I
know Win10 has some kind of native bash support, but most of my company still
runs Win7 locally and will for some time.

------
jstewartmobile
My biggest complaint about Vim is that I can't use the same navigational
keybindings in every other program I deal with.

I'll be surfing the web, type _gg_ , then pause for a second after that
doesn't work.

~~~
camel_Snake
[https://chrome.google.com/webstore/detail/vimium/dbepggeogba...](https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb?hl=en)

What I use.

~~~
mercer
There's also cVim. I don't know if either one is better, but mostly I can't
believe I've been able to browse without vim keybindings for so long!

------
Arkaad
What about the learning curve, though?

~~~
j605
I would say don't install plugins when you start using vim. Only install them
if you cannot find something in the docs to do it easily. I found that it
makes for a good learning experience after I uninstalled all the random
plugins I had.

As far as learning curve, do vimtutor but use the arrow keys. They don't use
arrow keys because the computer didn't have one then. It doesn't make sense
not to use it now.

