Grep to Less that maintain colors

note, May 29, 2023, on Mitja Felicijan's blog

I often use grep to search for todo's in my code and other people's code and then pipe them in less and I missed having colors that grep outputs in less.

  • Grep's --color=always use markers to highlight the matching strings.
  • Less's -R option outputs "raw" control characters.

You could use alias grep='grep --color=always' and alias less='less -R' or create todo function in your .bashrc that accepts first argument as search string.

# This is where the magic happens.
grep --color=always -rni "TODO:" | less -R
Less and grep