Arrow Keys: vim HJKL vs Inverted T
Which is More Efficient: HJKL vs IJKL
vi vim use {h j k l} keys to move cursor. Another approach is Inverted T {i j k l}. This page investigates which is more efficient.
Considering Key Ease of Press
Let's assign score to key positions with respect to ease of key press. Let's set k to have the max score of 1. We'd have something like this:
I 0.8 H J K L 0.5 0.9 1 0.7
Consider Command Frequency
now look at these command's frequency.
key | command | % |
---|---|---|
↑ | previous-line | 15.48 |
↓ | next-line | 17.10 |
← | backward-char | 3.23 |
→ | forward-char | 5.51 |
Note: this stat counts multiple times of a key when it is held down. For example, if down arrow key is held for 1 second, it may repeat 10 times, and is counted as 10 times.
Also, this frequency counts emacs commands that move cursors up/down one line or left/right one char. These commands are bound to arrow keys, but also to C-p, C-n, C-b, C-f. It is not a log of actual arrow key press. 〔see Emacs Command Frequency Statistics〕
A more realistic frequency stat of arrow keys might be this:
- ↑ 1.5%
- ↓ 2%
- ← 1%
- → 1%
Arrow Keys Efficiency Calculator
Multiply a key's ease score by its frequency, and sum all key's scores, we get the efficiency score of a keybinding.
Key Ease Score (1 to 10. Bigger means easier)
|
|||
|
|
|
|
Command Frequency (1 to 10. Bigger = more used)
|
||
|
|
|
Score (bigger is better)
- Vi:
- Inverted T:
Try to adjust the key score or command frequency.
Overall, Inverted T wins slightly.
This test only considers ease of each key press. For just these 4 keys, this simple measure can be considered a reasonable test of efficiency. But note that a robust test should also consider bigram frequency. 〔see What is the Most Efficient Keyboard Layout?〕
Considering Bigrams
vi has h moved away, while inverted T has the i moved away. Which one is better? I think if you consider this, then the inverted T is better. Because, consider all 2-key combinations involving the one key that's moved away. The vi way, involving a moved index finger left/right for ← ↓ , is more costy than the moved middle finger up/down. This with vi is pretty bad. This can be easily seen when playing pacman.
Considering Intuitiveness
Another factor is intuitiveness. The inverted T is more intuitive. vi's row arrows require learning. That's one big win for inverted T.
Conclusion
Inverted T is slightly better. The winning point is when considering bigram. vi's way is especially bad when you have frequent left/right movement.
Keybinding and Input-System
- Why Alt Tab is Bad for Switching Windows
- How Many Shortcuts Are There
- Emacs vs vim, Keybinding Efficiency
- vim HJKL vs IJKL
- Gamers WASD Keys
- Design of vim Mode Activation Key
- History of Key Shortcuts: Emacs, vim, WASD
- History of vi Keys
- Muscle Memory vs Mnemonics
- Ctrl ❌
Ban Key Combos - Ban Shift Key
- Function Key vs Key Chord
- Fast-repeat vs Non-fast-repeat Keys
- Modifier Keys Usage Frequency
- Keyboard Shortcut vs Launch Buttons
- Best Way to Insert Parenthesis/Brackets
- Math Input Design
- Create Math APL Keyboard Layout
- Linux Mac Windows, Which is Best for Keybinding?
- Dual-Function Keys (Home Row Mods)
- Xah Shorthand System (Abbrev Input)