Sep 8, 2026 by Michael Sjoberg
Vim bindings for Koi Editor?
This is something that comes up frequently, everywhere. I see it in other editor communities as well. Everyone keeps asking about Vim bindings.
But does someone who really needs Vim bindings actually switch after a new editor goes through the work of implementing them?
I'm extra reluctant because I've never understood the attraction to Vim bindings. They're complicated and unintuitive by default, often have a steep learning curve, and I doubt they make most programmers more productive than your average Sublime Text user.
If I had to choose between Vim and Emacs, I'd pick Emacs. John Carmack, Jonathan Blow, Rich Hickey, Fabrice Bellard, Guido van Rossum, and Linus Torvalds all used some variation of Emacs.
A similar list of high-profile programmers using Vim is surprisingly sparse.
I sometimes wonder if the attraction to Vim bindings is partly a novice programmer thing. New developers watch YouTubers programming with something that seems difficult and obscure, then think they need to learn it to be good programmers themselves.
I use Vim and Neovim occasionally for benchmarking, but not much else. There's way too much keypressing for basic navigation for my taste.
Most programming is reading, thinking, and navigating through code when you're not actively writing it. Basically, reviewing your own code.
None of that requires a keyboard, and I find it a better experience with a mouse.
I often casually scroll through code while eating or watching a movie, then randomly jump in to make edits. It could be anything from small naming changes to minor performance optimizations.
I can see some benefit in Vim's normal mode for reducing keyboard effort when actively manipulating code, but that's such a small part of the overall work.
I also like the idea that each key should do one thing.
Shift + G should insert G, like it does in basically every other input field on modern devices, not jump to the end of the document.
I see the appeal of reusing normal keys for more functionality, but I just don't think Vim bindings as a feature are the right choice for Koi.
I might look further into separate keybinding sets that can be toggled with a command. For example, one set could approximate Vim's normal mode and another its insert mode, with commands to switch between them. This would also make it possible to implement other, more exotic editing modes without Koi needing to know anything about them beyond switching the active keybindings.