This is Your Brain on Vim

15 December 2010

the pristine state

I was watching a violinist bow intensely and I had this thought: I probably have as many brain cells devoted to my text editor as he does to playing his chosen instrument. Is it outlandish to imagine that an MRI of his brain during a difficult solo wouldn’t look much different than mine while manipulating code in vim?

Consider, if you will, the following montage from one vimmer’s journey.

the long, hard road to vim nirvana

monday

“eclipse sure is neat.”

“but that weird guy with the neckbeard at work looks really fast with vim, I should try it!”

“alright! I got gvim. this doesn’t look bad. there are even menus!!!”

“wait what? where’d my text go? wait. undo. no.”

“:help”

“:q!!!!!”

.

.

revels in the opiatic relief of autocompleting boilerplate in eclipse for the rest of the day

tuesday

“okay vim. it’s a new day, a new opportunity to really sharpen the old saw. I’m not giving up that easily!”

“WHY CAN’T I JUST STAY IN INSERT MODE FJDSAKLFJDALSKJKLDF”

“wait, you’re telling me I have to press escape-shift-colon-w-enter every time I want to save? this is some bullsheeeet.”

“after spending 2 hours on the tutorial, all I basically know is ‘ddp’ to swap lines. crap.”

a week later

“woah. vim is everywhere! this means all of this effort will not be in vain when I ssh into the mainframez to edit some configs”

“SWEET, HEY GUYS CHECK OUT THIS DARK TOTALLY UNCORPORATE COLORSCHEME. MY NEW-TOOL-PAIN IS SUPERFICIALLY EASED.”

“oh balls. my .vimrc isn’t on the mainframez so all my cool shit is gone when I ssh to edit some configs.”

two months later

hjkl movement becomes natural. you mysteriously lose the ability to ice skate

“I’ll use these 400 plugins I just downloaded ALL the TIME! especially this folding LaTEX plugin oh man”

/self-flagellation for lapsing back to the arrow keys

“adieu, caps lock.”

“that’s it. the last straw. vim can’t even wrap text properly, I’m going back to edit.com”

a year later

speaks less out loud

installs command-T plugin, saves several hundred thousand keystrokes/day

tries impressing someone watching over shoulder with a macro, only to mess up and uppercase/rot13 the entire file

delays onset of carpal tunnel for several years by finally committing ctrl+[ to muscle memory

in one miraculous day, finally learns motions, visual mode, and * – realizes there is no turning back

“vim doesn’t support interactive buffers? after 20 years? well, I’m a hacker. I’ll just add support for it.”

sees quality of vim codebase, runs frantically in opposite direction

“who needs a console in their editor anyways!!!! I am all about the unix philosophy, etc”

hot flashes of panic surrounding the notion that vim is just an editing mode to be incorporated into “real” editors

irc friends finally corner you for a dramatic intervention re: obnoxiously frequent stray “:w”s in room

two years later

“vimscript is an abomination unto the lord.”

niggling feeling that emacs’ parens-all-the-way-down construction must be heaven-like, comparatively

“I had this nightmare last night. dreamt I still hadn’t learned to slice and dice vertical splits on my widescreen monitors. it was EFFING SCARY.”

glances around room furtively, binds ctrl+s to save, allows self quiet sigh of relief

realizes inadequacy of hjkl in the face of the ultimate time saver that is search-to-navigate

discovers :python scripting, enters golden age of flourishing customizability. feels only a little dirty

frenzied <Leader>key mapping until keyboard resembles NASA mission control panel in its manifold multifunctional ridiculousness

“hey look, everybody within earshot!!! I’m now version controlling, blogposting, mailchecking, testrunning, debugging, hackernews-skimming, ALL from within vim’s warm safe ultra-customizable womb! why aren’t you guys doing back flips to celebrate!?”

some lengthy and indeterminately vague time later

loses several friends over lectures on “the clear advantages of modality in text editing”

luxuriates in shared github.com/me/vimfiles bliss, publishes obligatory blog post about how special and unique setup is

with syntax checking, linting, autocompletion, quick documentation lookup, tons of killer abbreviations, and plugins for every filetype under the sun, vim approaches true IDE-status in both productivity, and startup time

logs into server, unconsciously uses nano to edit a config file. unexpected realization of betrayal minutes later accompanied by a deep shame abetted only by updating all those barely used plugins and sprinkling more comments in .vimrc

monastic calm no longer daunted by repetitive editing tasks, nor by emacs vs vim debates

…and finally, this is your brain on Vim

any questions?

blog comments powered by Disqus