vary by TextEditorFamilies
. Each of the TextEditorFamilies
has a popular or default keyboard layout that is distinctive to it.
Layout methods include:
There are many CommonProblemsWithKeyboardLayouts.
HJKL for cursor motion comes from the fact that on some early terminals, the left-arrow key sent CTRL-H (backspace), the down-arrow key sent CTRL-J (linefeed), the up-arrow key sent CTRL-K (vertical-tab), and the right-arrow key sent CTRL-L (formfeed). These are easy to remember if you're familiar with the ASCII code, and they make a nice left-down-up-right pattern on the home row.
- It wasn't that hard to pick up HJKL sequence, even if you didn't happen to recall what control-codes those keys generated. Some of the early terminals didn't have arrow keys (or function keys), but HJKL worked anyway.
- And the Backspace key on early "ASCII" terminals like the DEC VT-52 and the Wyse 50 also generated Control-H, which led to challenges when the Backspace was supposed to earse the previous character and the left-arrow key was simply supposed to move to it.
- "ANSI" terminals, like the VT-100, generated codes of the form Esc[<character> when F-keys and arrow keys were pressed, and avoided the duplication. Instead, the application or the OS had to implement timing logic, to determine whether the keypress was the Escape key and then the [ key, or was a one of the special keys generating a command sequence. --DMcCunney
See also CommonProblemsWithKeyboardLayouts.