Cycle of Vim

You find him sitting in the corner, headphones on. There’s an empty cup of coffee next to him. He is typing feverishly but every now and then he pauses, puts on an empty expression, followed by a twinkle in his eye before he gets back to typing. The screen has an eerie green glow. The cursor seems to be jumping around, doing things without him even touching the mouse or arrow keys. One moment he is typing, creating functions, and another moment he is deleting multiple lines at once. He types some ancient looking string and magic seems to happen. You watch in wonder, amazed by the speed and dexterity. You wonder if he is human. You think twice before interrupting him, not because you are always so courteous but because you have forgotten what you wanted to ask. And then he gets up, a satisfied expression on his face. You blurt out, ‘How in the world did you do all of that?’ He smiles and simply says, ‘Vim’.

You go back to your desk and stare at your boring terminal. You take a deep breath and type vim. You awkwardly move around and insert a few lines before ESC:wq. You are out of breath already. You decide to take it a day at a time. One day you are grep -ing around in terminal. With shaking fingers you vim a result file. You learn to /<search> in vim. You switch to grep -n and you learn to :<line number>. Another fine day you foolishly name a method. You grep to find occurrences. One file has many. You learn to :%s/<stupid name>/<correct name>/gc. Days go by and you learn to cut, copy, paste, delete a word, line, paragraph. You learn to combine actions. You start treasuring your .vimrc, rsync -ing it becomes the first thing you do with a server. You clock more vim hours, weeks, months. It’s a lovely day. Headphones on and with fresh coffee you churn out masterpieces, one after the other. Finally you get up and a new intern blurts out, ‘How in the world did you do all of that?’ You remember the other day, smile, and simply say ‘Vim’.

Some boring lines about the writer:

Interested in products and UX. Knows a bit of PHP, JS, Node. Prefers JS. HN addict. Watches football, plays squash. ManUtd & Spain \m/. Tinkers with arduino sometimes.

Will code for food, MacBook, fast internet, noise cancelling headphones, a comfortable chair and desk. Pretty basic needs. Truly.

Follow him on twitter. He doesn't tweet a lot. Bummer, right?