Recs.
Updated
Vim is a powerful, portable, keyboard based text editor. Being text-based, vim is lightning fast, with an incredible set of features developed over its multi decade existence.
SpecsUpdate
Pros
Pro Useful undo features
Vim does not only offer unlimited undo levels, later releases support an undo tree. It eventually gives the editor VCS-like features. You can undo the current file to any point in the past, even if a change was already undone again. Another neat feature is persistent undo, which enables to undo changes after the file was closed and reopened again.
Pro Keyboard-based, mouse-free interface, and trackpad support
There's no need to reach for the mouse or the Ctrl/Alt buttons again. Everything is a mere key press or two away with almost 200 functions specifically for text editing. Vim does support the mouse, but it's designed so you don't have to use it for greater efficiency.
Versions of Vim, like gVim or MacVim, still allow you to use the mouse and familiar platform shortcuts. That can help ease the learning curve and you'll probably find you won't want to (or need to) use the mouse after a while.
Pro Lightweight and fast
When compared to modern graphical editors like Atom and Brackets (which have underlying HTML5 engines, browsers, Node, etc.), Vim uses a sliver of the system's memory and it loads instantly, all the while delivering the same features. Vim is also faster than Emacs.
Cons
Con Difficult learning curve
You'll spend a lot of time learning all the commands and modes supported in Vim. You'll then spend more time tuning settings to your needs. Although once it's tuned to your needs, you can take your .vimrc
to any machine you need and have the same experience across all your computers.
Con Requires Brain Mode Switching
When editing in vim, you have you use the vim keys; when editing in every other window on your PC, or in Word or Excel or other application, you need to use the standard system key combinations. Learning the vim combinations can actually make you SLOWER at everything else.
Con Poor support for external tooling
Many plugins depend on optional Python and Lua features, which may or may not be included in whatever binaries are available for your system. And without platform-specific hacks, it is difficult for plugins to operate in the background or use external tooling.
Con Consume brain energy for editing that should be used for logic
Text editing in vim is awesome, but it requires thinking about combination of commands. In other editors, you don't have to think about how to delete this part of code. You just think about how to implement a feature, what is a good design for this code. Even after you get used to using vim, it still requires your brain for editing.
Con Doesn't play nice with the system cut/paste mechanisms
This can be worked around somewhat if you disable mouse for insert mode. You can then right-click your terminal and use paste like you would anywhere else in a terminal.
But it still doesn't feel right when the rest of your system uses Ctrl-C/Ctrl-V, and you have a system clipboard manager, and so forth.