Mise en évidence de la syntaxe dans le terminal

Beaucoup d'éditeurs orientés programmation vont coloriser le code source. Existe-t-il une command qui va coloriser le code source pour la visualisation dans le terminal?

Je pourrais ouvrir un file avec emacs -nw (qui s'ouvre dans le terminal au lieu d'ouvrir une nouvelle window), mais je cherche quelque chose qui fonctionne comme less (ou qui fonctionne avec less -R , qui passe par les séquences d'échappement de couleur dans son input).

Avec highlight sur un terminal qui prend en charge les mêmes séquences d'échappement de couleur que xterm :

 highlight -O xterm256 your-file | less -R 

Avec ruby-rouge :

 rougify your-file | less -R 

Avec python-pygments :

 pygmentize your-file | less -R 

Avec GNU source-highlight :

 source-highlight -f esc256 -i your-file | less -R 

Vous pouvez également utiliser vim comme pager à l'aide du script macros/less.sh fourni avec vim (voir :h less dans vim pour plus de détails):

Sur mon système:

 sh /usr/share/vim/vim74/macros/less.sh your-file 

Vous pouvez également utiliser l'un des surligneurs de syntaxe qui prennent en charge la sortie HTML et utiliser elinks ou w3m comme pager (ou elinks -dump -dump-color-mode 3 | less -R ) comme avec GNU source-highlight :

 source-highlight -o STDOUT -i your-file | elinks -dump -dump-color-mode 3 | less -R 

J'utilise GNU source-highlight combiné avec less -R pour cela. Ajoutez les lignes suivantes au file d'initialisation de votre shell ( ~/.bashrc , par exemple):

 cless(){ LESSOPEN='| source-highlight --failsafe --out-format=esc256 -o STDOUT -i %s 2>/dev/null ' less -R "$@" } 

Cela devrait automatiquement colorier le code source en fonction de la langue utilisée et, s'il ne le peut pas, il lancera less sur son input directement.

Si les colors vous intéressent less , vous pouvez regarder lesspipe.sh . Voir, par exemple, http://freecode.com/projects/lesspipe .

lesspipe.sh est un filter d'input pour le pager less comme décrit dans la page de man de less. Le script s'exécute sous un shell compatible ksh (par exemple bash, zsh) et vous permet d'utiliser less pour afficher les files contenant du contenu binary, des files compressés, des archives et des files contenus dans les archives.

Il colorera également les scripts shell, les scripts perl, etc. de manière similaire à un éditeur de text, mais sans utiliser de programme de "pré-traitement" pour effectuer la colorisation.

J'aime la simplicité et j'utilise l'éditeur de text nano, dans ce cas, je procède généralement comme suit:

vérifier la mise en surbrillance de la syntaxe de la sorcière est disponible: ls -la /usr/share/nano/

incluez-le dans mon file nanorc avec la command suivante, ou en le faisant manuellement

 echo 'include /usr/share/nano/sh.nanorc' >> ~/.nanorc 

à peu less je suggère de jeter un oeil à cette page

Selon la suggestion de Stéphane Chazelas , je fais une fonction bash pour utiliser highlight show Syntax highlight, le mettre dans .bashrc ou ainsi de suite. Cela fonctionne très bien, rapide et efficace.

 s(){ highlight --force -O ansi $1 | /usr/bin/less -R; } 

mettez en surbrillance le format de syntaxe du langage de support 202 voir highlight --list-scripts=langs .

Cela s'appelle la mise en surbrillance de la syntaxe.

GNU Source-highlight quand un file source est donné, produit un document avec mise en surbrillance de la syntaxe.

J'utilise le script lessfilter ci-dessous, ou vous pourriez faire less invoquer automatiquement comme avec:

 export LESSOPEN="| /path/to/lessfilter %s" export LESS=' -R ' 

J'ai trouvé cet article et j'ai commencé à le faire de cette façon:

 #!/bin/sh file -b -L "$1" | grep -q text && /usr/share/source-highlight/src-hilite-lesspipe.sh "$1" 

( src-hilite-lesspipe.sh est livré avec la source-highlight mais pas toutes les dissortingbutions l'incluent)