Antworten:
Ein GNU-Paket, source-highlight , scheint das Problem zu lösen (obwohl cat nicht verwendet wird - wie John T betont, ist dies mit cat nicht möglich). Es ist über apt-get auf Ubuntu verfügbar und benötigt die Boost-Regex-Bibliothek. Überprüfen Sie bei Ihrem Paketmanager, ob beide verfügbar sind. Andernfalls können Sie sie aus dem Internet abrufen. Die zuvor verlinkte GNU-Seite hat einen Link zu Boost, denke ich.
Nach der Installation habe ich in meinem Pfad ein neues Skript namens ccat erstellt . Das Skript sieht folgendermaßen aus:
#!/bin/bash
src-hilite-lesspipe.sh $1
Nichts Besonderes, Vereinfachung nur die weniger Skript sie mit source-highlight umfassen. Es verhält sich wie eine Katze, wenn man es so nennt.
Das mitgelieferte less-Skript ist jedoch auch ein gutes 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 für Source-Highlight enthalten.
Ich vermute, Sie könnten auch cat als src-hilite-lesspipe.sh $ 1 bezeichnen, wenn Sie Lust hätten, cat komplett zu ignorieren, aber das ist vielleicht nicht wünschenswert.
$1
:) enden .
brew install source-highlight
. Yaml kann nicht eingefärbt werden :(
Um syntaktisch hervorgehobenen Code mit so etwas wie auszugeben cat
, habe ich einen ccat
Befehl erstellt, indem ich den Anweisungen unter http://scott.sherrillmix.com/blog/programmer/syntax-highlighting-in-terminal/ gefolgt bin .
#!/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 syntaktisch hervorgehobenen Code mit so etwas wie auszugeben less
, verwende ich vim als weniger Ersatz.
alias less='/usr/share/vim/vim72/macros/less.sh'
.functions
alscolorize(){...}
Um dies zu lösen, habe ich Highlight verwendet . Ich habe eine Funktion erstellt, mit der versucht wird, die Datei mit Syntaxhervorhebung zu drucken. Wenn dies fehlschlägt, wird lediglich cat zum Drucken der Datei verwendet. Sie können das Thema für die Syntaxhervorhebung nach Belieben ä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 auf einem Mac arbeiten und Homebrew verwenden (sehr zu empfehlen!), Können Sie highlight durch Ausführen von installieren brew install highlight
. Andernfalls sollte es auf den meisten anderen Paketmanagern verfügbar sein und kann hier heruntergeladen werden .
Ich habe auch eine Funktion zum Ausdrucken einer Datei mit Syntax-Hervorhebung als HTML erstellt und zum Ausdrucken im Browser geöffnet (stützt sich auf den 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
}
Genießen!
Nein, cat hat keine Fähigkeiten zum Hervorheben von Syntax. Wenn Sie den Quellcode mit Syntaxhervorhebung anzeigen möchten, öffnen Sie ihn in vim oder in einem Editor Ihrer Wahl (mit Syntaxhervorhebung). Auf diese Weise können Sie sogar mit Ctrl+ F(vorwärts) und Ctrl+ B(rückwärts) durch die Ausgabe blättern, wenn es sich um eine lange Datei handelt .
bat
ostechnix.com/…