De nombreux éditeurs axés sur la programmation vont colorier le code source. Existe-t-il une commande qui colorise le code source pour l'afficher dans le terminal?
Je pourrais ouvrir un fichier avec emacs -nw
(qui s'ouvre dans le terminal au lieu de faire apparaître une nouvelle fenêtre), mais je cherche quelque chose qui fonctionne comme less
(ou avec less -R
qui passe à travers des séquences d'échappées de couleurs en entrée).
J'utilise GNU
source-highlight
combiné avecless -R
pour cela. Ajoutez les lignes suivantes au fichier d'initialisation de votre shell (~/.bashrc
par exemple):Cela devrait automatiquement colorer le code source en fonction de la langue utilisée et, s’il ne le peut pas, il se lancera
less
directement sur son entrée.la source
Si vous êtes intéressé par les couleurs de
less
manière plus générale, vous pouvez regarderlesspipe.sh
. Voir, par exemple, http://freecode.com/projects/lesspipe .Il colorera également les scripts de shell, les scripts Perl, etc. de la même manière qu’un éditeur de texte, mais sans utiliser de programme de "prétraitement" pour effectuer la colorisation.
la source
lesspipe.sh
c'est ce que j'essayais de me rappeler avant de poser la question ...J'aime la simplicité et j'utilise l'éditeur de texte nano. Dans ce cas, je procède généralement comme suit:
vérifier que la syntaxe en surbrillance est disponible:
ls -la /usr/share/nano/
incluez-le dans mon fichier nanorc avec la commande suivante, ou en le faisant manuellement
à propos,
less
je suggère de jeter un coup d'oeil à cette pagela source
Selon la suggestion de Stéphane Chazelas , je crée une fonction bash pour utiliser
highlight
show Syntax High, la mettre en .bashrc ou autre. Cela fonctionne très bien, rapidement et efficacement.mettez en surbrillance le support 202 format de syntaxe . voir
highlight --list-scripts=langs
.la source
Vous pouvez utiliser le package, e2ansi , qui fournit une prise en charge de la coloration syntaxique pour les pagers tels que
more
etless
.Le paquet utilise la mère de tous les éditeurs de texte, Emacs , pour effectuer la mise en évidence de la syntaxe. En prime, toutes les autres conversions normalement effectuées par Emacs, telles que la décompression de fichiers, sont également effectuées.
Exemple
Voici le résultat de l'affichage d'un fichier à l'aide de
less
ete2ansi
:Configuration
Le package fournit un outil de ligne de commande
e2ansi-cat
qui démarre Emacs en mode de traitement par lots, ouvre les fichiers, les met en évidence par la syntaxe et affiche le résultat à l'aide de séquences ANSI.Vous pouvez intégrer cela en
less
définissant, par exemple, les variables suivantes (l'emplacement de votre fichier init peut varier):Dans la configuration ci-dessus,
less
restaure le contenu de la fenêtre de terminal d'originemore
tout en générant un nouveau contenu après l'invite.Remarque: Si vous utilisez une ancienne version de
less
, elle risque de ne pas prendre en charge la||
ou la-
syntaxe, auquel cas vous devrez peut-être utiliser simplementLESSOPEN=|/usr/local/emacs ...
.Utilisation
less
dans des tuyauxLe caractère "-"
LESSOPEN
indique que le filtre d'entrée doit également être utilisé lors de l'ajout de texteless
. Dans ce cas, Emacs ne peut compter que sur le texte lui-même (et non sur un nom de fichier). Heureusement, Emacs fournit un système pour cela. De plus, le fichier de fichier fournie2ansi-magic.el
configure des types de fichiers supplémentaires. Par exemple:Pourquoi utiliser Emacs?
e2ansi
, les couleurs du thème sont préservées lors de la visualisation d'un fichier au formatless
. Vous pouvez choisir un thème de couleur approprié dans un certain nombre de sources ou concevoir le vôtre.less
(limitations moins en format de séquence ANSI et dans la fenêtre du terminal).less
tirera parti des fonctionnalités d’Emacs qui effectuent la conversion automatique, par exemple la décompression de fichiers. En fait, vous pouvez apprendre à Emacs à effectuer tout type de conversion, comme la conversion automatique d'un fichier binaire en forme lisible par un humain à l'aide d'un outil externe./USER@HOST:FILENAME
.Liens utiles
e2ansi
est distribué sur Melpa et peut être installé à l'aide du système de package Emacs standarde2ansi
est hébergé sur GitHube2ansi
page sur le wiki d'Emacsless
.Notes sur le système d'exploitation
Sur MS Windows, la console ne prend pas nativement en charge les séquences ANSI. Heureusement, l'
less
application est capable de les rendre. Je ne suis au courant d'aucune distribution binaire contemporaine deless
MS Windows et les fichiers de construction fournis sont difficiles à utiliser. Heureusement, il est facile de construireless
avec CMake , voir ce texte pour plus de détails.OS X distribue une version ancienne de
less
. Heureusement, il est facile de créer une version moderne directement à partir du code source.la source
C'est ce qu'on appelle la coloration syntaxique.
GNU Source-highlight lorsqu'un fichier source est créé, produit un document avec une coloration syntaxique.
J'utilise le
lessfilter
script ci-dessous, ou vous pouvez le faireless
invoquer automatiquement comme avec:J'ai trouvé cet article et commencé à le faire de cette façon:
(
src-hilite-lesspipe.sh
est livré avecsource-highlight
mais toutes les distributions ne l'incluent pas)la source
export
définissez une variable d'environnement, pas un alias. La commandeless
utilise des indicateurs de la variable d'environnementLESS
, votre réponse nécessite donc du travail.