This is something I'm proud of about myself as a developer, which is rare.

My setup with the Alt key.

All the keys in my left hand (as in, for all the keys in my left hand region, qwerasdfzxcv)
have their Alt and AltShift combinations mapped to (almost) all the special chars related to programming.
For example:
Alt + z -> /
AltShift + z -> \

Here's me typing them in 2 seconds.

And, on my right hand, I emulate the arrow keys movement:
Alt + hjkl moves chars
AltShift + hjkl moves and selects chars
AltCtrl + hjkl moves words
AltCtrlShift + hjkl moves and selects words
Alt + n. backspaces/deletes chars
AltCtrl + n. backspaces/deletes words

And the best of them all:
Alt + space -> <return>
AltShift + space -> Shift+<return> (which does a newline in chat editors like fb messenger)
AltCtrl + Space -> Ctrl+<return> (which can do the submit in some forms, like send email in gmail)

Now, my hand sits for real on the home row and rarely moves because it's not there just for vim, but for the entire system as well.
This setup is very compliant with my little mouse use, since I use vim, and the vim extension for chrome.
I still use and need the mouse for some tasks.

Another one huge benefit is that I don't have a problem remembering where the keys are. This is a problem I can have because I go between different keyboards because of having used different keyboards: argentinian, american, japanese and now brazilian (I'm not trying to be cool, it's just a series of circumstances that led me to using different keyboards).

At the same time, this thing might have become a hinderance because it's not as easy for me going to a different keyboard.

Regarding implementations, when I used MacOS I used Karabiner, insanely clean interface.
On linux, I have to create my own mapping in X.

  • 1
    ++'d, i want to try it out sometime :D
  • 1
    And here I am, not even having an Alt key...
  • 0
  • 0
    @erandria it's a Mac 🤣
  • 0
    @Froot I had this setup initially with a macbook using the opt key.
    It's a hundred times easier to setup because of Karabiner.
    Here's my karabiner json file

    If you're interested, you can install karabiner, replace the karabiner.json with that file, and delete lines 436 to 443 (because it's just some stuff to target a japanese macbook keyboard), and delete line 435 last comma to make the file valid json.
Add Comment