Używam *compilation*
bufora do zbudowania aplikacji C ++ na Centos 5 i Centos 6. Bufor pokazuje kompilację i zawiera odniesienia do plików, które są częścią kompilacji. Jednak dostaję znaki kontrolne, takie jak ^[
pojawiają się na wyjściu i trudno jest je odczytać, a emacs otrzymuje uszkodzone nazwy plików po kliknięciu jednego z nich. Myślę, że te postacie są jakimś kolorem lub inną adnotacją na wyjściu kompilatora, ale nie wiem, skąd pochodzą. Oto przykładowe dane wyjściowe:
cc -c -g -I../machind -I. -DRELEASE_VERSION -g -O2 -m64 -D__BITS64 -pipe -DARCH_64 -DARCH_INTEL -DARCH_X86 -DARCH_X86_64 -DOS_LINUX -pthread -DLM_INTERNAL -DFLEXLM_KITBUILD -DFLEX_STATIC -DRELEASE_VERSION -DGPLATFORM=\\"x64_lsb\\" -DLINUX -DLSB3_0 -D__FD_SETSIZE=65535 -DGLIBC -DLINUX64 -DAMD64 -DREDHAT -DREL -DRHLINUX64 -DPLATFORM_AMD64_RHLINUX -DNO_ACTIVATION_SUPPORT ../machind/lmcrypt.c
^[[01m^[[K../machind/lmcrypt.c:^[[m^[[K In function ^[[01m^[[Kmain^[[m^[[K :
^[[01m^[[K../machind/lmcrypt.c:156:47:^[[m^[[K ^[[01;35m^[[Kwarning: ^[[m^[[Kcast to pointer from integer of different size [-Wint-to-pointer-cast]
lc_set_attr(lm_job, LM_A_MAX_LICENSE_LEN, (LM_A_VAL_TYPE)max);
^[[01;32m^[[K ^^[[m^[[K
Jak mogę pozbyć się nietekstowego wyniku w buforze kompilacji?
major-mode
formatting
coloring
WilliamKF
źródło
źródło
-fdiagnostics-color=never
dogcc
(zakładając, żegcc
to twojecc
)ansi-color-apply-on-region
może być powolne, napisałem ten fragment kilka tygodni temu: de-ansi.el . Nie chciałem go mieć pakiet, a więc ma zależności na opakowaniu key-akordów i na moim tymczasowym trybie moll Temp-mode.el . Musisz także korzystać z emacsa 24.4 lub nowszego, aby włączyć funkcję powiadamiania o plikach.Odpowiedzi:
Są to rzeczywiście sekwencje specjalne, które terminal powinien interpretować jako rozkazy zmiany koloru tekstu. Zwykle nie należy ich używać, gdy kompilator jest wywoływany z Emacsa (typ terminala powinien być ustawiony na
dumb
, co powinno spowodować, że kompilator powstrzyma się od używania jakiejkolwiek sekwencji ucieczki). W twojej konfiguracji może być coś złego, co powoduje, że kolory są używane, gdy nie powinny. Ale możesz sprawić, by Emacs rozpoznał sekwencje specjalne za pomocą pakietu kolorów ansi .Coś takiego powinno sprawić, że bufory kompilacji będą obsługiwały sekwencje specjalne ANSI zamiast wyświetlać je jako nieprzetworzone łańcuchy.
źródło