Czy ktoś dodał obsługę ansi-color w trybie kompilacji Emacs? Jeśli tak, to jaką właściwość/atrybut ma sprawdzić program do kolorowania, aby upewnić się, że aktywny terminal obsługuje kolorowanie ucieczki ANSI.Kolorowanie ANSI w trybie kompilacji
Odpowiedz
Istnieje już funkcja do nakładania koloru na bufory COMP. Wystarczy włączyć go na buforach kompilacji: pisanie programów
(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)
kolor powinien sprawdzić zmienną środowiskową TERM
i bazy danych terminfo aby sprawdzić, czy terminal obsługuje kolory. W praktyce wiele programów ignoruje to i polega na ustawieniu użytkownika. Emacs domyślnie ustawi typ terminala kompilacji na dumb
, ale można to zmienić poprzez ustawienie zmiennej compilation-environment
.
Wygląda na to, że nie działa on całkowicie. Przetestowałem z 'grep --color', a czasem większe regiony przebarwiają się, co nie powinno być. Wygląda na to, że Emacs nie zawsze wykrywa wyłączenie sekwencji kontrolnych ANSI :( –
@ Nordlöw, Naprawiłem ten problem i zaktualizowałem post.Funkcja próbowała zabarwić cały bufor, chociaż powinna filtrować tylko porcję, która jest Wylany z procesu. Chociaż nowa wersja jest znacznie bardziej niezawodna i szybka, nadal może być mylona, ponieważ nie jest gwarantowane, że proces nie zmniejszy jego wydajności w trakcie sekwencji ucieczki – ivg
Dzięki za pomoc. –
Moja zoptymalizowane rozwiązanie, które nie zanieczyszczają M-x grep
(tylko dla 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))
Dziękuję! Kiedy użyłem czegoś bardziej podobnego do powyższej zaakceptowanej odpowiedzi, moje bufory rgrep były wyświetlane czerwoną czcionką. znacznie lepiej dla mnie.Za pomocą emacsa 24.3.50.1. – sockmonk
Dzięki, wydaje się, że to lepsze rozwiązanie.Korzystanie z 'kompilacji-filtr-start' powinno być znacznie bardziej wydajne niż ponowne kolorowanie wszystkiego zakład ween '(point-min)' i '(point-max)' za każdym razem. – mgalgs
Aby to zadziałało, ustawiłem zmienną kompilacji-środowiska na TERM = xterm-256color. –
- 1. Kolory ANSI ogórka psują bufor kompilacji emacs
- 2. Obsługuj poprawnie błąd kompilacji równoległej w trybie kompilacji emacs
- 3. Kolorowanie NSTableView Tekst w wierszu
- 4. Kolorowanie tekstu w RichtextBox, C#
- 5. Utwórz składnię zaćmienia Kolorowanie dokładne jako wizualne studio Składnia Kolorowanie
- 6. Kolorowanie kodu Xcode
- 7. Terser Kolorowanie wiadomości LogCat?
- 8. Kolorowanie widżetu Spacja
- 9. ANSI Colour Codes w vim
- 10. Ustawienie bitów w Ansi C
- 11. Czy "ANSI C" lub "ANSI C++" nadal coś znaczą?
- 12. „Stałe ANSI” Java
- 13. Filtrowanie sekwencji escape ANSI
- 14. ANSI SQL Manual
- 15. Vim Konfiguruj numer linii Kolorowanie
- 16. Kolorowanie obszaru między czterema liniami w svg
- 17. Jak włączyć podświetlanie składni/kolorowanie w Pycharmie
- 18. Kolorowanie wykresu w Mathematica według etykiet
- 19. Emacs ansi-term maksymalny rozmiar bufora?
- 20. Kolorowanie wierzchołka Junga z wartością
- 21. Wyłączanie kolorowania fragmentów w trybie nXhtml Emac'a
- 22. Niebuforowane wejścia/wyjścia w ANSI C
- 23. Analizować kolory kodów ewidencyjnych ANSI w przeglądarce?
- 24. Jak zdefiniować wartość NaN w ANSI C?
- 25. ansi-term/wielowyrazowy błąd w filtrze procesu
- 26. Odczyt i zapis tekstu w formacie ANSI
- 27. make iterm show ansi domyślnie
- 28. Czysta ANSI-C: generic array
- 29. ANSI C odpowiednik try/catch?
- 30. ANSI C i funkcja przeciążenia
możliwe duplikat [kolorach ANSI ogórek jest brudząc się emacsowi bufor kompilacja] (http://stackoverflow.com/questions/3072648/cucumbers-ansi-colors-messing-up-emacs-compilation-buffer) – legoscia