Versuchen Sie Folgendes:
less -R
ab man less
:
-r
oder --raw-control-chars
Bewirkt, dass "rohe" Steuerzeichen angezeigt werden. (...)
-R
oder --RAW-CONTROL-CHARS
Wie -r
, aber nur ANSI-"Farb"-Escape-Sequenzen werden in "roher" Form ausgegeben. (...)
(Aktualisierung 2020)
Der schnellere Weg wäre die Verwendung von less -R
Ref. https://superuser.com/a/117842/34893
Sie können die Kraft der Pygmentisierung mit weniger nutzen - automatisch! (Keine Notwendigkeit, von Hand zu pfeifen.)
Installieren Sie pygments
mit Ihrem Paketmanager oder pip (möglicherweise python-pygments
genannt ) oder hier herunterladen http://pygments.org/download/.
Schreiben Sie eine Datei ~/.lessfilter
#!/bin/sh
case "$1" in
*.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
*.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
*.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
*.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass)
pygmentize -f 256 "$1";;
.bashrc|.bash_aliases|.bash_environment)
pygmentize -f 256 -l sh "$1";;
*)
if grep -q "#\!/bin/bash" "$1" 2> /dev/null; then
pygmentize -f 256 -l sh "$1"
else
exit 1
fi
esac
exit 0
In Ihrem .bashrc
export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'
Außerdem müssen Sie ~/.lessfilter
eingeben ausführbar durch Ausführen
chmod u+x ~/.lessfilter
Auf Debian getestet.
Du hast die Idee. Dies kann natürlich weiter verbessert werden, indem mehr Erweiterungen akzeptiert oder der Kram für andere Interpreter als Bash analysiert werden. Siehe dazu einige der anderen Antworten.
Die Idee stammt von einem alten Blogbeitrag der Macher von Pygments, aber der ursprüngliche Beitrag existiert nicht mehr.
Ich habe die Antwort in einem anderen Beitrag erhalten:Less and Grep:Getting farbige Ergebnisse, wenn eine Pipe von grep nach less verwendet wird
Wenn Sie einfach grep --color
ausführen es impliziert grep --color=auto
Dadurch wird erkannt, ob es sich bei der Ausgabe um ein Terminal handelt, und wenn dies der Fall ist, werden Farben aktiviert. Wenn es jedoch eine Pipe erkennt, deaktiviert es die Farbgebung. Der folgende Befehl:
grep --color=always "search string" * | less -R
Aktiviert immer die Farbgebung und setzt die automatische Erkennung außer Kraft, und Sie erhalten die Farbhervorhebung ohne.
Warnung:Geben Sie nicht --color=always
ein als Alias macht es manchmal Dinge kaputt. Deshalb gibt es einen --color=auto
Option.