Zkuste následující:
less -R
od man less :
-rnebo--raw-control-charsZpůsobí zobrazení „raw“ řídicích znaků. (...)
-Rnebo--RAW-CONTROL-CHARSJako
-r, ale pouze ANSI „barva“ escape sekvence jsou na výstupu v „raw“ podobě. (...)
(aktualizace v roce 2020)
Rychlejším způsobem by bylo použití less -R ref. https://superuser.com/a/117842/34893
Sílu pygmentizace můžete využít s méně – automaticky! (Není nutné potrubí ručně.)
Nainstalujte pygments s vaším správcem balíčků nebo pipem (možná nazývaným python-pygments ) nebo si jej stáhněte zde http://pygments.org/download/.
Napište soubor ~/.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
Ve vašem .bashrc přidat
export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'
Také musíte vytvořit ~/.lessfilter spustitelný spuštěním
chmod u+x ~/.lessfilter
Testováno na Debianu.
Dostanete nápad. To lze samozřejmě dále zlepšit, přijímat více rozšíření nebo analyzovat shebang pro jiné interprety než bash. Podívejte se na některé další odpovědi.
Nápad vzešel ze starého blogového příspěvku od tvůrců Pygments, ale původní příspěvek již neexistuje.
Odpověď jsem dostal v jiném příspěvku:Méně a Grep:Získání barevných výsledků při použití dýmky z grepu na méně
Když jednoduše spustíte
grep --colorznamenágrep --color=autokterý zjišťuje, zda je výstup aterminální, a pokud ano, povoluje barvy. Když však detekuje potrubí, zakazuje barvení. Následující příkaz:grep --color=always "search string" * | less -RVždy povolí barvení a přepíše automatickou detekci a získáte barevné zvýraznění.
Upozornění:Nezadávejte --color=always jako alias to někdy věci rozbije. Proto je zde --color=auto možnost.