Quelqu'un a-t-il ajouté le support pour ansi-color en mode Emacs en mode compilation? Si oui, quelle propriété/attribut le programme d'écriture de couleur doit-il vérifier pour s'assurer que son terminal actif supporte la coloration d'échappement ANSI?Coloriage ANSI en mode compilation
Répondre
Il existe déjà une fonction pour appliquer la couleur aux tampons de comint. Il vous suffit de l'activer sur les tampons de compilation:
(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)
programmes d'écriture de couleur doivent vérifier la variable d'environnement TERM
et la base de données terminfo pour vérifier si le terminal prend en charge la couleur. En pratique, beaucoup de programmes ignorent cela et s'appuient sur un paramètre utilisateur. Emacs définira le type de terminal de compilation sur dumb
par défaut, mais cela peut être annulé en définissant la variable compilation-environment
.
Cela ne semble pas fonctionner complètement. J'ai testé avec 'grep --color' et des régions parfois plus grandes sont colorisées ce qui ne devrait pas être. Il semble qu'Emacs ne détecte pas toujours les séquences de contrôle ANSI désactivées: ( –
@ Nordlöw, j'ai corrigé ce problème et mis à jour le post.) La fonction essayait de coloriser le tampon entier, bien qu'il ne doive filtrer que le fragment qui est Bien que la nouvelle version soit beaucoup plus robuste et rapide, elle peut encore être confondue, car il n'est pas garanti qu'un processus ne coupe pas sa sortie au milieu de la séquence d'échappement – ivg
Merci, pour l'aide. –
Ma solution optimisée qui ne pollue M-x grep
(uniquement pour M-x compile
):
(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))
Merci Quand j'ai utilisé quelque chose de plus comme la réponse acceptée ci-dessus, mes tampons rgrep s'affichaient dans une police rouge. Avec emacs 24.3.50.1 – sockmonk
Merci, cela semble être une meilleure solution.Utiliser 'compilation-filter-start' devrait être beaucoup plus efficace que de re-colorier tout ween '(point-min)' et '(point-min)' chaque fois. – mgalgs
Pour que cela fonctionne, j'ai dû définir la variable d'environnement de compilation sur TERM = xterm-256color. –
- 1. Couleurs ANSI du concombre déconner tampon de compilation emacs
- 2. Activation de viper-mode et vimpulse en mode de compilation
- 3. Erreur de compilation en mode de publication
- 4. Coloriage/Surlignage Texte en sublime
- 5. coloriage objet dendogram en matlab
- 6. SVN Diff Coloriage en Vim
- 7. ReSharper Variables coloriage en rouge
- 8. Coloriage JComboBox
- 9. Comportement de coloriage RichTextbox
- 10. ANSI C erreur de compilation: expression attendue avant ',' jeton
- 11. Coloriage dynamique
- 12. Modèle en ansi C?
- 13. Faire éclipse Syntaxe Coloriage exact comme visual studio Syntaxe Coloriage
- 14. Coloriage de l'expander
- 15. milieu de coloriage de chaîne en javascript
- 16. Coloriage procédural/dynamique d'une skybox en OpenGL
- 17. texte coloriage en StatusStrip dans WinForms
- 18. Coloriage ListView row en fonction du contenu
- 19. WPF Calendar Weekend Coloriage
- 20. Erreur lors de la compilation en mode édition mais pas en mode débogage
- 21. Coloriage booléen Matplotlib
- 22. Coloriage d'un rectangle
- 23. bouton bootstrap coloriage question
- 24. Liens de coloriage Navbar
- 25. Eclipse, PyDev Syntaxe Coloriage
- 26. Coloriage points de fermeture
- 27. Coloriage de ListBox
- 28. Coloriage de syntaxe Netbeans
- 29. Toile HTML5 - Coloriage Problème
- 30. Conversion de ANSI en Unicode
double possible de [couleurs ANSI de concombre déconner Buffer de compilation emacs] (http://stackoverflow.com/questions/3072648/concombres-ansi-couleurs-déconner-emacs-compilation-buffer) – legoscia