← Back to all posts

Learning VIM will be different this time ...really it will!

published 27 days ago5 min read

I've decided to finally learn VIM motions (those weird little key combinations that make its users look like wizards). I've tried ...and given up several times in my life. I know that this time is different for several reasons. Let's talk about why, I think there are several reasons why learning VIM is more important than any time in software development history.

VIM Plays Like a Video Game

I once heard someone say that Emacs works like a text editor, and VI "plays" like a video game. It really connected with me. Most developers, at one point or another, have found themselves in a VIM document, unable to exit. You usually just close the whole terminal and start again.

But I was able to learn a few VIM motions: :q and :wq to start, just to keep me from having to restart the terminal. Then i to get into insert mode and Esc to get out of it. These days, I'm not a VIM Ranger or anything, but I regularly use visual mode, gg and G to get to the beginning and end of a document, and I yank all the time, now. (pause for teenaged snickers).

But early on, it's brutal. Constantly getting tripped up by your own tool is infuriating. You get stuck in some mode you don't know how to get out of, all because you couldn't remember to switch into insert mode before you started typing. No you don't know what you've done, half your document is gone, the other half is highlighted, and there's a weird glob of text in the bottom of the window that's blinking. And you lose it, open the document in a "normal editor", and you never open VIM again because: fuck that guy.

So why do it to yourself? Why try again?

That saying about VIM playing like a video game made me realize something: Emacs isn't a text editor. In fact most of the programs we consider "text editors" aren't meant for editing text at all.

My flabbers were gasted. (I kinda liked it)

What do you mean, strange thought bubble in my head, that text editors aren't text editors? Most things we call 'text editors' are really geared toward text creation not text editing. They think of the user creating the file from scratch. Opening a doc and just start typing. The focus is on format and the outpouring of your content onto that document. (A little dramatic, but you get the point.)

But VIM is geared toward actual text editing. "Normal Mode", the default mode, is made for moving around in text and moving text around. Move the cursor to the fifth occurrence of the letter 't'. Yank this paragraph and put it after the next paragraph. THAT, to me, sounds like text editing. It seems to start with the idea that the user is going to open an existing document and edit. it.

In the age of agentic coding, that distinction is going to matter a whole lot more than it used to.

It's always about AI with you. Really. You're obsessed

The industry is obsessed. I'm just trying to stay employed.

I like writing code. I really do. But I type slow, and I can get an entire Lambda endpoint, with tests and scaffolding to run it local and deploy it to AWS, in about 5 minutes (after an hour or two of building a prompt). Ain't no humans typing that fast.

But it's going to be off. It may compile, it may even run, but unless you are Ricky Prompty(tm), the next prompting phenom ...there's gonna be problems. That's gonna require you to go spelunking through the code to try and find the problem(s) and come up with a solution. A hallucination here, an outdated SDK call there, a pattern so overcomplicated it makes your eye twitch.

THIS is where VIM really shines. Moving chunks of code, fixing typos, or old SDK syntax. If you've ever watched someone who really knows VIM do that stuff, they look like they could control the weather.

You said several reasons, didn't you?

Yes. There are several reasons why I think I will actually stick with it through the "sophomore slump" and actually learn it this time is: LazyVIM. This is the improvement to the improvement to VI ...improved. It adds sensible defaults, directory trees, and help pop-ups for idiots like me. When combined with LazyGit and LazyDocker, it's a software developer's best friend.

I can edit a folder (open a code project) and easily find the document I want to edit, open it, and start selecting, copying, and yanking code around the file. :wqall has become almost second nature to me, to save all my changes and close my LazyVIM IDE (by mennen). I still use my arrow keys (don't @ me, bro), but I'm beginning to feel like ...Wile E. Coyote ...** sooper ** genius.

The Skill That Lasts

Most things in tech have a half-life. Frameworks come and go. Cloud providers rise and fall. The thing that's been woven into the fabric of computing for fifty years is the text file. And VIM has been the sharpest tool for working with them for just as long.

In the age of AI-generated code, the bottleneck isn't creation speed anymore. It's editing speed. It's your ability to move fast through a codebase, find what's wrong, fix it, and move on.

VIM is built for exactly that.

So yeah — I'm learning it. For real this time.

← Back to all posts