I saw this question on Quora and thought I’ld leave a reply:
1) No mouse functionality might actually be a good thing. You almost never need to get your fingers off the keyboard.
This leads to quite some benefits:
a) Speeds up your coding (no longer have to move you hand to the mouse, aim at some small button, or painstakingly highlight a block of text, then do whatever you want with your mouse, then move back to the keyboard and continue typing).
b) Potential healthy benefits because you don’t strain your hands as much by movement.
2) There are lots and lots of commands, but trust me you won’t use most of them. There are just that few (maybe 30?) which you need. And when you need more powerful commands, you find them and slowly add them to your arsenal. Besides, many commands are pretty intuitive. For example, this command
will delete everything within the round brackets. How do I remember it? “DeleteInside (“. That’s not all, plenty of examples out there, its just a matter of whether you are willing to learn them.
3) Highly customizable. The number of plugins, color schemes, configuration files available is just crazy.
4) Ubiquity. Vim is more or less available on every single Linux machine. Like Anon mentioned below, vi is available when you ssh. So basically, learn once, use everywhere. Furthermore, you can store your config files in the cloud, so you get a a Vim that belongs to you whichever machine you are on.
5) You may think that the UI is irritating, but look at it from another angle, what do you actually see when you fire up Vim? Code, line numbers, row and column numbers. That’s all. What do you actually want to see when you code? I for one wouldn’t want to see a hundred buttons (scissors, clipboard, question mark icons etc etc.) Your screen is just code so you can focus!
These are just some reasons why I use Vim (I can’t give you the Emacs side of the story but mostly they are similar), and there are quite some discussions online about it too, so take a look!
So why not give Vim a try, you might like it! If you need some resources to help you get started just drop me a message I’ll be glad to help. 🙂