| Stenography is the most ergonomic method of computer input I am aware of. Stenography is a mapping of some combination of keys to some output. A particular mapping is called a "theory". One such mapping is phonetics, or the sounds of words. Let one key represent the "Kuh" sound, another "ah", and a third "tuh". Press them all down and when released, you get "cat". "Al" "Guh" "Or" "If" "Um" "Algorithm". 5 strokes instead 8. And that's not even trying to be efficient. Another mapping is to use shapes. Three keys in the top row and one in the middle on the bottom looks like a "T". So, map that to something you associate with T. A theory can be any mapping you want. Stenography is based on shorthand which was invented in the late 1800s. There are plenty of theories that already exist. You don't need to make your own. When you write, you use some words or phrases frequently. Map those to convenient keys. Such mappings are called "briefs". Go crazy with them and you can reach 370 words per minute of real-time dictation. You obviously don't have to be that good. I find that 30 wpm is sufficient to be productive at work. You can reach 70 wpm by practicing 15 minutes a day for a few months. You're a programmer. You can do it. Expecting a lifetime of computer input? Don't optimize for easy key-to-output mappings such as QWERTY or Dvorak. Learn stenography. See Plover and Javelin. |
On a similar note, though, I have amassed a "dictionary" of 50+ bash aliases, 1-, 2-, or 3-characters long.
Some "theories" emerged as well - I have groups of aliases whose names follow a pattern and depend on what subcommand (e.g. in git or kubectl) or options are included in the alias. This is good for mnemonics.
For extremely common commands, I ditch mnemonics and just choose a 1- or 2-character name that has no connection to the name of the command. For example r='cd -'. I chose "r" simply because it's on the opposite side of Enter, and I get to alternate my hands. (I guess this is a "brief".)
What got me into the alias hoarding business was the discovery of complete-alias[1] and, later, the progcomp_alias bash option. Turned out, you don't have to choose between aliases and programmable completion, you can have both.
[1]: https://github.com/cykerway/complete-alias