Réponses:
Un paquet GNU, source-highlight , semble faire l'affaire (bien qu'il n'utilise pas cat - comme le souligne John T, ce n'est pas possible avec cat spécifiquement). Il est disponible via apt-get sur Ubuntu et nécessite la bibliothèque regex Boost. Vérifiez votre gestionnaire de paquets pour voir si les deux sont disponibles, sinon vous pouvez les récupérer sur le Web. La page GNU liée plus tôt a un lien vers Boost, je pense.
Après l'installation, j'ai créé un nouveau script dans mon chemin appelé ccat . Le script ressemble à ceci:
#!/bin/bash
src-hilite-lesspipe.sh $1
Rien d'extraordinaire, simplifiant simplement le moins de script qu'ils incluent avec source-highlight. Il agit comme un chat lorsqu'il est appelé de cette façon.
Le script less inclus est également un bon script à utiliser. Je viens d'ajouter ce qui suit à .bashrc :
export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '
Ce script est également inclus dans le manuel en ligne pour la mise en évidence de la source.
Je suppose que vous pouvez alias cat pour appeler src-hilite-lesspipe.sh $ 1 si vous avez envie d'ignorer complètement cat, mais ce n'est peut-être pas souhaitable.
$1
:).
brew install source-highlight
. Impossible de colorer le yaml :(
Pour sortir du code surligné par la syntaxe avec quelque chose comme cat
, j'ai créé une ccat
commande en suivant les instructions sur 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
Pour sortir du code surligné par la syntaxe avec quelque chose comme less
, j'utilise vim comme moins de remplacement.
alias less='/usr/share/vim/vim72/macros/less.sh'
.functions
ascolorize(){...}
Pour résoudre ce problème, j'ai utilisé la mise en surbrillance . J'ai créé une fonction qui essaie d'imprimer le fichier avec la coloration syntaxique, et si elle échoue, elle revient simplement à utiliser cat pour imprimer le fichier. Vous pouvez modifier le thème de coloration syntaxique comme vous le souhaitez.
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
}
Si vous êtes sur un Mac et que vous utilisez Homebrew (fortement recommandé!), Vous pouvez installer la mise en évidence en exécutant brew install highlight
. Sinon, il devrait être disponible sur la plupart des autres gestionnaires de packages et peut être téléchargé ici .
J'ai également fait une fonction pour imprimer un fichier avec la coloration syntaxique en html et l'ouvrir dans le navigateur pour imprimer (repose sur la open
commande sur 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
}
Prendre plaisir!
Non, le chat n'a pas de capacités de coloration syntaxique. Si vous souhaitez afficher le code source avec une coloration syntaxique, insérez-le dans vim ou dans l'éditeur de votre choix (qui dispose d'une coloration syntaxique). De cette façon, vous pouvez même parcourir la sortie s'il s'agit d'un fichier long en utilisant Ctrl+ F(avant) et Ctrl+ B(arrière).
bat
ostechnix.com/…