Over the past few years, I’ve been using AutoHotkey with a custom key-binding script to enhance my keyboard productivity. These custom short-cut keys allow me to navigate, select, and delete text without my hands ever having to leave the home row of the keyboard. I call this set of custom key bindings “RenZkeys”.
RenZkeys works in virtually every developer IDE, plain text editor, and productivity tool like Word, Excel, etc. It takes a bit of time to learn, but once you’re proficient, it can significantly improve your keyboard productivity. In addition, it can dramatically reduce repetitive stress from unnecessary hand movement.
It’s surprising how often your hands move from your keyboard to your mouse (and back) while typing. Your hands are also constantly leaving the home row to use navigation keys. All of these little keyboard transitions have a small time-cost. However, that cost can add up significantly over many hours of typing.
The idea for this shortcut-key script came from my long-time friend and fellow software developer Jon von Gillern. He had been using a slightly different version that he called “Vonmacs”, which was a play on his last name and Emacs – the classic text editor known for its highly efficient use of keyboard shortcuts.
However, over the years, I’ve made some minor modifications that I believe have improved the efficiency and functionality of the key bindings. And now that I’ve been using this keyboard mapping successfully for more than half a decade, I think it’s time to open-source the script and share it with the world.
With RenZkeys, you can perform three common types of text-editor operations without your hands leaving the home row: text navigation, text selection, and text deletion. In addition, you can perform these operations at the character, block, page, and document level.
Here’s how it works:
To move your cursor up, down, left, or right by a single character, you simply hold the ALT key with your left thumb and press “i”, “k”, “j”, or “l” respectively. This is equivalent to pressing the up, down, left, or right arrow key.
To move your cursor up or down by a whole function, block, or paragraph you simply hold ALT+CTRL with your left thumb and pinky and press “i” or “k” respectively. To move your cursor left or right by a whole word, you hold ALT+CTRL and press “j” or “l” respectively. This is equivalent to holding CTRL while pressing the up, down, left, or right arrow key.
To move your cursor to the top or bottom of the page, simply hold ALT and press “8” or “,”. To move your cursor to the beginning or end of a line of text, you hold ALT and press “h” or “;” respectively. This is equivalent to pressing Page Up, Page Down, Home, or End.
To move your cursor to the beginning or end of a document, you hold ALT+CTRL and press “8” or “,” respectively. This is the equivalent of holding CTRL and pressing Page Up or Page Down. Using ALT+CTRL and pressing “h” or “;” simply moves your cursor to the beginning or end of the line as it did in page-level navigation.
Holding SHIFT while using any of the previous key combinations will perform text selection. Holding ALT+SHIFT allows you to select text at the character and page level.
In addition, holding ALT+CTRL+SHIFT allows you to select text at the block and document level.
You can delete a single character by pressing ALT plus “m”.
Or you can delete an entire line (in applications like Visual Studio) by pressing ALT+CTRL+“m”. This is equivalent to pressing CTRL+DEL.
1. Download AutoHotkey from their website.
3. Double-click on the file and it will activate the keybindings.
4. If you want to automatically activate these keybindings every time you start your computer, then simply copy/paste the file (or a shortcut to the file) into your Windows startup folder.
Thanks again to Jon von Gillern for this great idea that has helped me maximize my keyboard productivity and minimize the cost of years of unnecessary mouse and keyboard movements!
If you’d like to learn more about how to improve your software development skills, please check out my online courses on software development, data science, machine learning, and artificial intelligence.