>I suspect that the main reason behind the hjkl (which is very >unnatural for me, the arrows have a much better design with the inverted >T at least IMHO) was that the first keyboards used to develop/use vi >probably hadn't arrow keys, or they were very far at the right of the >keyboard.
Pretty much so. Early dumbterminals (think ADM-3a and similar critters) didn't have arrow keys, but they *did* go so far as to have little arrow marks on the keycaps themselves, underneath the letters, on -- you guessed it -- h/j/k/l. The reason for that is similar to subdued numbers/characters on keycaps on laptops and the like, where there's no separate numeric keypad, so you hit <numlock> or <Fn> or whatever your laptop has, and those keys send the char in the subdued text instead of the char they normally send. Hit *control* instead, for ^H (backspace), ^J (linefeed), ^K (vertical tab), and ^L (formfeed), and you get the cursor motions left/down/up/right, respectively. If you recall the old termcaps/terminfo entries for such critters, you'd see usually the same values for cub1/kcub1, cud1/kcud1, cuu1/kcuu1, and cuf1/kcuf1, as ^H/^J/^K/^L. Only later with discrete arrow keys did you start getting ANSIish escape sequences like "\[[A"/"\[[B"/"\[[C"/"\[[D". Gawd, I feel old...
