13

Using the less paginator, you can use the -r option to properly display colored input and the -S option to disable line wrap.

However, when using less -rS or equivalently less -r -S, colors are diplayed but lines are wrapped. How can this be achieved?

Braiam
  • 35,991
Davide
  • 273

1 Answers1

16

If the -r option doesn't work, maybe the -R option will do what you want:

-R or --RAW-CONTROL-CHARS

Like -r, but only ANSI "color" escape sequences are output in "raw" form. Unlike -r, the screen appearance is maintained correctly in most cases. ANSI "color" escape sequences are sequences of the form:

ESC [ ... m

where the "..." is zero or more color specification characters For the purpose of keeping track of screen appearance, ANSI color escape sequences are assumed to not move the cursor. You can make less think that characters other than "m" can end ANSI color escape sequences by setting the environment variable LESSANSIENDCHARS to the list of characters which can end a color escape sequence. And you can make less think that characters other than the standard ones may appear between the ESC and the m by setting the environment variable LESSANSIMIDCHARS to the list of characters which can appear.

Graeme
  • 34,027
  • Thank you! Actually this was meant to be a self-answered question (after a while I figured this out and wanted to share), but I've got too few reputation and -after letting me write the answer- it said I should wait 8 hours before posting... Never mind, my answer looked exately like yours – Davide Mar 03 '14 at 10:08
  • 2
    As a side-note, this is similar to what git does: by default it uses less as its pager and invokes it with LESS=FRSX in the environment (just like less -FRSX) – Davide Mar 03 '14 at 10:14
  • @Davide, that's interesting about git, I always wondered why it behaved differently, never got around to investigating though. Thanks. – Graeme Mar 03 '14 at 10:25