This document is an unfinished draft. HSTR DOCUMENTATION ================== Table of contents: * Installation * Distribution * Source code * Ubuntu * Debian * Mint * Arch * Mac OS * Configuration * Keyboard shortcut * Colors * View * Verbosity * Shell specific * Bash * Zsh * Features * History views * Ranking * Raw * Favorites * History filtering * Choosing a command * Favorite commands * Blacklist * Delete last command * Examples Features -------- `hh` is typically started by pressing Ctrl-r after you configure it for this shorcut for your shell. However, you can run it as a normal program just by typing: ```bash hh ``` It opens a page with a history view (ranking view is default). Alternatively you can run `hh` in non-interactive mode - commands are just listed on standard output based on history view: ```bash hh --non-interactive ``` Filtering pattern can be optionally specified as well: ```bash hh -i git ``` Prints history items containing `git` to standard output and exits. ### History filtering When `hh` starts in interative mode, a view of commands is shown. This list of commands can be filtered just by typing a string pattern. ### Choosing a command When you filtered the view of history items enough, you can move around it with `UP` and `DOWN` arrow keys. Selected history items is highlighted. Once you are done with your choice: * press `ENTER` to choose the command and execute it * or press `TAB` or `RIGHT` arrow key to choose the command and edit it on command line after exiting `hh` * or press `LEFT` arrow key to choose the command and open it in editor (Bash `fc` i.e. fix command) Favorite Commands ----------------- `hh` allows you to store and manage your favorite commands. A new favorite command can be added from ranking or raw history view by pressing Ctrl-f. You can check your favorite commands by choosing favorite view - rotate views using Ctrl-/ or start `hh` by adding `favorites` to `HH_CONFIG` environment property. A favorite command can be choosen just by pressing `ENTER` when on command in favorite view. Last chosen favorite commands appears as the first one (at the top of the page) in the favorite view. You can delete a favorite command with `DEL` key. Tips: * Favorite commands are stored in `~/.hh_favorites` * Suffix your favorite commands with comments describing their purpose. For example `printf "\e[?2004l" # fix terminal copy/paste` Such comment can be used for normal commands as well and may serve as a way how to **tag** commands. Blacklist --------- `hh` allows you to specify a set of commands to be skipped from all the views. Blacklist typically contains frequently used commands whose completion from history has a little or no value. The default blacklist looks like this: ```bash pwd cd cd .. ls hh mc ``` Tips: * Blacklist of commands is stored in `~/.hh_blacklist` If the file doesn't exist, you may create it and complete it with your own blacklist. * You can skip any command from history just by prefixing it with `SPACE`. For example: ` echo "Skip this from history"` It's a Bash option that is configured using `HISTCONTROL=ignorespace` environment variable. Blacklist --------- Using `hh` you can easily delete the last command from history e.g. when you make a typo or write something sensitive: ``` hh --kill-last-command ``` See configuration section for how to bind this functionality to a key - bound to Ctrl+x k by default. Examples -------- Get more colors when running `hh`: ```bash export HH_CONFIG=hicolor ``` Start `hh` in configured view and filter out history items containing 'git': ```bash hh git ``` Print history items containing 'git' to standard output and exit: ```bash hh --non-interactive git ``` Append default `hh` configuration to your Bash profile: ```bash hh --show-configuration >> ~/.bashrc ``` Check `hh` man page: ```bash man hh ```