Before I became an Emacs user, I was a vi user.
And though Emacs is now my primary editor, I still use vi every day:
I use it when I want to quickly view the content of a file, for quick edits to configuration files, when I’m on a remote server, or when a command-line utility invokes
The main reason why I still use vi is because I’m able to use it very efficiently even without a configuration file.
I learned vi circa 2001 from a magazine and from vimtutor and it was my primary text editor until 2007 or 2008 when I switched to Emacs.
Back then, I had a rather long
.vimrc, complete with configurations for Linux and Windows, GTK vim and curses vim, and I used a few plugins such as bufexplorer.vim.
Recently, I deleted my old
.vimrc and started a new one from scratch.
I no longer use plugins and I don’t use a GUI version of vim.
For these reasons, I now consider myself more a vi user than a vim user.
(I am however a big fan of text objects, and I want unlimited undo.)
.vimrc is now only 12 lines and most of these changes are conservative and uncontroversial: backspace works “normally” in insert mode all the time, I enable incremental search, I use 4 spaces for indentations rather than hard tabs, I activate syntax highlighting.
Even though vim offers a myriad of settings, a vanilla setup is extremely capable and usable.
Being able to use an editor without custom configuration is extremely useful. Here are a couple of examples: I learned how to exploit Linux binaries from the book Art of Exploitation. The book has a companion live CD that you can use to follow examples from the book and try to perform the hacks yourself. Emacs is not installed, but vim is, and I was perfectly happy and comfortable using it to read the source code of the examples and modify them. Another example: recently at work, I wanted to write a Python script on a server that didn’t have Python installed, but had Docker. I launched a Python container, installed vim-tiny, and proceeded to write, debug, and improve my script without ever feeling that I was editing with a hand tied behind my back.
It is oddly satisfying to know that no matter the kind of machine I find myself on or the kind of restrictions it has (no network to download Emacs and/or my custom configuration, corporate policy against fetching packages from MELPA, etc.), that there will always be an editor that I can happily use without needing to make it “my own”.
Tim O’Reilly and Paul Graham have also cited usability without configuration a reason for preferring vi to Emacs.
Thanks to Richard Kallos for proof-reading an early version of this article.