ubuntuusers.de

less in Farbe?

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

bengoshi

Anmeldungsdatum:
24. November 2009

Beiträge: 4

Wohnort: Berlin

Hallo, gibt es eigentlich eine Möglichkeit, less Farben zu übergeben? Aus der man-Page bin ich da nicht schlau geworden. Konkret - wenn ich ls aufrufe, wird das fein bunt (und in Farbe!) ausgeworfen, wenn ich es in less pipe, war es das mit der Farbe.

Danke und Grüße

bengoshi

Moderiert von aasche:

Ins passende Unterform verschoben.

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Servus,

steht schon in der Manpage:

       -R or --RAW-CONTROL-CHARS
              Like -r, but only ANSI "color" escape sequences are out‐
              put  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.
              [...]

Also behält hier das „hi“ seine gelbe Hintergrundfarbe:

$ (tput bold; tput setab 3; echo hi) | less
hi

Du musst „less“ also immer mit „-R“ aufrufen und dafür gibt es die schöne Umgebungsvariable „$LESS“, die bei mir zum Beispiel so aussieht (ab damit in deine „~/.bashrc“):

1
2
3
4
5
6
# Less-Optionen:
# -R: Lasse nur ANSI-Color-Sequences durch.
# -S: Lange Zeilen abschneiden, scrollen nach rechts raus.
# -X: Keine Termcap-(De)Initialisierung. Löscht den Screen nicht.
# -# n: Seitwärts scrollen bei überlangen Zeilen in diesen Schritten.
export LESS="-iRSX -# 2"

Auf der anderen Seite erkennt „ls“ auch, ob es in eine Pipe schreibt oder direkt auf das Terminal, und stellt eventuell die Farben ab. Das heißt, du wirst dort die Farbausgabe forcieren müssen. Dafür gibt es den Parameter „--color=always“, was du in ein Alias für „ls“ wirst packen müssen. Manuell sähe der Aufruf wohl so aus:

ls --color=always | less -R
Antworten |