Open your ~/.inputrc
. If you don't have this file, see the end for how to create it. Add these lines:
## arrow up
"\e[A":history-search-backward
## arrow down
"\e[B":history-search-forward
Lines starting with #
are comments. I can't remember what is backward and what forward. Experiment with it. Maybe you have to switch backward and forward.
Just re-open possibly open terminal windows for the new behaviour to become effective.
A bit background information:
Bash is using readline to handle the prompt. ~/.inputrc
is the configuration file for readline. Note that this will also take effect in other software using the readline library, for example IPython.
Read the bash manual for more information about readline. There you can also find more history related readline commands.
To get the escape codes for the arrow keys you can do the following:
- Start
cat
in a terminal (justcat
, no further arguments). - Type keys on keyboard, you will get things like
^[[A
for up arrow and^[[B
for down arrow. - Replace
^[
with\e
.
For more information about ^[
and \e
see here: https://unix.stackexchange.com/a/89817/380515
If you don't already have a ~/.inputrc
file, copy the default settings over, or all the other default key bindings will be overridden:
cp /etc/inputrc ~/.inputrc
or begin your ~/.inputrc
file with the following line
$include /etc/inputrc