hstr/CONFIGURATION.md

3.4 KiB

CONFIGURATION

This document describes HSTR related configuration in detail:

Get most of HSTR by configuring it with:

hh --show-configuration >> ~/.bashrc

Run hh --show-configuration to determine what will be appended to your Bash profile.

BINDING HSTR TO KEYBOARD SHORTCUT

Bash uses Emacs style keyboard shortcuts by default. There is also Vi mode. Find out how to bind HSTR to a keyboard shortcut based on the style you prefer below.

Check your active Bash keymap with:

bind -v | grep editing-mode
bind -v | grep keymap

To determine character sequence emitted by a pressed key in terminal, type Ctrl-v and then press the key. Check your current bindings using:

bind -S

BASH EMACS KEYMAP (DEFAULT)

Bind hh to a Bash key e.g. to Ctrl-r:

bind '"\C-r": "\C-ahh \C-j"'

or Ctrl-Alt-r:

bind '"\e\C-r":"\C-ahh \C-j"'

or Ctrl-F12:

bind '"\e[24;5~":"\C-ahh \C-j"'

Bind hh to Ctrl-r only if it is interactive shell:

if [[ $- =~ .*i.* ]]; then bind '"\C-r": "\C-a hh \C-j"'; fi

BASH VI KEYMAP

Bind hh to a Bash key e.g. to Ctrl-r:

bind '"\C-r": "\C-ahh \C-j"'

ZSH EMACS

Bind hh to a Zsh key e.g. to Ctrl-r:

bindkey -s "\C-r" "\eqhh\n"

COLORS

Get hh in more colors:

export HH_CONFIG=hicolor

or ensure black and white mode:

export HH_CONFIG=monochromatic

HISTORY VIEW

Show normal history by default (instead of metrics-based view):

export HH_CONFIG=rawhistory

Show favorite commands by default (instead of metrics-based view):

export HH_CONFIG=favorites

FILTERING

Make search case sensitive (insensitive by default):

export HH_CONFIG=casesensitive

VERBOSITY

Show warnings:

export HH_CONFIG=warning

Show debug messages:

export HH_CONFIG=debug

EXAMPLES

More colors with case sensitive search of history:

export HH_CONFIG=hicolor,casesensitive

Favorite commands view in black and white:

export HH_CONFIG=favorites,monochromatic

Keywords based search in colors with debug mode verbosity:

export HH_CONFIG=keywords,hicolor,debug

BASH HISTORY SETTINGS

Use the following BASH settings to get most out of hh.

Increase the size of history maintained by BASH - variables defined below increase the number of history items and history file size (default value is 500):

export HISTFILESIZE=10000
export HISTSIZE=${HISTFILESIZE}

Ensure syncing (flushing and reloading) of .bash_history with in-memory history:

export PROMPT_COMMAND="history -a; history -n; ${PROMPT_COMMAND}"

Force appending of in-memory history to .bash_history (instead of overwriting):

shopt -s histappend

Use leading space to hide commands from history:

export HISTCONTROL=ignorespace

Suitable for a sensitive information like passwords.

ZSH HISTORY SETTINGS

If you use zsh, set HISTFILE environment variable in ~/.zshrc:

export HISTFILE=~/.zsh_history