threads / discuss / 47089

Colorize matches for git log --grep=pattern?

Subject: Colorize matches for git log --grep=pattern?

## tl;dr

3 messages between Nov 1, 2017 and Nov 1, 2017.

replies: 2people: 2as markdown or json

Jeff King· Nov 1, 2017, 18:50 UTC · re: Sebastian Schuberth · lore

Re: Colorize matches for git log --grep=pattern?

On Wed, Nov 01, 2017 at 11:57:14AM +0100, Sebastian Schuberth wrote:
Show 5 quoted lines
> is there a way to colorize / highlight the pattern matched by
> 
>     git log -E -i --grep=pattern
> 
> in the console output?

I don't think so. The grep code _does_ know about colorizing matches (which is why "git grep --color" works), but for the output code path for commit messages doesn't use grep at all (it couldn't, because we're not just showing the relevant lines but selecting the whole commit).

So I think it would have to be reimplemented separately.

The best workaround I could come up with is passing the output through a highlighting script:

  git log --grep=foo --color |
  perl -pe 's/foo/\x1b[1;31m$&\x1b[m/' |
  less
Pretty hacky.
-Peff
Sebastian Schuberth· Nov 1, 2017, 19:54 UTC · re: Jeff King · lore

Re: Colorize matches for git log --grep=pattern?

On Wed, Nov 1, 2017 at 7:50 PM, Jeff King <peff@peff.net> wrote:
Show 8 quoted lines
> The best workaround I could come up with is passing the output through a
> highlighting script:
>
>   git log --grep=foo --color |
>   perl -pe 's/foo/\x1b[1;31m$&\x1b[m/' |
>   less
>
> Pretty hacky.

Thanks anyway. I was also considering something like this, but likewise found it to be too hacky.

-- 
Sebastian Schuberth

← back to recent threads