Ich habe dies gerade zu meiner hinzugefügt .bashrc
, um eine kolorierte Ausgabe zu erhalten mit less
:
# Colorize less man pages.
export LESS_TERMCAP_md=$'\e[01;34m'
export LESS_TERMCAP_us=$'\e[01;33m'
export LESS_TERMCAP_so=$'\e[01;44;37m'
export LESS_TERMCAP_mb=$'\e[01;31m'
export LESS_TERMCAP_mr=$'\e[01;35m'
export LESS_TERMCAP_me=$'\e[00m'
export LESS_TERMCAP_ue=$'\e[00m'
export LESS_TERMCAP_se=$'\e[00m'
... und jetzt erzeugen plötzlich bestimmte Befehle (die mit der Anzeige von Umgebungsvariablen zusammenhängen) eine Farbausgabe, die diesen neuen Einstellungen entspricht. Entkomme ich falsch? Oder ist das absichtliches Verhalten? Ich habe ein paar andere Fluchtvarianten ausprobiert, aber sie haben nicht funktioniert less
.
Hier ist zum Beispiel ein Screenshot eines env
Befehls.
php -i
hat auch kolorierte Ausgabe, aber nur im Abschnitt Umgebungsvariablen.
man top
=\e[01;34mSYNOPSIS\e[00m
anstatt das Wort "SYNOPSIS" einzufärben.Wie @Gilles in seiner Antwort hervorhebt, ist dies ein erwartetes Verhalten.
Lassen Sie mich nur ein paar Infos hinzufügen.
LESS_TERMCAP_xx
TERMCAP-Funktionen überschreiben. Dieses Überschreiben wird vonless
selbst verwaltetscreen.c
und der Wert wird erst später verwendet, als ob er von der TERMCAP-Bibliothek zurückgegeben worden wäre. Das heißt, es muss eine rohe Folge von Steuerzeichen sein.Mein Konto, wie man dies "repariert", ist, sich
less
selbst einzuwickelnquelle
#!/bin/sh
(was in meinem Fall Bindestrich ist)? Ich kann nicht herausfinden, wie manESC
mit vim ein wörtliches Zeichen einfügt.export LESS_TERMCAP_me="$(printf '\e[0m')"
. Wenn Sie sich die Antwort von @Gilles ansehen, behauptet er, dass er auch damit arbeitenexport LESS_TERMCAP_me=$escape'[0m'
sollte/bin/sh
.