I’m two weeks into learning Vim—a classic, command line code editor with a cult following among a subset of hackers. In this post, I'll explain why I’ve enthusiastically subjected myself to what many would consider torture.
For day-to-day writing, Vim has become my tool of choice.1 I’ve been using it as much as possible for text composition and editing. Code, legal documents, letters, you name it. Even when I’m not writing code, I force myself to write in Vim and then copy the text where it needs to go.
Obviously, I still rely non-Vim software in my workflow. I'm one of very few lawyers I know of who uses Google Docs for document management, formatting, and collaboration. Since most other legal professionals still use Word, I use that as well. I email and text like everyone else. And I use project management, chat, and other productivity apps.
I wrote this post to capture these feelings about Vim at an early stage. It's a snapshot before going further down the path. I know there are many others in my shoes so I’m sharing this publicly to: (1) encourage myself to keep at it, (2) encourage you to keep at it, and (3) make a record of this strange and fascinating feeling.
There's a reason Vim has stuck around since its launch in 1991. In short, Vim excels at interacting and navigating with text. It replaces the typical mouse/keyboard experience with a powerful, albeit complex, way to interact with text. Vim sticks around because it is really, really good at this job.
For example, instead of highlighting a word with the mouse and pressing delete, in Vim, you can type
dw. Or you could type
dt. to delete everything up to the next period. If you're completely new to Vim, you can click here for a closer look at some fundamental Vim commands.
Sure, my productivity took a huge hit early on. But I’m slowly and surely climbing back to where I left off. Even this early in the process, I’m kicking myself for not doing this many, many years ago. It’s clear the initial discomfort will pay dividends.
Vim makes my fingers feel disconnected from my brain. It has prompted a full-on breakup with my computer mouse. Instead, I now use an always-expanding universe of keyboard shortcuts to interact with files and text.
My mind is still in the process of bending to Vim. It feels like learning a new musical instrument, with all the same awkward clumsiness. I move the cursor down when I want to go left. I inadvertently insert and delete text. Window splitting and navigating files is still clunky. Muscle memory? Weak at best.
In short, early Vim is not particularly kind to newbies.
And questions. So many questions. A few particularly persistent ones are:
Bottom line, as I’m coming to learn, is there are no clear answers. The “Type A” part of me wants a process that’s more clear cut. I’d love some kind of Vim calculator to tell me when I can expect to be done learning and back to business as usual.
But trying to objectively measure Vim progress seems myopic. Instead, I’ve started to embrace my “Type B” side by accepting the uncertainty and leaning into Vim on a more emotional level. I’ve let the practical questions mostly melt into the background, giving way to a positive mood and a sense of freedom to learn by feeling and doing. In short, I’m feeling pretty zen when it comes to Vim.
Here are a couple thoughts that seem particularly useful for maintaining a Vim long game and, perhaps more importantly, creating joy in the process.
Vim has a steep learning curve. It’s not something you pick up in a few days. There’s a joke to the effect of “What’s the best way to generate a random string of text? Put a non-user in Vim and ask them to exit the program.” Stack Overflow published this article after helping a million people exit Vim.
I've started to understand that I’ll need a really good “why” to stick with Vim in the long run.
Here are a few of my "whys" a couple weeks into the process:
(1) I’m in the words business. I spend my work time on law and code. Both are word-centric undertakings. Perhaps my biggest gain from learning Vim so far is a renewed joy from working directly with raw materials: words, lines, sentences, paragraphs.
I hadn’t taken a step back from word processors and modern text editors in years. I’m now realizing how interrupting, distracting, and commandeering these programs have become (from trying to be all things to all people).
(2) Vim feels like the right tool for the job. Vim requires me to focus almost exclusively on fundamentals. There’s no metadata, hidden code, or other additives clogging up the works. Vim connects me directly with words, which helps me achieve flow.
Don’t get me wrong, word processors and other software have wonderful uses. My work product still needs to go through collaboration, formatting, and other “processing” phases. Adding Vim to my workflow separates writing from those other stages of the process.
(3) Vim makes writing happier. If I'm spending lots of time working with words, it ought to be fun. My heart won’t stick with anything that’s not. Vim’s a blast because it allows me to weave secrets, hacks, and multidimensionality into my writing process.
If any particular command isn’t doing it for me, I can customize Vim to suit my needs 2. I can borrow and build upon others’ configurations. I can also create my own add-ons to tackle tasks that take the fun out of writing.
In other words, Vim allows me to build my own writing experience as I go. The physical act of writing (code and prose) feels more like growth and less like a chore than it did just a couple weeks ago.
Working with my computer, not against it. Writing in many contexts, especially in web-based applications, can feel like walking through someone else’s reality. Email, text, chat, and word processing applications tend to feel locked into whatever the application’s creators believe provides the “best” experience. Each has its own automation, shortcuts, options, and various quirks.
Then there are system-level inefficiencies, like switching hands between the keyboard and mouse, switching between application windows, and various kinds of notifications, warnings, and pop-ups. It doesn’t take long before I start to feel like I’m arm wrestling with the computer.
Vim removes much of this fight for me. Or at least it defers the arm wrestling to a later stage in my workflow. To the extent there’s any struggle, the fixes typically boil down to configuration and training. I feel like I’m working with the computer, not fighting against it.
To learn Vim is to reconfigure my brain. I’ve spent my adult working life at a computer. I’m not surprised that tearing things down to the studs feels a bit jarring at first.
Vim will be an evolution. Given its unique nature, Vim requires rebuilding muscle memory from scratch and rewiring some deep neural pathways. I need to retrain how my brain interacts with text in a fundamental way. Vim affects every detail of how I select, manipulate, copy, and delete letters, words, paragraphs, and entire files. In other words, Vim represents a core change in how I interact with text on a computer. Expecting or wanting this to happen on any set timeline seems foolish.
A couple weeks in, I’ve embraced that this is definitely a long game. In fact, letting go of the occasional urges to get back to a “baseline” opens up insanely promising possibilities. For example, I now get to spend time each day learning and defining how I work with words. It’s an opportunity to choose new practices instead of just reverting to old habits. The act of writing feels like a game again. A welcome challenge.
Why not enjoy the continual improve for the foreseeable future? Looking back, “writing” has been essentially the same for the majority of my life. It’s not every day that you get the opportunity to relearn to communicate in such a deep and meaningful way.