Contextual Bash History simply means that instead of having to type the up key a million times to find what you want or using the ! syntax for the last command starting with a string, you can get the best of both worlds. You can type a short string and then use up and down keys to search through anything in your history that meets that requirement.
To enable this
- Add the following lines to your ~/.bash_profile file. This will optimize your history for this kind of behavior.
export HISTCONTROL=erasedups export HISTSIZE=10000 shopt -s histappend
- Put the following into a file called ~/.inputrc.
# do not make noise set bell-style none # By default up/down are bound to previous-history # and next-history respectively. The following does the # same but gives the extra functionality where if you # type any text (or more accurately, if there is any text # between the start of the line and the cursor), # the subset of the history starting with that text # is searched (like 4dos for e.g.). # Note to get rid of a line just Ctrl-C "\e[B": history-search-forward "\e[A": history-search-backward $if Bash # F10 toggles mc on and off # Note Ctrl-o toggles panes on and off in mc "\e[21~": "mc\C-M" #do history expansion when space entered Space: magic-space $endif # Include system wide settings which are ignored # by default if one has their own .inputrc $include /etc/inputrc
- Run source ~/.bash_profile.
- You're off! For a quick example, type ant and use up and down. You should see all of your old ant commands role by.