Happy Hacking Keyboard Professional Review
When you first use the HHKB Pro, the first thing you notice is the lack of dedicated arrow keys. Anytime you need an arrow key, you have to press a Fn-<key> combination. What's worse is the arrow keys are not immediately obvious; you need to take your hand off the keyboard, look at it, press the combination and then put your hand back for more typing. If you use the HHKB Pro long enough, though, you probably can learn to press the Fn combinations for the arrow keys without looking. But this simply is not as convenient as having dedicated arrow keys.
However, Linux builds on a long UNIX tradition, and UNIX was developed on many different terminals that had many different keyboards. As a result, both Emacs and vi are designed to be usable with only standard ASCII keys. In my college days, I used to write Pascal programs on ADM3A terminals that didn't even have a dedicated Backspace key; you had to press Ctrl-H when you wanted a backspace. If you can learn to use Emacs or vi keystrokes, you can get by fine without using arrow keys, and there are many programs in Linux that use these keystrokes.
I configured my bash shell to use vi keystrokes for command-line editing and quickly became comfortable with it. See the sidebar for notes on using vi or Emacs mode in the shell.
Actually, I'm kicking myself now that I didn't set my shell for vi mode long ago. Because I'm expert with vi, I can edit command lines much better in vi mode, without taking my hands from the home row keys. If you have spent time mastering either vi or Emacs, try them in the shell!
If you have a small laptop or a tablet PC, the HHKB Pro makes an excellent carry-along keyboard. If you pack the HHKB Pro into a bag, I recommend you fully unplug the USB cable. The HHKB Pro's cable is a standard USB cable with an A connector on one end and a mini-B connector on the other.
Unfortunately, the HHKB Pro is rather expensive. The Web site lists the regular price as $269. I searched the Web and was able to find the HHKB Pro for as little as $249, which is still much more than I am willing to pay for a keyboard.
The Happy Hacking Keyboard Lite 2 model, in USB or in PS/2, is available for a regular price of $69.
If it were not for the price, I wholeheartedly would recommend the HHKB Pro. It's everything you could ask for in such a compact keyboard. Of course I'm using it to type this article, and I'm enjoying the smooth feel of the keys. It is nicer than my usual keyboard, but alas it costs more than six times as much.
vi or Emacs Mode in the Shell
By default, the bash shell already should be in Emacs mode. You can use Ctrl-P and Ctrl-N instead of the up and down arrow keys to scroll through the command history. You can use other Emacs keystrokes to edit command lines.
To make bash use vi keys, edit a file called .inputrc in your home directory and insert these lines:
set editing-mode vi set keymap vi-insert
Then, start up a fresh bash shell and try it out. If you press the Esc key, you enable editing mode, where hjkl keys work as left, down, up and right arrow keys. Other vi commands, including ^ for jump to start of line and $ for jump to end of line, also work.
If your system defaults to vi and you want Emacs mode, insert these lines in your .inputrc file:
set editing-mode emacs set keymap emacs
These features come courtesy of the GNU Readline Library. For more information on Readline and its features, run man 3 readline or check the Readline Web site (cnswww.cns.cwru.edu/php/chet/readline/rltop.html).
Not only bash but any program that uses the GNU Readline Library can be customized by making changes to your .inputrc file. For example, the GDB debugger uses Readline.
If you use the tcsh shell, again Emacs mode is available by default. You can set vi editing mode by placing this line in your .tcshrc file:
Read the tcsh man page for more information.
If you use the zsh shell, all you have to do is set the EDITOR or VISUAL environment variable to your favorite editor. If your choice contains the string “vi”, zsh sets vi mode; otherwise it defaults to Emacs mode. You also directly can manage the editing mode with zsh's bindkey command. See the zsh man page for more information.
Even the Midnight Commander (mc) file manager supports Emacs-style command-line editing as well as Emacs-like and vi-like key bindings in its file viewer.
Steve R. Hastings first used UNIX on actual paper teletypes. He enjoys bicycling with his wife, listening to music, petting his cat and making his Linux computers do new things.
Practical books for the most technical people on the planet. Newly available books include:
- Agile Product Development by Ted Schmidt
- Improve Business Processes with an Enterprise Job Scheduler by Mike Diehl
- Finding Your Way: Mapping Your Network to Improve Manageability by Bill Childers
- DIY Commerce Site by Reven Lerner
Plus many more.