Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save punyaruchal/3d1a01459a3071f977c985045b961a6c to your computer and use it in GitHub Desktop.
Save punyaruchal/3d1a01459a3071f977c985045b961a6c to your computer and use it in GitHub Desktop.
Bash history search, partial + up and down arrow

Bash history search, partial + up and down arrow

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:

  1. Start cat in a terminal (just cat, no further arguments).
  2. Type keys on keyboard, you will get things like ^[[A for up arrow and ^[[B for down arrow.
  3. 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment