The Importance of the Home Row

Alex R. Young
usevim
Published in
2 min readApr 1, 2012

Jobs also decided to eliminate the cursor arrow keys on the Macintosh keyboard. The only way to move the cursor was to use the mouse. It was a way of forcing old-fashioned users to adapt to point-and-click navigation, even if they didn’t want to.

Steve Jobs: The Exclusive Biography, by Walter Isaacson

GUI versions of Vim are often configured to use similar keyboard shortcuts to the windowing system. MacVim, for example, uses Apple’s conventional keyboard shortcuts for many operations including managing tabs and saving files. This generally means the habit of using arrow keys persists.

Eventually, people learn a bit more about Vim and ask: why hjkl?

IBM Model M

The experienced Vim hacker barely moves his hand from the home row, so it’s only natural that the cursor motion keys, hjkl, are situated here. Originally, hjkl was used because older keyboards didn't have dedicated arrow keys:

[vi] was written by Bill Joy for use on an Lear-Siegler ADM-3A terminal, which places arrow symbols on these letters since, like the original Mac shown above, it did not have dedicated arrow keys on the keyboard.

Wikipedia: HJKL keys

However, it’s hard to argue the appeal of ‘hjkl’ to people who are not trained touch typists. Self-taught programmers are often self-taught typists — this can lead to a typing style with a tendency to drift from the home row. Fortunately there are ways to learn touch typing without going back to school. I dimly remember fitting Mavis Beacon Teaches Typing into my daily routine, and there are now web-based alternatives that are free to use.

It’s even possible to use hjkl in Mac OS, and I wrote about this here: A vim-friendly Mac Keyboard. I use fn+hjkl as my cursor keys in Mac OS, but I'd be lying if I didn't admit to coveting a dark grey Happy Hacking Professional 2.

Once you’ve mastered hjkl, arrow keys can be remapped to less-used but equally useful commands. And, other Unix tools use the same keys, or can be configured to do so. Like Steve Jobs many Vim users eliminate or repurpose arrow keys, but for very different reasons.

--

--