Why I Prefer Vim Keybindings
I’ve bounced between Vim and Emacs a few times over the years, like anyone curious about tools that shape how we write and think. But I always find myself returning to Vim. Not out of nostalgia, just because it feels more like home. Especially the keybindings.
Vim’s modal editing is something that just clicked with me. I like the separation of thinking in motions and actions. dw
means delete word, ci(
means change inside parentheses, things like that feel close to language. And once it’s in your muscle memory, it becomes less about thinking and more about rhythm.
There’s a flow I get into with Vim that I haven’t been able to replicate elsewhere.
But there’s something else, something that matters more than it used to.
I often find myself ssh-ing into servers, jumping between systems I don’t control.
In those moments, having Vim available by default is incredibly comforting. It might not have my plugins, but that’s the point, it doesn’t need them. The defaults are good enough. I can edit a config file, refactor some C++, or write a shell script without even thinking. I don’t have to go hunting for my dotfiles, or rebuild my editor from scratch just to get some work done.
With Emacs, it always felt like I was missing part of myself if I didn’t have my whole setup with me.
I admire how much you can shape Emacs into whatever you want, but that flexibility becomes a burden when you’re outside your own environment. I don’t want to think about whether I have Magit or if Org-mode is configured the way I like. I just want to fix the thing, write the script, get in, get out.
For me, Vim’s biggest strength isn’t just the keybindings, it’s the consistency. It works the same way everywhere. And when you’re constantly moving between systems, that’s not just convenient. It’s powerful.