Je suis heureux d'annoncer un nouveau package, e2ansi , qui fournit un support de mise en évidence de la syntaxe pour les pagers tels que more
et less
.
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
et
e2ansi
:
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):
export "LESSOPEN=||-/usr/local/emacs --batch -Q -l ~/.emacs -l bin/e2ansi-cat %s"
export "LESS=-r"
alias "more=less -X -E"
Dans la configuration ci-dessus, less
restaure le contenu de la fenêtre de terminal d'origine alors more
que le nouveau contenu est simplement généré après l'invite.
Remarque: Si vous utilisez une ancienne version de less
, il se peut que celle-ci ne prenne pas en charge la
||
ou la -
syntaxe, auquel cas vous devrez peut-être utiliser simplement
LESSOPEN=|/usr/local/emacs ...
.
Utilisation less
dans des tuyaux
Le caractère "-" LESSOPEN
indique que le filtre d'entrée doit également être utilisé lors de l'ajout de texte less
. 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 fourni
e2ansi-magic.el
configure des types de fichiers supplémentaires. Par exemple:
Pourquoi utiliser Emacs?
- Emacs prend en charge pratiquement tous les langages de programmation et les formats de texte structuré. Dans la plupart des cas, la prise en charge de la syntaxe est excellente.
- Vous pouvez facilement ajouter un support pour plus de langues et de formats, ou modifier des packages existants pour répondre à vos besoins.
- Emacs supporte les thèmes de couleurs. Lors de l'utilisation
e2ansi
, les couleurs du thème sont préservées lors de la visualisation d'un fichier au format less
. Vous pouvez choisir un thème de couleur approprié dans un certain nombre de sources ou concevoir le vôtre.
- Si vous utilisez Emacs comme éditeur de choix, vous obtiendrez la même surbrillance dans l'éditeur que lorsque vous visualisez un fichier en utilisant
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.
- Vous pouvez afficher les fichiers situés sur d'autres machines à l'aide de la syntaxe d'Emacs pour l'accès à distance, par exemple
/USER@HOST:FILENAME
.
Liens utiles
e2ansi
est distribué sur Melpa et peut être installé à l'aide du système de package Emacs standard
e2ansi
est hébergé sur GitHub
- La
e2ansi
page sur le wiki d'Emacs
- La maison de
less
.
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 de less
MS Windows et les fichiers de construction fournis sont difficiles à utiliser. Heureusement, il est facile de construire less
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.
less ~/.zshrc
. Erreur:src-hilite-lesspipe.sh: line 9: source-highlight: command not found
. Je lance ceci sur MacOSX.