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
Bill Joy used a 300 baud modem when he developped 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.
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 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 developped for the ratpoison window manager
- vimprobable, a fast webbrowser based on webkit
- vimperator, a great enhancement of the Firefox webbrowser which turns Firefox in an efficient keyboard driven webbrowser
- w3m, a text mode webbrowser 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.