So, a week or two ago, I ordered a Kinesis Advantage USB keyboard because, after a little research, found that it was the best there is for reducing arm and hand strain. This action was precipitated by what I think was an RSI-related attack.
I’m still not quite up to speeed on it, but I think most of that has to do with the fact that I’m not doing the exercises daily. There’s a lot of exercises to do, but I can certainly see the value in doing them.
Because I haven’t been doing my exercises, I have no muscle memory for the placement of the arrow keys. Since, when editing text, I often use keyboard shortcuts to move around by word, or to jump to the beginning or end of a line, this was a serious productivity hit. Fortunately, I was able to come up with a solution that I think was pretty clever.
One of the neat things about this keyboard is that you can program macros into it. I can program almost any key, or key chord to type one or more characters on the screen. I put this feature to good use. vi(m) fans might be tickled by this. I mapped the hjkl keys to the basic cursor keys. Shift-hjkl will select the text as you cursor around. The w and b keys are for advancing forward a word or going back by a word. The d key deletes a line. a and z take you to the beginning and end of a line, while A and Z select from the cursor position to the beginning and end of a line. So: not exactly vi-like, but the mnemonics are easy enough, and it works well with all GUI apps. There is one minor drawback however, and if anyone has an answer to this, feel free to contact me. In vi, you normally have to shift between normal mode and command mode with the escape key. On this keyboard, I have to hit Program-F10 to toggle macro mode on or off. This isn’t a big deal, since my productivity got a huge boost, but taking a moment to find those keys do incur a bit of a cost.
So: a hearty recommendation to vi-lovin’, Advantage-using people - use your vi muscle memory on all your apps by spending a bit of time setting up macros for your keyboard. You can thank me later when you do.