Ein GNU-Paket, source-highlight, scheint den Zweck zu erfüllen (obwohl cat nicht verwendet wird - wie John T betont, ist dies speziell mit cat nicht möglich). Es ist über apt-get unter Ubuntu verfügbar und erfordert die Boost-Regex-Bibliothek. Überprüfen Sie Ihren Paketmanager, um zu sehen, ob beide verfügbar sind, andernfalls können Sie sie aus dem Internet herunterladen. Die zuvor verlinkte GNU-Seite hat einen Link zu Boost, glaube ich.
Nach der Installation habe ich in meinem Pfad ein neues Skript mit dem Namen ccat erstellt . Das Skript sieht folgendermaßen aus:
#!/bin/bash
src-hilite-lesspipe.sh $1
Nichts Besonderes, nur das Weniger vereinfachen Skript, das sie mit source-highlight enthalten. Es verhält sich wie eine Katze, wenn es auf diese Weise gerufen wird.
Das enthaltene Less-Skript ist jedoch auch ein nettes Skript. Ich habe gerade Folgendes zu .bashrc hinzugefügt :
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Dieses Skript ist auch im Online-Handbuch zum Quellenhervorheben enthalten.
Ich schätze, Sie könnten cat aliasieren, um src-hilite-lesspipe.sh $1 zu nennen, wenn Sie cat ganz ignorieren möchten, aber das ist vielleicht nicht wünschenswert.
Um Code mit Syntaxhervorhebung mit etwas wie cat
auszugeben , habe ich eine ccat
erstellt Befehl, indem Sie den Anweisungen unter 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
Um Code mit Syntaxhervorhebung mit etwas wie less
auszugeben , ich verwende vim als Less-Ersatz.
alias less='/usr/share/vim/vim72/macros/less.sh'
Um dies zu lösen, habe ich Highlight verwendet. Ich habe eine Funktion erstellt, die versucht, die Datei mit Syntaxhervorhebung zu drucken, und wenn dies fehlschlägt, wird einfach cat zum Drucken der Datei verwendet. Sie können das Thema für die Syntaxhervorhebung beliebig ändern.
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
}
Wenn Sie einen Mac verwenden und Homebrew verwenden (dringend empfohlen!), können Sie Highlight installieren, indem Sie brew install highlight
ausführen . Andernfalls sollte es auf den meisten anderen Paketmanagern verfügbar sein und kann hier heruntergeladen werden.
Ich habe auch eine Funktion erstellt, um eine Datei mit Syntaxhervorhebung als html auszudrucken und im Browser zum Drucken zu öffnen (basiert auf dem open
Befehl unter 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
}
Viel Spaß!