Recs.
Updated
SpecsUpdate
Pros
Pro Enables effective keyboard-driven editing due to its modal nature
Interaction with Vim is centered around several modes. Each mode has a different purpose and switching between them changes behaviour and keybindings. There are 12 modes in total (6 basic modes and 6 variations on basic modes) and 4 of them are used commonly.
Insert mode is for entering text. This mode most resembles traditional text entry in most editors.
Normal mode (the default) is entered by hitting ESC and converts all keybindings to center around movement within the file, search, pane selection, etc.
Command mode is entered by hitting ":" in Normal mode and allows you to execute vim commands and scripts similar in fashion to a shell.
Visual mode is for selecting lines, blocks, and characters of code.
Modes allow separating concerns between various tasks and reusing keys for different kinds of functionality. As a result, the workflow becomes more efficient.
Pro Flexible feature-set
Vim allows users to include many features found in IDEs and competing editors, but does not force them all on the user. This not only helps keep it lighter in weight than a lot of other options, but it also helps ensure that some unused features will not get in the way.
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 Macros are highly predictable
Macros are sequences of instructions usually used to simplify common, repetitive tasks and increase productivity. Many text editors have programmable macros, but since vim is keyboard based, its programmed macros are usually far more predictable and easier to understand.
Pro Everything is a mnemonic
Vim associates keys with words. For example, d
is for "delete", w
for "word". To perform an action you string together letters. Thus, to delete a word, press dw
.
This way it's possible to abstract a large amount of functionality that Vim provides in an intuitive way.