Ich mag Ansicht (und / oder bearbeiten) kolorierte Text in Emacs, wie ausgegeben durch ls -l --color=always
, tree...
oder was auch immer.
Der Text, auf den ich mich beziehe, existiert in einer Datei. Wenn ich diese Datei in Emacs öffne, möchte ich sie koloriert sehen oder umschalten können, um ANSI (SGR) Escape-Sequenzen anzuzeigen.
ansi-color.el
Es scheint das zu sein, was ich brauche, aber ich konnte es nicht dazu bringen, die ANSi-Escape- Sequenzen einzufärben , aber ich sehe blau-fett für einzelne Steuerbytes (z. B. ^A
und ^[
) ... bin ich nicht sicher, ob das ein Merkmal von ist ansi-color
, aber ich denke, es ist.
Laut den Kommentaren von ansi-color.el kann es mit Zeichenfolgen und Regionen funktionieren, aber selbst das scheint nicht zu funktionieren. Zum Beispiel wird die Funktion von ansi-color-apply-on-region
nicht erkannt M-x
. Es heißt "No match"
Ich habe (require 'ansi-color)
zu meiner .emacs- Datei hinzugefügt und sogar (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
. Ich bekomme keine Fehler oder Warnungen, wenn Emacs startet, also stecke ich fest.
Wie kann ich die Standardfunktionen zum Laufen bringen und kann sie beim Öffnen einer Datei, deren Name mit einem Suffix versehen ist, automatisch anwenden .col
?
Mit der folgenden Lösung können Dateien mit ANSI-Farbsequenzen gelesen (und nicht gespeichert) werden. Die Dateinamen müssen eine
.txt
Erweiterung haben.Legen Sie die Bibliothek tty-Format in
~/.emacs.d/site-lisp/
, dann fügen Sie diese Zeilen zu Ihrer~/.emacs
init - Datei.quelle
ansi-color
und geht noch einen Schritt weiter, wie Ihr Link sagt: "... Das Ziel von tty-format.el ist nur, * solche Dateien sichtbar zu machen ." * .. " solche Dateien " sind solche, die ANSI SGR-Escape enthalten Sequenzen und Backspacing .. Danke ..tty-format
. Es scheint meiner Wrapper-Funktion oder dem 3-Zeilen-Ableitungsmodus überlegen zu sein. :) Emacs hat es schwer mit vielen Overlays umzugehen, so wie Ansi-Color die Kolorierung macht. Hier besteht die Möglichkeit einer weiteren Optimierung, da nicht der gesamte Puffer, sondern nur der angezeigte Teil eingefärbt werden muss.Vielen Dank @enzotib für Ihre Lösung!
Als Ergänzung zu Ihrer Lösung können Sie sie wie folgt explizit für den Benutzer aufrufbar machen:
und automatisch für andere Dateien als nur * .txt oder README:
Auf diese Weise können Sie Ihre Escape-Sequenzen durch Farben ersetzen, ohne die Originaldatei zu ändern, im Gegensatz zu Lösungen, die verwendet werden
ansi-color-apply-on-region
.quelle