Zdá se, že GNU balíček, source-highlight, dělá svůj trik (ačkoli nepoužívá cat -- jak John T zdůrazňuje, u cat to není možné). Je k dispozici prostřednictvím apt-get na Ubuntu a vyžaduje knihovnu Boost regex. Zkontrolujte svého správce balíčků, zda jsou k dispozici oba, jinak je můžete získat z webu. Myslím, že stránka GNU, na kterou se odkazuje dříve, má odkaz na Boost.
Po instalaci jsem v cestě vytvořil nový skript s názvem ccat . Skript vypadá takto:
#!/bin/bash
src-hilite-lesspipe.sh $1
Nic přepychového, jen zjednodušování méně skript, který obsahují s zvýrazněním zdroje. Při volání tímto způsobem se chová jako kočka.
Zahrnutý méně skript je však také pěkný skript. Právě jsem přidal následující do .bashrc :
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Tento skript je také součástí online manuálu pro zvýraznění zdroje.
Myslím, že byste mohli alias cat zavolat src-hilite-lesspipe.sh $1, pokud byste měli chuť kočku úplně ignorovat, ale to nemusí být žádoucí.
Pro výstup syntaxe zvýrazněný kód s něčím jako cat
, vytvořil jsem ccat
příkazem podle pokynů na http://scott.sherrillmix.com/blog/programmer/syntax-highlighting-in-terminal/.
#!/bin/bash
if [ ! -t 0 ];then
file=/dev/stdin
elif [ -f $1 ];then
file=$1
else
echo "Usage: $0 code.c"
echo "or e.g. head code.c|$0"
exit 1
fi
pygmentize -f terminal -g $file
Pro výstup syntaxe zvýrazněného kódu s něčím jako less
, používám vim jako menší náhradu.
alias less='/usr/share/vim/vim72/macros/less.sh'
Abych to vyřešil, použil jsem highlight. Vytvořil jsem funkci, která se pokouší vytisknout soubor se zvýrazněním syntaxe, a pokud selže, vrátí se k tisku souboru jednoduše pomocí cat. Téma zvýraznění syntaxe můžete změnit na cokoliv chcete.
function hl { # Overrides the cat command to use syntax highlighting
# Highlight with 'moria' theme to terminal, and suppress errors
highlight $1 -s moria -O xterm256 2> /dev/null
if (($? != 0)); then # If the command had errors
cat $1 # Just cat the file out instead
fi
}
Pokud používáte Mac a používáte Homebrew (důrazně doporučujeme!), můžete nainstalovat highlight spuštěním brew install highlight
. Jinak by měl být dostupný na většině ostatních správců balíčků a lze jej stáhnout zde.
Také jsem vytvořil funkci pro tisk souboru se zvýrazněním syntaxe jako html a jeho otevření v prohlížeči pro tisk (spoléhá se na open
příkaz v OS X):
function hlprint {
# Print with line numbers and 'moria' theme
highlight $1 -l -o print.html -s moria
open print.html # Open in browser
sleep 5 # Give the browser time to open
rm print.html highlight.css # Remove output files
}
Užijte si to!