For shell users, moving to the arrow keys on the keyboard is something of an antipattern, moving away from the home row so central to touch typists. It therefore helps to find ways to avoid using the arrow keys in order to maintain your flow.
Bash
The arrow keys in Bash are used to move back and forth on the current command line (left and right), and up and down through the command history (up and down). This leads to the old shell user’s maxim:
“Those that don’t remember history are doomed to press Up repeatedly.”
There are alternatives to both functions. To move left or right by one
character on the command line without deleting characters already placed, we
can use Ctrl-B
and Ctrl-F
.
However, to make things a bit faster, there are four other key combinations to move back and forth on a line that are worth learning too:
Alt-B
— Move back a wordAlt-F
— Move forward a wordCtrl-A
— Move to the start of the lineCtrl-E
— Move to the end of the line
Similarly, to move up and down through history, we can use Ctrl-P
and
Ctrl-N
respectively. Don’t forget that rather than keep tapping one of these,
you can search backward or forward through history with Ctrl-R
and Ctrl-S
.
Whoops, I think I just taught you some Emacs.
Vim
To avoid the arrow keys in normal mode in Vim, use h
, j
, k
, and l
instead. This can take a little getting used to, but the benefits in terms of
comfort for your hands and speed is easily worth it; using the arrow keys is
one of the Vim anti-patterns.
If you’re asking “How do I avoid the arrow keys to move in insert mode?”, the answer is that you shouldn’t be moving in insert mode at all; it’s inefficient. When in insert mode you should be inserting text, and maybe using backspace or delete every now and then. To move through text, switching back to normal mode is vastly more efficient.
Moving in command mode is similar. If you need to move around on the command
line, in most cases you should pull up the command window so that you can
edit the command in normal mode, and then just tap Enter
to run it.
In general, when you start thinking about moving through any kind of text,
you should reflexively hit Esc
or Ctrl-[
to go into normal mode, in order
to take advantage of a whole keyboard’s worth of navigation shortcuts.