I was reading about vim the other day and found out why it used hjkl keys as arrow keys. When Bill Joy created the vi text editor he used the ADM-3A terminal, which had the arrows on hjkl keys. Naturally he reused the same keys and the rest is history.

Here is how the hjkl keys looked.

ADM-3A keyboard's hjkl keys with arrows.

And here is how the the whole terminal that vi was created on looks like.

Lear Siegler's ADM-3A computer terminal.

Since vim is derived from vi, it uses the same hjkl keys.

And while we're at it, notice where the ESC key is positioned. ESC is where TAB is on modern keyboards.

Lear Siegler's ADM-3A computer terminal's full keyboard.

That's why the ESC was used to change between vi modes – it was so close and easy to reach.

Also ever wondered why home directory is ~ in UNIX? Look at the HOME key in upper right corner.

HJKL T-Shirt

Now you can wear vim arrow keys! I just created a limited edition hjkl t-shirt.

Update: No longer available.

Extra Discussions

My post has generated a lot of awesome responses. See hacker news, osnews, and reddit – /r/programming and /r/vim.

See you next time!