Risposte:
Un pacchetto GNU, source-highlight , sembra fare il trucco (anche se non sta usando cat - come sottolinea John T, questo non è possibile con cat in particolare). È disponibile tramite apt-get su Ubuntu e richiede la libreria regex Boost. Controlla il tuo gestore pacchetti per vedere se entrambi sono disponibili, altrimenti puoi prenderli dal web. La pagina GNU collegata in precedenza ha un link a Boost, credo.
Dopo l'installazione, ho creato un nuovo script nel mio percorso chiamato ccat . Lo script appare come:
#!/bin/bash
src-hilite-lesspipe.sh $1
Niente di speciale, semplicemente semplificando meno script che includono con l'evidenziazione della fonte. Si comporta come un gatto quando viene chiamato in questo modo.
Tuttavia, lo script meno incluso è uno script piacevole da usare. Ho appena aggiunto quanto segue a .bashrc :
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Questo script è incluso anche nel manuale online di source-highlight.
Immagino che alias cat potresti chiamare src-hilite-lesspipe.sh $ 1 se ti andasse di ignorare del tutto il gatto, ma potrebbe non essere desiderabile.
$1
:).
brew install source-highlight
. Impossibile colorare yaml :(
Per generare il codice evidenziato dalla sintassi con qualcosa di simile cat
, ho creato un ccat
comando seguendo le istruzioni su 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
Per generare il codice evidenziato dalla sintassi con qualcosa del genere less
, uso vim come sostituto meno.
alias less='/usr/share/vim/vim72/macros/less.sh'
.functions
ascolorize(){...}
Per risolvere questo, ho usato l' evidenziazione . Ho creato una funzione che tenta di stampare il file con l'evidenziazione della sintassi e, in caso contrario, ricade semplicemente sull'uso di cat per stampare il file. È possibile modificare il tema di evidenziazione della sintassi in base alle proprie esigenze.
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
}
Se sei su un Mac e usi Homebrew (altamente raccomandato!), Puoi installare l'evidenziazione eseguendo brew install highlight
. Altrimenti, dovrebbe essere disponibile sulla maggior parte degli altri gestori di pacchetti e può essere scaricato qui .
Ho anche creato una funzione per stampare un file con l'evidenziazione della sintassi come html e aprirlo nel browser per stampare (si basa sul open
comando su 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
}
Godere!
No, il gatto non ha abilità di evidenziazione della sintassi. Se desideri visualizzare il codice sorgente con l'evidenziazione della sintassi, inseriscilo in vim o nel tuo editor preferito (che ha l'evidenziazione della sintassi). In questo modo, puoi anche sfogliare l'output se è un file lungo usando Ctrl+ F(avanti) e Ctrl+ B(indietro).
bat
ostechnix.com/…