A Useful Word Processor Function All Tools Seem to Lack: Shift Keys Left

I touch type. I’m self-taught, and after more than, oh, twenty-five years or so, I’m pretty fast. I don’t need to look at the keyboard. In fact, I can close my eyes and just type away1.

But on certain keyboards, I seem to make the same mistake from time-to-time. I’ll start typing a sentence and by the time I look at the screen, this is what I see:

Dp muvh got nrinh s hoof yu[ody!

The problem, of course, is that I’ve managed to shift my fingers on the keyboard one key to the right. I know there are little nubs on the F and J keys that are supposed to tell you where you are but I simply don’t pay attention. My mind is elsewhere. Like on the scene that I am writing.

Once I realize what happened, I have to go back and delete the gibberish and rewrite what I meant to write. It seems to me, that (a) I am not the only one in the world to which this annoying phenomenon happens, and (b) since it is a one-key shift, there should be a way to quickly fix the problem.

I think that a decent word processor should include a SHIFT KEYS LEFT (or RIGHT) function on the Edit menu, the way some word processor have CHANGE CASE functions. The way it would work is this. You accidentally type algorithmic gibberish like:

Dp muvh got nrinh s hoof yu[ody!

You can then highlight the text and click Edit->Shift Keys Left and the result would be:

So much for being a good typist!

It saves time and turns your gibberish back into what you intended. Why don’t word processors have this useful function? I’m seriously considering writing the function and adding to the set of functions I’ve created for my Google App Scripts.

  1. I’m doing so this very second, but of course, you’ll have to take me word for that.


  1. I suppose ONE way to fix this is to create an Autohotkey script and assign it to a hotkey. The script would first used StringSplit to break every selected character into an array. Then loop through the array and use a series of StringReplace statements to replace “h” with “j’, “j” with “k” etc. Then replace the selection with the newly built string.

  2. As in 95% of all questions, the answer is emacs!!!

    At the moment this is an existence theorem rather than a constructive proof, but someone moderately competent in emacs lisp (which I am not) could probably write shift-region-right based upon translate-region which accepts a region and a table of key translations.


This site uses Akismet to reduce spam. Learn how your comment data is processed.