The Zen of Vim

Published July 10, 2019 · 377 words · 2 minute read

When is a tool more than a tool?

When does a hammer transcend its ability simply to hammer nails, but becomes an extension of the workman’s body, a physical manifestation of his will?

When does the swordsman’s sword feel, sense and touch as the swordsman’s own hands would? To taste the slow drip of hot liquid and the texture of the fabric it cuts?

For the computer programmer, there is a point where he will become entwined with his tool of choice for manipulating the text of programs. For most of us, this tool becomes either Emacs or Vim. My history has seen me enter and grow in the cult of Vim; essential, seemingly an empty window, all functionality hidden in an endless forest of keybindings and shortcuts that persists in the mind of the user.

Imagine, if you will, a normal text editor. You’ve got buttons, flashing bars, notifications, all manner of distractions. While these tools may all be useful at a given moment, the presence of every tool on the screen at once introduces an absurd amount of clutter into the programmer’s visual field. At best, an editor or IDE will refrain from distracting and hindering a programmer’s efforts, only showing autocomplete when poignant, and moving out of the way when not needed. At worst, you can act like Eclipse or Visual Studio, and forcefully prevent users from moving forward with typing the name they want, choosing the first autocomplete for them, killing a few seconds of productivity while they backspace with quiet rage and try to fix the mess the so-called intelligent editor made.

Discarding this idea, imagine a blank canvas. Nothing is shown except for the most essential data: your cursor mode and, if you choose, line numbers and spelling errors. After spending half an hour reading the manual, you begin to work your magic, the code appearing in a single, smooth motion as a programmer can perform all the operations he needs without ever lifting his hands from the keyboard. You have found a tool which, while utilizing, you can be absolutely and totally immersed in the act of creation; the ability to call your own worlds into being. This is the magic, and the zen, and the power of Vim.