Arrow Keys: vim HJKL vs Inverted T

By Xah Lee. Date: . Last updated: .

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.

vi arrow keys hjkl VzCdq
vi arrow keys hjkl VzCdq

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.

Emacs Cursor Commands Frequency
keycommand%
previous-line15.48
next-line17.10
backward-char3.23
forward-char5.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:

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

google pacman
Google Pacman

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

HJKL keys and vi

Arrow Keys