• Stars
    star
    438
  • Rank 99,453 (Top 2 %)
  • Language
    Shell
  • License
    MIT License
  • Created about 11 years ago
  • Updated almost 2 years 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