I use Vim for writing code, documentation, editing configuration files, and taking notes. It works great for me. If it’s not your cup of tea, that’s okay. There are many other text editors today.
So why did I switch to Vim? Why should you?
Vim is powerful
Vim has everything you may need for text editing out-of-the-box: syntax highlighting, autocompletion, split screen, diff, spell checking, text formatting, text objects, persistent undo, automatic commands, macros, scripting, and many more.
Most of Vim features are kind of hidden and it makes sense, nothing stands on your way when you are working. Although, such minimalism makes learning curve a bit steeper.
On the other hand, everything in Vim is thoroughly documented and the
documentation is always available via
Vim is keyboard-based
Usual Vim command is a sequence of keystrokes. You rarely use key chords in Vim and you don’t need a mouse.
You can effortlessly make large edits with few
keystrokes, because Vim has commands, movements, and
can operate text objects: paragraphs, sentences, words, etc. Everything is
mnemonic. For example, you can type
dap in normal mode to “delete a
ciw to “change in word”, and so on.
Vim is extensible
Vim can do a lot without any customization or plugins, but you can tailor Vim for your needs. There are tons of plugins for Vim (you may need just few), you can install and update them with ease.
Vim is well integrated with command line tools (
sort, etc). With
pipes and redirects you can compose programs to do any text manipulations
you may need.
Vim is fast
Vim doesn’t need a lot of resources to perform well. Its startup time is under six milliseconds:
$ vim -u NONE --startuptime vim.log +q $ tail -n 1 vim.log | cut -f1 -d' ' 005.287
To be fair, to start Vim with a dozen of plugins and to open a file takes about 60 ms. Still impressive.
Vim almost never lags and typing latency is very low. Typometer shows 4.8 ms for Vim in Terminal.app on macOS.
Even when you are editing files on a remote machine over SSH and the internet connection is slow, you still are in control, because in Vim you can do a lot with a single command: quick jumps inside a large file, switching among multiple files, searching and replacing across all files in a project, etc.
Yes, Vim works perfectly in a terminal over SSH. You can edit files remotely and be as productive as on your computer.
Vim is future-proof
Vim (or its predecessor vi) is pre-installed on all Unix-like machines (macOS, BSD, Linux). Vim has been ported to almost all operating systems, including Windows.
Vim is a free and open-source software. It’s a time-tested software: vi released in 1976, Vim — in 1991. Vim will stay around for a long time. Once you learned Vim you may use it for decades. You workflow may change, programming languages come and go, but Vim always does its job well.
Still undecided? Try Vim for a couple days.