Comment puis-je afficher la coloration syntaxique sur un fichier?

42

Existe-t-il une variante de catcette sortie qui génère des lignes de code surlignées par la syntaxe lorsqu’elle est utilisée sur un fichier source?

Une idée: peut vi[m]- être ou un autre éditeur peut-il être invité à vider le contenu mis en évidence par la syntaxe de ces fichiers stdoutet à le quitter immédiatement?

Paolo
la source

Réponses:

48

En passant le fichier , vous tenterez de détecter le type à partir du nom de fichier et de le surligner de manière appropriée.pygmentize-f terminal

Ignacio Vazquez-Abrams
la source
S'agit-il de la police Star Trek: Deep Space Nine? Si c'est ça, c'est génial.
Amphetamachine
2
Disponible en paquet python-pygmentssur Debian.
enzotib
6
J'ai trouvé la alias pcat="pygmentize -f terminal256 -O style=native -g"solution intéressante
Mikael Öhman
1
également disponible viapip install pygments
craigb
1
En fait ça doit être cat code.extension | pygmentize -f terminal -l extension.
fiatjaf
13

Le paquetage Source-highlight est livré avec la définition du langage de sortie esc.outlang, qui est mise en surbrillance avec les séquences d'échappement ANSI.

Un emballage pratique src-hilite-lesspipe.shest également inclus dans le package src-hilite-lesspipe.sh source.file. Il est donc simple d’afficher les résultats en surbrillance dans le terminal .

En fait, src-hilite-lesspipe.shla principale raison est d'aider à automatiser l'utilisation de source-highlightavec less. Vous venez de définir:

export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
export LESS=' -R '

Ensuite, tout less source.fileaffichera le code source en surbrillance. (Le code dans une langue inconnue sera inchangé. La mise en surbrillance sera également ignorée en cas de contenu redirigé, comme less < source.file.)

homme au travail
la source
Nice, merci d'avoir pris le temps de rédiger cette réponse
Paolo
3

Highlight est simple à utiliser et plus rapide quepygmentize

Davidhq
la source
2
Il suffit de ne pas oublier d'utiliser -O ansi: contrairement à pygmentize, les highlightsorties HTML par défaut.
Ruslan