in General, VIM

The Ideal VIM Keyboard

My colleague Niklas nagged me for not having disabled the caps lock key on my MacBook Pro. I was a bit disoriented at first but coming to think of it, I haven’t used the caps lock key since I got the MBP back in April.

This made me think about which keys I actually use. Being a recent VIM convert I wonder if Apple’s designers hate VIM. Efficient editing in VIM require you to use the escape key a lot. On the MBP the escape key is one of the smallest keys on the keyboard for some reason.

Am I whining about superfluous things? Maybe so. Maybe I should just shut up and remap my caps lock key to escape.

Give me larger keys!

The ideal VIM keyboard should have a large escape key. The colon is used a lot too. Maybe it could look something like this:

The ideal VIM keyboard


  1. The ideal vim keyboard should not require you to lift your hand to hit Esc. You can have an ideal vvim keyboard by remapping your caps lock to an escape, or remap it to a control and use Ctrl+[ instead of escape

  2. Esc is a small key on all keyboards.
    Swap esc and caps lock and you’re done.
    The colon isn’t actuall used that much, nearly all the : commands have a normal mode alternative that doesnt use it.

    The person who suggested a ctrl combination: [facepalm]…tut, tut, EMACS users…

  3. ESC should definitely superlutely be on the homerow. You use it EVERY TIME YOU DO ANYTHING EVER. in vim. ctrl-anything is way less than ideal because a) control is not on the home row (except in this example proposed utopian vim keyboard of which I DO NOT APPROVE because ESC is not on the home row) and b) you need another finger. CTRL-[ can at least be done with two pinkies but it’s still way more wallowing in non-optimality than the tried-and-true Murdering CapsLock For Being Worse Than Useless method. If I couldn’t make CapsLock do anything useful I would immerse in HCl anyway because that shit will fsck you up. especially in vim where it induces sudden onset of Why-the-ron-fricke-doesn’t-anything-work-and-HolyWTFdidIjustdo syndrome. and the purported point of caps lock is that it lets you type things IN ALL CAPS which i just did a non-editor without using it anyway like i wouldn’t have even if I was nincompoopified enough not to have ditched its sorry ace long ago for our good friend HomeRowESC the grand saviour of earthworms and mudpuddles. THE END

  4. as a corollary observe that because CapsLock is worse than useless it’s important to let the actual ESC key still be ESC so that while still adjusting to your new homerowESC superpowers you don’t accidentally trigger a bout of WTRFDAWAH syndrome (see earlier post by YOURS AWESOMELY)

  5. @werd: I doubt you’ll ever come back to page and read my post but I just want to tell you that I laughed heartiliy at your two posts! Plus, that keeping the actual ESC-key as ESC is one hell of a useful tip. Thanks man!

  6. current keyboard layout is optimal for regular use by the general population. the problem is not the keyboard but vi, due to its modal nature. suggestion of an esc key on home row, now thats a big wtf for everybody else (except the vi user).

    a better idea is to develop a separate keyboard with vi in mind (escape or colon in home) to be used solely by programmers. hey you can even add a foot pedal lol..

  7. @devski, What? Are you saying that other people besides programmers use computers? Pics or it didn’t happen!

  8. Whether you change CAPS to CTRL or ESC, it is FAR better than having it be CAPS!

    (As an Emacs user, I tend to have it mapped to CTRL; as someone learning Vim, I would naturally see why it should be mapped to ESC–unless you use Screen or Tmux a lot as well! But in any case, CAPS is Evil, and should be abolished, banished, drug out into the street and shot twice in each of its limbs, and then have its bowels cut out and burned in front of its face, and then hanged, and then drawn and quartered; may God have mercy on its soul.)

  9. Use Xscape to set caps lock to be ESC when tapped and CTRL when held. Best of both worlds!!

    Other than that,

    :inoremap j

    is a great alternative. (Keeps hand on home row and is more ergonomic than typing “jj”)

  10. Sorry the command was not showing properly above

    :inoremap j\ \

Comments are closed.