7 min read

Hotkeys, keyboards, personalisation: ways to move faster as a developer

Hotkeys, keyboards, personalisation: ways to move faster as a developer
Photo by Sumeesh Nagisetty / Unsplash

As a software developer, sooner or later you will need to improve your productivity by changing how you do your work. It can be either a conscious decision about creating your software to solve a small nitpick for your editor, or something indirect, like being annoyed that you have to do five clicks before you can re-open your editor inside of another project to look at something up (I speak from personal experience here).

This article was written to give you ideas about how you can improve your productivity, starting with doing something simple, like giving the time of your day to look through your editor's hotkeys, finishing with measures that can be considered overkill by some (yes, VIM will be mentioned).

Despite this article being targeted at developers, I do believe that other people who have to work with PC on a daily basis might find some interesting tips too.

Ideas that I am going to discuss are mostly about how we work with keyboards. Traditionally, keyboard-based workflows are faster than using a mouse and GUIs. Although this might change in a few years with the improvement of AI and voice recognition, personally I would still opt into using a keyboard for interacting with AI because it is easier for me to achieve the flow state this way. Also, tools like Cursor provide hotkeys to streamline the interaction, although I find the default bindings a bit clunky (thankfully, we can configure those things).

Level 0 - All in the golden afternoon...

Long story short, when designing digital tools, there is always a trade-off between the user's potential productivity and the software's accessibility. If we provide users with intuitive tools (like mouses and intuitive interfaces) to interact with their tools, this will drastically decrease the learning curve for said tools. On the other hand, if we design the tool with maximum productivity in mind, we will choose interaction methods that are not the most accessible, alienating some users as a result.

It is understandable why most PCs today are used with mouses. Mouse is a tool that's so easy to understand that even a 4-year-old child can figure it out (again, spoken through experience). But as soon as we become professionals, we have to learn the tools' capabilities for improved productivity, if we are interested in being faster in our work, even by a slight margin.

Level 1 - Down the rabbit hole

We all have our main tool. VS Code, Figma, Microsoft Word, etc - you name it. We spend most of our day working with them, and there are some routine activities that you have to perform again, and again, and again, and... to the point where it becomes unbearable.

As a software developer, I've experienced it with managing the sidebar tabs in VS Code. I often switch between the file browser and search tab for obvious reasons, and doing it with the mouse just takes too much time. I have to lift my hand from the keyboard, move it to my mouse, grab it, move the cursor to the needed button, and hopefully don't click outside of it (my aim is terrible). but with the keyboard, I press three buttons, and voila, the tab is opened. I even save some time by avoiding the whole mouse thing. Sure, we are talking two seconds max here, but it adds up over time.

You should try and learn the hotkeys that your tool provides. You don't need to learn all of them, just take a look through their list. Surely, you'll find a hotkey or two that will immediately stand out and make your life easier.

Here are some keybindings that I often use in VS Code:
- Cmd + F: file-scoped search. Literally, a savior when you need to work in a huge convoluted file.
- Cmd + Shift + F: project-scoped search. Good to find places where certain functions are used across the codebase.
- Cmd + G: helps to move your editor's cursor to the exact line and column. Useful when you don't feel like using your mouse/touchpad for scrolling the whole thing.

Also, I cannot forget about speedtyping. Being able to type without looking at my keyboard at a decent speed was a real game-changer. This skill sounds daunting to learn for a lot of people, but there are a lot of resources like typeracer, monkeytype, etc that will help you with this skill. I would recommend starting with typingstudy.com, since the lessons there tell you which button should be pressed by which finger, developing correct habits for speed-typing on a keyboard with QWERTY layout.

Level 2 - Rabbit sends in a little... list of custom keymappings?

We are at a point where this article finally becomes developer-focused. Let's talk about our editors.

A good editor needs to have at least some capability for customization. It is one thing to have a huge list of hotkeys and another one to give the users the ability to customize their environment as they please. This is necessary because at some point general productivity-oriented practices and design choices cannot satisfy your personal needs. Things that might be comfortable or necessary for you might not be the case for other users, or sometimes you need something that hasn't been done yet.

I've been affected by this rather early. Despite me not being too deep down the rabbit hole, my setup is already weird enough to make people raise their eyebrows. For example, I've remapped the caps lock to act as a Ctrl key on my system. at first, this might seem ridiculous, Why would one do that? Well, reaching for the Ctrl key all the time feels rather awkward while caps lock is always close to my pinky finger, and I rarely type words that consist of higher register characters completely, and even when I do, holding down Shift does the job.

Chances are, you use VS Code or some derivative of it (Cursor, Windsurf, etc). this family of editors has a feature called chords (yes, we are musicians now). Chords are essentially two consecutive keypresses. You might confuse it with keypress combinations like Ctrl + C and Ctrl + V. The difference between the former and latter is that with combinations, you have to press two buttons at the same time, while chords are a sequence: You first press Ctrl, and only then do you press C.

Actually, you can even make Chords that consist of keyboard combinations. For example, I use such a setup for terminal instances management. To open a new terminal window, I use Ctrl + N followed by Ctrl + M (New terMinal, get it?). To close a terminal instance, I use Ctrl+M Ctrl+K (terMinal Kill. Cruel, I know).

đź’ˇ
Chords is actually a pretty weird name for this feature since in music it means a few notes being played concurrently, not one after another. I suppose that people at Microsoft decided that "chords" sounds cool. Can't blame them for it.

Level 3 - A mad vim-party

When trying to work on a file in VS code without using a mouse, you'll quickly run into a problem. It is actually hard to move around. Long story short, there is a workaround around this. Namely, it a whole another universe of editors like emacs or vim. Im not going to spend our time on explaining these in details. Their main benefit is that they are highly customizable, continuing with our theme or increased productivity via tailoring our workflows to ourselves. If you want to try something like that, but jumping from your editor seems like a too big of a step, you can try various extensions that implement vimotions in your editor of choice. Essentialy, vimotions is a set of hotkeys that replicates the file-navigation behaviour of vim. For VS Code-compatible browsers, I would recommend VSCodeVim and Learn Vim extensions.

Level 4 -Who stole the keyboards?

When it comes to developer productivity, one of the most overlooked advantages lies in customizing your tools to match your workflow. Editors like Emacs and Vim go far beyond the typical coding environment—they are platforms that can be molded to suit your habits, preferences, and even your muscle memory. Whether it's redefining keybindings, automating repetitive tasks, or tailoring how code is displayed, these editors reward the time invested with a setup that feels intuitive and frictionless.

This philosophy of personalization doesn't stop at software. Many developers in the enthusiast community take it a step further by adopting custom mechanical keyboards. Devices like the Corne or other split, ortholinear designs allow users to remap every key, reduce finger travel, and create multi-layer layouts that keep common functions close at hand. Beyond boosting efficiency, these keyboards are also designed with ergonomics in mind—helping to prevent strain-related injuries like “Emacs pinky,” which comes from repetitive stretching to reach modifier keys on standard layouts. With thoughtful key placement and minimal movement, custom keyboards can make long coding sessions far more sustainable.

Together, customizable editors and keyboards form a powerful combination. They let you strip away the inefficiencies of one-size-fits-all tools and replace them with something uniquely yours. In a field where seconds add up and comfort matters, shaping your tools to fit your brain and body can lead to meaningful, long-term gains in productivity.

Summary

As you can see, even a trivial topic like "how to use your tools effectively" can go to far extremes. After reading this article, you might ask yourself a question: "should I really go this far to be effective?". Honestly, the answer is probably no. As long as you do your job in a timely manner, you are free to choose your methods. There is no shame in being a mouse-only person, especially considering the learning curve of some tools that are described here. Still, it is always great idea to know what is available to you.

Further reading

GitHub - foostan/crkbd: Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys.
Corne keyboard, a split keyboard with 3x6 column staggered keys and 3 thumb keys. - foostan/crkbd