Hat jemand Unterstützung für ansi-color im Kompilierungsmodus Emacs hinzugefügt? Wenn ja, nach welcher Eigenschaft/welchem Attribut muss das Farbschreibprogramm suchen, um sicherzustellen, dass sein aktives Terminal die ANSI-Escape-Färbung unterstützt?ANSI Coloring im Kompilierungsmodus
Antwort
Es gibt bereits eine Funktion zum Anwenden von Farbe auf Comint-Puffer. Sie müssen lediglich auf Kompilation Puffer aktivieren:
sollte(require 'ansi-color)
(defun colorize-compilation-buffer()
(toggle-read-only)
(ansi-color-apply-on-region compilation-filter-start (point))
(toggle-read-only))
(add-hook 'compilation-filter-hook 'colorize-compilation-buffer)
Farb Schreiben von Programmen, die TERM
Umgebungsvariable überprüfen und die terminfo-Datenbank zu überprüfen, ob das Terminal Farbe unterstützt. In der Praxis ignorieren viele Programme dies und verlassen sich auf eine Benutzereinstellung. Emacs setzt den Typ der Kompilationsterminal standardmäßig auf dumb
, aber dies kann überschrieben werden, indem die Variable compilation-environment
gesetzt wird.
Es scheint nicht vollständig zu funktionieren. Ich habe mit 'grep --color' getestet und manchmal werden größere Regionen eingefärbt, was nicht sein sollte. Es scheint, als ob Emacs nicht immer deaktivieren ANSI-Kontrollsequenzen erkennt :( –
@ Nordlöw, ich habe dieses Problem behoben, und den Post aktualisiert. Die Funktion versuchte, den gesamten Puffer zu färben, obwohl es nur den Chunk filtern sollte Obwohl die neue Version viel robuster und schneller ist, kann sie immer noch verwechselt werden, da es nicht garantiert ist, dass ein Prozess seine Ausgabe nicht mitten in der Escape-Sequenz unterbricht. – ivg
Danke, für die Hilfe. –
Meine optimierte Lösung, die nicht M-x grep
(nur für M-x compile
) verschmutzen:
(ignore-errors
(require 'ansi-color)
(defun my-colorize-compilation-buffer()
(when (eq major-mode 'compilation-mode)
(ansi-color-apply-on-region compilation-filter-start (point-max))))
(add-hook 'compilation-filter-hook 'my-colorize-compilation-buffer))
Danke! Als ich etwas mehr wie die oben angenommene Antwort verwendet, meine Rgrep-Puffer wurden in einem festen roten Schriftart angezeigt. Ihre Version funktioniert viel besser für mich Mit emacs 24.3.50.1. – sockmonk
Danke, das scheint eine bessere Lösung zu sein, die Verwendung von 'compilation-filter-start' sollte viel effizienter sein, als alles neu zu färben ween '(point-min)' und '(point-max)' jedes Mal. – mgalgs
Um dies zu tun, musste ich die compilation-Umgebungsvariable auf TERM = xterm-256color setzen. –
- 1. Inhalte in TextBox im ANSI-Format einfügen
- 2. C Mandelbrot Set Coloring
- 3. Make Eclipse Syntax Coloring genau wie Visual Studio Syntax Coloring
- 4. Gurken ANSI-Farben messaging up emacs Kompilierungspuffer
- 5. GraphML Node Coloring Prefuse
- 6. Coloring Sektoren in MATLAB
- 7. Coloring JavaFX Shape
- 8. Online Code Coloring Service
- 9. gtkmm button coloring
- 10. Coloring ACF ggplot Objekt
- 11. Graph Coloring Visualisierung
- 12. Vim Konfigurieren Zeilennummer Coloring
- 13. iOS Coloring Transparent Image
- 14. primefaces datable row coloring
- 15. Coloring das Space-Widget
- 16. Coloring/Einrücken ein Skript im Skript in Emacs
- 17. ANSI vs. nicht-ANSI SQL JOIN-Syntax
- 18. Coloring NSTableView Text pro Zeile
- 19. Coloring Text in RichtextBox, C#
- 20. Coloring JSON Ausgabe in Python
- 21. Java „ANSI Konstanten“
- 22. Bitmanipulationsbibliothek für ANSI C
- 23. Analysieren Sie ANSI-Escape-Code-Farben im Browser?
- 24. Zeichnen von Tabellen im Terminal mit ANSI-Box-Zeichen
- 25. ANSI Grafikcodes und Python
- 26. Biteinstellung in Ansi C
- 27. PHP entschlüsseln ANSI-Zeichen
- 28. `Klirren -ansi` Erweiterungen
- 29. Java ANSI X923 Padding
- 30. ANSI PADDING Standardfragen
möglich Duplikat [Gurke ANSI-Farben vermasselt Emacs Kompilation Puffer] (http://stackoverflow.com/questions/3072648/gurken-ansi-colors-messing-up-emacs-compilation-buffer) – legoscia