I’m fairly confident that I’m going to get a bunch of hateful comments from this article, but please hear me out. I really like the idea of VIM. The ability to move around the page completely with your keyboard is right up my alley. So much so that I use Vimium within Chrome. The ability to find and jump to any element on the page or click on any button with a few keystrokes is amazing. If you’re interested in that, I have a video all about Vimium. The issue is that every app you use has to support VIM movements to make the payoff worthwhile. There are tools like kindaVim that try to bring a VIM experience to MacOS, but it still doesn’t feel fully baked. We’re most of the way there, but you can’t use VIM commands in URL fields or to navigate within Electron apps and it’s just too painful to have these superpowers and to only be able to use them 80% of the time. Not to mention, I worry a bit about betting my entire ability to work my computer on one app that intends to be paid. It seems like a great way to get held ransom in the future.
I’m sure at this point you’re like “Brandon, if you’re so against VIM what are you going to use instead?” I’m going to use my keyboard, just remapped a bit. The key thing I find myself hating about my current keyboard setup that I have tried to fix with VIM is rapid navigation and selection. I feel like I’ve gotten most of the way there by borrowing a handful of navigation commands from Jason Rudolph’s Keyboard which I call Super Duper Keyboard. It allows me to get Command, Option, Shift and all the arrow keys without having to leave the home row. Yes, this isn’t all the power of VIM, but it gets me the parts that I feel I use constantly and I’m confident that they work everywhere because it just uses native MacOS cursor navigation just with the convenience of being on the home row.
Full disclosure, as of the time of this writing: I have only been using this for about two weeks, so it’s not fully in muscle memory yet, but it feels surprisingly natural.
Key Features:
- Cursor Movement without leaving the home row
- Move a Word forward and back
- Move to end of line, beginning of line
- Selection with each of them
- Lastly, delete a word forward or back (I currently have it on the default of alt+h and alt+l, but I’m considering moving those to hyper+h and hyper+l)
Mentioned in this article:
- VIM
- Vimium
- kindaVim — Link
- Jason Rudolph’s Super Duper Keyboard
- Karabiner
- Hammerspoon