Ended wrote:Oh, I definitely agree hjkl is more efficient than the arrow keys. I just think that its importance tends to be overstated compared to vim's other motion commands. Like, the editing speed you will lose by not using w/e/t/f or whatever is as much, and probably more, than you will lose by not using hjkl.
Oh, absolutely. The vi movement commands are awesome, and the reason for my vim-envy. I've been meaning to switch to evil-mode for ages for that reason. I wouldn't want to use vim as my primary editor (I think emacs is more powerful and more easily configurable - although admittedly somewhat bloated), but for actual text editing, vi's commands are the best I've used. Partly due to modal editing, but mostly because having a coherent "grammar" of movement/editing commands gives a combinatorial increase in power.
Iranon wrote:QUERTY keyboards are arranged to prevent jamming of early mechanical typewriters, which was easily caused by neighbouring arms being depressed in rapid succession. It has as a lot of hand-alternating sequences in English by design which is at odds with comfort and accuracy at speed.
I've heard many times that this is a myth, and I've never seen any evidence that it's true, so I'm forced to dismiss it.
Iranon wrote:The original design constraints no longer apply. If you care enough about efficiency to do something nerdy about it, picking a sensible keyboard layout would be a better start.
The keyboard layout isn't really the issue here. The keys were obviously chosen for their position, not for the letters on them. If you use Dvorak, you could still use the home row keys, although you'd have to move everthing else around (I guess if you wanted to keep all the positions the same, you could do it programmatically). Alternatively, you could learn the new positions: they'd be slightly slower than the home row positions, but still way faster than the arrow keys, and you'd be able to use an unmodified vim configuration. The home row keys are efficient, but the *main* benefit of hjkl in vim is simply that they're on the main keyboard.
ahammel wrote:Well, now that we're on the topic of keyboard design, I've been wondering if Randal was correct about this. Is there any solid evidence that Dvorak (or some other layout) is that much better than QWERTY?
I think he is mostly right. There seems to be no actual historical evidence for most of the stories that are floating around (or if there is, I've never seen it produced). Most Dvorak users claim relief of RSI symptoms, some claim faster typing speeds. Studies by Dvorak and supporters found it was faster, but these were not impartial studies. A US government study by Strong in 1956 found it wasn't faster, but has been claimed to be biased in favour of QWERTY. There really doesn't seem to be any high quality, replicated studies to go on.
Based on aggregated anecdotal evidence, I'm willing to believe Dvorak is more ergonomic (of course, there are other layouts based on more recent ergonomic studies, which may be better). It may or may not be a bit faster.
Iranon wrote:Cursor keys easily accessible from the typing position are preferable for the kind of programs we're considering here, if it can be done without kludges.
If we could get all programs to agree on keyboard shortcuts, we wouldn't need it. But since we can't, easily accessible cursor keys would be nice. Most keyboards have unused room below the keyboard that would be incredibly convenient for thumb keys. Keyboard makers could put cursor keys there. Or better yet, new modifier keys that give cursor keys in combination with home row keys.
You could do it in software if you had a free key, but then you lose a key you could be using as a modifier. One possibility is if you swap CapsLock and Control, instead of using the original Ctrl as CapsLock, use something like xbindkeys to make it give CapsLock in combination with "c", arrow keys in combination with "hjkl" (or whatever), etc. Then you'd have lots of spare combinations available that wouldn't conflict with anything. It'd mean running a daemon constantly, but that's not a big deal. Actually, I like this idea. Maybe I should do it. I only use the left Ctrl key as Escape now, and I can usually use Ctrl-[ for that. I only really need it for cancelling dialog boxes and stuff, and the standard Escape key should be okay for that.