• Stars
    star
    438
  • Rank 95,805 (Top 2 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A command line tool to highlight terms

hhighlighter (or just h)

A tiny utility to highlight multiple keywords with different colors

Description

h (hhighlighter is just a name to help search engines) is a really tiny helper script meant to highlight keywords in the output of another *nix command:

Requirements

h is just a tiny facade in front of ack so you need to install it first.

What is ack?

ack is a tool like grep, optimized for programmers

Designed for programmers with large heterogeneous trees of source code, ack is written purely in portable Perl 5 and takes advantage of the power of Perlโ€™s regular expressions.

ack installation

ack is part of many major linux distributions so you should use your package manager to install it.

If you want to install ack in a portable way ( at the end ack is just a script ) you do it in this way:

curl https://beyondgrep.com/ack-2.16-single-file > ~/bin/ack && chmod 0755 !#:3

Installation Instructions

h is implemented as a function in bash.

You can install it in one of these ways:

  • copy and paste h() function in your ~/.bashrc

  • configure your ~/.bashrc to load the external script with . /path/to/h.sh

or using Shinichi Okadaโ€™s Awesome Package Manager - https://github.com/shinokada/awesome - awesome -i paoloantinori/hhighlighter h

Zsh with Oh-My-Zsh

Just run the following commands

cd $ZSH_CUSTOM/plugins
git clone [email protected]:paoloantinori/hhighlighter.git h
mv h/h.sh h/h.plugin.zsh

then add h to your plugins variable in your ~/.zshrc file.

plugins=(
  h
  ...
)

Platform Specifics

h has currently been tested only on bash and zsh on Linux and MacOSX.

Usage

h is meant to consume the output of another Linux command via pipe

$ h
usage: YOUR_COMMAND | h [-i] [-d] args...
	-i : ignore case
	-d : disable regexp
	-n : invert colors

Configuration

h supports overriding of its default colors via 2 environment variables: H_COLORS_FG and H_COLORS_BG.

These variables accepts a comma separated values set of Perl Term::ANSIColor configuration entries. For a table of RGB colors definition check this handy map:

RGB Colors Map
Figure 1: RGB Map, taken from https://github.com/jbnicolai/ansi-256-colors

Ex.

export H_COLORS_FG="bold black on_rgb520","bold red on_rgb025"
export H_COLORS_BG="underline bold rgb520","underline bold rgb025"
echo abcdefghi | h   a b c d

Examples

Default colors
echo "abcdefghijklmnopqrstuvxywz" | h   a b c d e f g h i j k l
Invert colors
echo "abcdefghijklmnopqrstuvxywz" | h -n   a b c d e f g h i j k l
Support for tail in follow mode
tail -F | h keyword1 keyword2
Case Insensitive
mvn clean install | h -i failure success
Disable regular expression
tail -F my.log | h -d org.apache.camel
Highlight multiple keys with the same color (using regexp syntax)
echo abcd | h 'b|d'

Screenshots

Rainbow

Tail

Maven

Custom Colors

Demos

Ascii Cinema Gif
Ascii Cinema GifAscii Cinema Gif
Ascii Cinema Demo
Ascii Cinema: Ascii Cinema