Recs.
Updated
SpecsUpdate
Pros
Pro Fast and lightweight
Vim is 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.
Pro Extremely customizable
Everything in Vim is programmable, e.g, a plethora of configuration settings, the color scheme, recursive key mappings, custom functions, custom commands, and macros.
Pro Excellent performance
As it loads the whole file into RAM, replacing all string occurrences in 100 MB+ files is quick and easy. Every other editor has sort of died during that. It is extremely fast even for cold start. Vim is light-weight and very compact. In terminal, it only uses a small amount of memory and anytime you invoke Vim, it's extremely fast. It's immediate, so much so you can't even notice any time lag.
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 Can never outgrow it
The fact that very few, if any, people claim to be a "Vim Master" is a testament to the breadth and depth of Vim. There is always something new to learn - a new, perhaps more efficient, way to use it. This prevents Vim from ever feeling stale. It's always fresh.
Pro Extremely portable
Vi/vim exists on almost all Unix-like platforms. It's the de-facto Unix editor and is easily installed on Windows. All you need to make it work is a text-based connection, so it works well for remote machines with slow connections, or when you're too lazy to set up a VNC/Remote Desktop connection.
Pro Has been supported for a long time and will be supported for many years to come
Pro Productivity enhancing modal paradigm
As with all vi-like editors, Vim provides a modal paradigm for text editing and processing that provides a rich syntax and semantic model for composing succinct, powerful commands. While this requires some initial investment in learning how it works in order to take full advantage of its capabilities, it rewards the user well in the long run. This modal interface paradigm also lends itself surprisingly well to many other types of applications that can be controlled by vi-like keybindings, such as browsers, image viewers, media players, network clients (for email and other communication media), and window managers. Even shells (including zsh, tcsh, mksh, and bash, among others) come with vi-like keybinding features that can greatly enhance user comfort and efficiency when the user is familiar with the vi modal editing paradigm.
Cons
Con Difficult for beginners
Vim has an extremely steep learning curve, making it difficult to learn. It can also be weird to use and has become the butt of numerous jokes.
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 Unpleasant default interface
When you open it, your eyes can get lost because of an interface that is very 70's styled. In order to make it appear more modern, setting up 256 color or 24-bit color, a better color scheme, etc. may be more work than one wants to put in.
Con Horrible keyboard shortcuts
In a regular text editor, you type and text shows up. In vim, to insert text, you need to... wait for it, there's a Google search autosuggest for "How do I insert text in vim":
i - insert before the cursor.
I - insert at the beginning of the line.
a - insert (append) after the cursor.
A - insert (append) at the end of the line.
o - append (open) a new line below the current line.
O - append (open) a new line above the current line.
WTF!
Recommendations
Comments
Flagged Pros + Cons
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.