xaizek / hstr (License: Apachev2) (since 2018-12-07)
Bash and Zsh shell history suggest box - easily view, navigate, search and manage your command history.
File Mode Size
bin/ 040000
debian/ 040000
dist/ 040000
man/ 040000
src/ 040000
tests/ 040000
LICENSE 100644 11KiB
Makefile.am 100644 44B
README.md 100644 1,955B
configure.ac 100644 1,130B

/README.md

hstr

BASH History Suggest Box

DESCRIPTION

A command line utility that brings improved BASH command completion from the history. It aims to make completion easier and faster than Ctrl-R.

Shell History Suggest Box

UBUNTU INSTALLATION

  • install hh on Ubuntu (12.10/13.04/13.10):

    sudo add-apt-repository ppa:ultradvorka/ppa

    sudo apt-get update

    sudo apt-get install hh

  • Configure hh:

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

DOWNLOAD

https://github.com/dvorka/hstr/releases

SOURCE CODE INSTALLATION

  • download distribution (project Releases section), expand the archive and install hh:

    ./configure && make && make install

  • Configure hh:

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

MAC OS

  • install MacPorts:

    http://www.macports.org

  • configure using:

    env CFLAGS="-I/opt/local/include -I/usr/include" LDFLAGS="-L/opt/local/lib -L/usr/lib" ./configure

  • finish the installation

    make && make install

  • Configure hh:

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

CONFIGURATION EXPLANATION

  • appending of the in memory history (instead of overwriting it) to .bash_history:

    shopt -s histappend

  • flushing and realoading of .bash_history in order to ensure that it is in sync with memory:

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

  • binding of hh to a BASH key (e.g. to Ctrl-R):

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

    Ctrl-F12 would be:

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

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

    bind -S

BUGS

https://github.com/dvorka/hstr/issues

Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/hstr

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/hstr

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master