Je veux vue (et / ou modifier) le formatage du texte dans emacs, comme est sortie par ls -l --color=always
, tree...
ou autre chose.
Le texte auquel je fais référence existe dans un fichier. Lorsque j'ouvre ce fichier dans emacs, je veux pouvoir le voir colorisé ou le basculer pour afficher les séquences d'échappement ANSI (SGR).
ansi-color.el
semble être ce dont j'ai besoin, mais je n'ai pas pu le faire coloriser les séquences d' échappement ANSi , mais je vois du bleu en gras pour les octets de contrôle individuels (par exemple. ^A
et ^[
) ... Je ne suis pas bien sûr si c'est une caractéristique de ansi-color
, mais je pense que oui.
Selon les commentaires ansi-color.el , cela peut fonctionner avec des chaînes et des régions, mais même cela ne semble pas fonctionner. Par exemple, la fonction ansi-color-apply-on-region
n'est pas reconnue par M-x
. Il dit: "Pas de correspondance"
J'ai ajouté (require 'ansi-color)
à mon fichier .emacs et même (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
. Je ne reçois aucune erreur ni aucun avertissement lorsque emacs démarre, donc je suis bloqué.
Comment puis-je faire fonctionner les fonctions standard et les appliquer automatiquement lors de l'ouverture d'un fichier dont le nom est suffixé .col
?
La solution suivante permet de lire (et non d'enregistrer) des fichiers contenant des séquences de couleurs ANSI. Les noms de fichiers doivent avoir une
.txt
extension.Mettez la bibliothèque TTY format dans
~/.emacs.d/site-lisp/
, puis ajoutez ces lignes à votre~/.emacs
fichier init.la source
ansi-color
et va un peu plus loin, comme le dit votre lien, "... Le but de tty-format.el est simplement de rendre * ces fichiers visibles." * .. " ces fichiers " étant ceux contenant un échappement ANSI SGR séquences et backspacing .. Merci ..tty-format
. Il semble être supérieur à ma fonction wrapper ou au mode dérivé à 3 lignes. :) Emacs a du mal à gérer beaucoup de superpositions, c'est ainsi qu'ansi-color fait la colorisation. Il y a une possibilité d'optimisation supplémentaire ici, car nous n'avons pas besoin de coloriser tout le tampon, juste la partie affichée.Merci beaucoup @enzotib pour votre solution!
Tout comme un ajout à votre solution, voici un moyen de la rendre explicitement appelable par l'utilisateur:
et automatique pour les fichiers autres que * .txt ou README:
De cette façon, vous pouvez remplacer vos séquences d'échappement par des couleurs sans altérer le fichier d'origine, contrairement aux solutions utilisant
ansi-color-apply-on-region
.la source