This is a card in Dave's Virtual Box of Cards.

Vim Accessibility

Created: 2022-10-18

subject: vim

(I’ve written this down somewhere else, but I can’t find it so here we go.)

Despite the (completely accurate) jokes about the difficulty of even figuring out how to exit the darn thing…​

I think vi/Vim’s "modal editing" model is actually fantastic for physical accessibility, and here’s why:

Obviously, I have a very specific form of accessibility in mind, so let me be explicit. Vim is great when you:

Which means it is also great for otherwise adept users who are on:

I’ve had a fascinating time watching my children grow up with computers. They love my laptops that boot to terminals and they love typing in Vim!

Have you ever tried to teach someone how to type CTRL+S (for example) who has never done it before and doesn’t know where to find the thing called the "Control" key? We aren’t born with this knowledge. And having to hold down CTRL and then find and press S while keeping CTRL held down the whole time…​that’s actually asking a lot!

Suddenly :w to save doesn’t sound so bad. It’s easier to teach, that’s for sure!

Same thing with explaining commands over the phone to elderly relatives. Ever-changing GUI interfaces are the worst, but even "exotic" keyboard combos can be a challenge to describe if you’re not familiar with the lingo.

And imagine it takes you a reasonable amount of time to type a short string like "hello". And navigating around in a document and hitting the right number of DELETE or BACKSPACE keypresses to remove a particular mistake is a lengthy process. Suddenly the terse single-letter commands in Vim seem so powerful! To kids, it’s like weilding superpowers. It might even be their first exposure to the idea that the computer can help automate work (imagine that)!

I’m really curious how or if Emacs users ever edit things on touchscreens?

It’s not great, but I can definitely use Vim in a terminal on my phone. It works well enough that I actually do it when I want to look something up in my notes or write a quick script to automate something.

Or how about right now: I’ve somehow managed to get this little "60%" keyboard (no numpad and no dedicated function keys) into a state where I can’t figure out how to press the ESC key. I’m screwed in Vim, right? No, I knew it was CTRL-] or CTRL-[ or something like that…​ah, it’s CTRL-[, and I’m fully functioning again. I don’t love it, but I can keep going until I figure this out.

Or when I’m on a little netbook keyboard in the dark, it sometimes takes me a couple tries to hit any "special keys" outside the QWERTY block. I LOVE the fact that most of the Vim shortcuts are just regular letters and numbers because I can still reliably touch-type those.

We are all "disabled" at some point or another.

All of us experience injuries, broken equipment, and weird setups that make it hard to do more complicated movements at the keyboard. I’ve come to really value the accessibility of modal editing in general, and vi/Vim’s single-letter commands in particular.