Enjoying Open Source Software

HJKL motion keys

Learn to use the hjkl motion keys for efficient mouseless living

hjkl cursor movement keys origine

The famous hjkl cursor movement keys started their quest for world domination at the birth of the vi editor

The vi editor was created by Bill Joy in 1976.

According to Wikipedia the reason he choose for hjkl because of the keyboard of the ADM-3A computer terminals manufactured by Lear Siegler, first produced in 1975. That keyboard had arrows on the hjkl-keys. See this

picture of the ADM-3A keyboard

Bill Joy used a 300 baud modem when he developed vi. This is one of the reasons why vi is an extremely efficient text editor.

Although vi is more then 30 years old, it is still the most preferred editor by a lot of people. There are many derivates and clones of vi.

The most known are vim, elvis and vi.

Some interesting links about vi

hjkl is great to use

It takes some time to get used to hjkl as cursor movement keys. But once this is mastered it is a very efficient method. At least, on a QWERTY-keyboard. On a QWERTY-keyboard the hjkl keys are all on the middle row precisely under the four righthand fingers. They are on starting position for touch typists.

hjkl keys

hjkl keybindings in the wild

Besides vi and the vi clones there are other applications that use hjkl keybindings.

  • Bash can be set in vi-mode with set -o vi
  • GNU Screen (when in copy mode the cursor can be moved according to the hjkl method, including b, e, $ etc.)
  • mutt, a text mode mail client understands hjkl movement commands
  • ratmenu, a great menu developed for the ratpoison window manager
  • vimprobable, a fast web browser based on webkit
  • vimperator, a great enhancement of the Firefox web browser which turns Firefox in an efficient keyboard driven web browser
  • w3m, a text mode web browser that support hjkl right out of the box
  • snownews, a text mode rss-reader, has a flexible keybindings system. It is not difficult to make it understand hjkl :)

The following applications are said to use hjkl keybindings. However I have not used them in real life.

  • Vide is a simple filemanager with vi keybindings
  • Wyrd is a text-based front-end to remind, a sophisticated calendar and alarm program.


⇽ Use the hidden powers of the w3m textmode webbrowser Raspberry Pi as PXE, TFTP, DHCP and NFS server ⇾