Touch typing on the CLI

Hey friends,

for a long time now I’ve been trying to get myself to consistently touch type no matter the task that I’m doing. So far I’ve been using touch typing solely when writing longer texts (like now), but not for my regular computer work.

I’ve noticed that it’s increasingly hard for me to keep my hands on the home row while working on the command line or even developing in whatever programming language, simply because it feels disturbingly inefficient - and I couldn’t get rid of this feeling so far. Let me give an example:

Changing a directory on the CLI is done with the cd command. When touch typing on an ANSI QWERTY layout, these two keys are supposed to be hit with the middle finger. However, I find it awfully cumbersome and more importantly slow to do so. Instead, I use my index finger for the c and my middle finger for the d, which allows me type the command significantly faster than I ever could using solely the index finger. Similarly, I find it extremely difficult to touch type regex or things like 2>1& efficiently.

What is your approach when working with the CLI or developing code? Are you able to consistently use touch typing or do you also start to leave your home row more often for these tasks? Any tricks or suggestions?

Thank you

1 Like

I don’t really see the issue here. Touch typing to me just means that you are typing what you are thinking with minimal to no need to look at your hands. The fact that you use your index finger for the ‘C’ key doesn’t mean much. I too use my index finger for the same reason you do, I also have never touched the right shift and in fact remapped it to whatever I fancy.

That said, I personally learned to ‘touch type’ in my first programming class when copying down the teacher’s code (when pecking took too long) and not in a mavis beacons course. I’ve gone so far as you touch type the number row on my blank hhkb, but even still! I have a force of habit to just look at my hands for no reason than that it’s reassuring to me to recalibrate my brain and make sure that my fingers are doing what I tell them to do.

To add onto that, your example with regex is terribly relatable and I don’t personally think, unless you work with regex day in day out, that you should be able to touch type any expression you want with speed just because it takes time to think of what the **** you’re writing. Maybe for a blueprint, but going into the edge cases just begs to have it done slowly.

If you use zsh (might work with other shells too) you don’t have to type cd, just the dir path and hit enter. Thats not necessarily a solution to your problem but it works for me. Alternatively, you could maybe make an alias for cd that uses an easier to ‘roll’ letter combo.

This is actually something I always remind myself since I use oh-my-zsh and still have the habit of using cd since I’m on other systems that are just bash.

1 Like

I’ve gotten spoiled by it, and sometimes forget to use cd when I’m working on a system that uses bash.

Thanks for the feedback! Maybe I was using “touch typing” as the wrong umbrella term here, but what I was referring to was rather the typical assignment of fingers and keys.

Indeed, omz doesn’t require the cd, I was basically just giving an example. Generally speaking, I found however that for many tasks I perform on the command line, not following the touch typing rules gives me a speed advantage.

I tend to keep at least one-hand on the home row to avoid this problem. Having mapped layer 1 to CAPS lock key, arrows to L1 IJKL, and other edit/navigation keys to L1 also helps me. HHKB-like layout with closer BS key too.

Oh, then totally, rock however you want to rock. So long as you are enjoying whatever it is that you’re doing on the computer and don’t feel like you’re holding yourself back you shouldn’t be self-conscious about that sort of thing. Life is a jumble of made-up rules that are no more than “guidelines” :slight_smile:

1 Like

Personally, I’ve never done “proper” touch typing but I’ve managed to get by with muscle memory for regular commands and forcing myself to use a blank keyboard to build muscle memory for programming-specific keys.

Honestly, the “use this finger for this key” model definitely falls apart for pretty much any work that isn’t just hammering out full sentences of regular words. I’ve heard dvorak is better than qwerty for programming but I don’t actually know anyone who has had the determination to make the switch to confirm that.

1 Like

I once worked with someone who was in fact using Dvorak full-time, who confirmed what you just said. However, I already find the HHKB layout partially limiting for finding great boards and good keycaps - I would feel very limited with such a radically different thing like Dvorak. Unless of course one is happy with solely using non-sculpted profiles (KAM, NP, etc), blank keycaps or simply wouldn’t care about the legends.

Yup. Tried Workman, Dvorak, and Colemak, but QWERTY is king for me :slight_smile:

Blank keycaps ftw. I would love to get myself a set of those damned dots I see everywhere. Or maybe something adjacent to those.

I sometimes rock blanks myself. They’re cool, unfortunately I haven’t found really high quality ones yes. Happy for suggestions!

1 Like

Cool blanks! You could consider ePBT blanks for cherry profile, SP DSA blanks for DSA profile, and MT3 Bleached for MT3 profile

In terms of touch typing on the command line, I would argue that it is less important. Accuracy is more essential, especially if you’re accessing boxes in higher environments

For a productivity uplift, I find it useful to create cli aliases as nifty shortcuts for commonly used commands

1 Like

To use blanks to ease into touch typing, try starting with just one blank then add more over time. When you’re almost done with alphas, start getting into habit of keeping your fingers on the home row.

PS: Do the most frequently used keys first.

1 Like

Yes, blank keycaps will help to force you to remember the keys(if you haven’t). I just want to point out that drop is selling GMK pixel that are currently in stock. They are the GMK blank for me.

Yeah I don’t touch type when I do that- I personally write in C# and C++ so there’s a lot more characters and numbers than python or javascript. I don’t really worry about touch typing because I agree with you- touch typing and trying to write stuff that isn’t actually words is really tough.

Imagine trying to touch-type lisp code…