DEV Community

Tomislav Maricevic
Tomislav Maricevic

Posted on • Originally published at tmarice.dev

Vim mandates >> AI mandates

Intro

The internet is full of articles on CEOs declaring their companies "AI-first", in the name of increasing efficiency. After all, why have 50 engineers if you can have 5 managing a swarm of AI agents?

I am a heavy user of GenAI assistive tools and they truly do help me achieve results faster. But another thing that helps you achieve results faster is not having to fight an uphill battle against whichever text editor you're using. If you have to lift your hands from the keyboard, you're wasting time.

Yet I never heard any company issuing a "Vim keybindings mandate" and declaring themselves "modal-editing first", even though these tools are over 30 years old.

What is programming?

If we squint hard enough, defining programming is very simple -- we solve problems by translating abstract processes into textual artifacts we feed into our magic-rune-inscribed melted-sand tablets so they can understand and execute them.

This process is not linear: we do not first come up with a complete solution in our head, and then type it out, then run it, and call it a day. We iteratively think about the problem, type in some of the code, then think about it some more, then maybe look up something in the documentation, then type some more, etc.

Our brains are quite efficient at thinking, so most of the friction happens in other steps: typing text and looking things up. For now, the keyboard is still the best tool we have for this. From seasoned engineers to vibe coders, everyone has to move the text from their heads to the computer by typing out code (or prompts!).

If every time you notice a typo you have to hunt for the mouse, or smash those arrow keys for 10 seconds, you risk losing your train of thought and falling out of the flow state. The more you fight with inputting text, the less you focus on the problem itself.

Our duty as software engineering professionals is to reduce this friction as much as possible. We learn the ins and outs of programming languages so we can think in appropriate abstractions and avoid frequent lookups. We learn multiple languages so we can deliver efficient solutions without performing acrobatics in languages not appropriate for the task. We utilize GenAI tools to handle boilerplate and cruft. And we optimize our text editors so we can input text as fast as possible.

Why Vim?

Vim tries to reduce the friction in text editing as much as possible. Your hands stay on the keyboard on the home row all the time. The editor comes with a rich set of built-in shortcuts encompassing every text manipulation you can imagine. For specialized tasks, there are plugins that address them, and you can define your own custom shortcuts for your own workflow needs.

Building your own configuration is a crucial part of the process, where you get acquainted with the editor and the ecosystem. Realistically, the migration to Vim will be a J-curve: at first, you will be less productive, then after a week or two, you'll be where you were before, and if you pushed through, only after a couple of weeks of use you will start seeing gains in productivity.

The worst and the best part is that if you embrace Vim, it will ruin all other software for you. You will start looking at software through the lens of keyboard-only usability. If you have to reach for the mouse, or if it has its own silly shortcuts, you won't use it. And it really is a slippery slope: Vim is just a gateway drug, leading to tiling window managers and terminal multiplexers, and before you know it, you'll be using Nix and wondering how on Earth you managed to get anything done before.

Where does this leave us?

The "AI mandates" bullshit is purely performative, and the sad thing is everyone knows this -- the CEOs know it, the employees know it, the rest of us observing from the sidelines know it. LLMs truly are wonderful technology, and the productivity gains are real, but if the true goal is productivity, there are already many many ways it can be improved, and no one wrote memos about it. The truly efficient companies are staffed with conscientious engineers who do not have to be mandated to use the best tools available; they seek them out themselves.

Time is the only real currency in this world, and you're leaving money on the table if you're not using Vim. After all, Vim won't take your job. But someone using Vim will.

Top comments (0)