Estoy usando el *compilation*
búfer para compilar una aplicación C ++ en Centos 5 y Centos 6. El búfer muestra la compilación e incluye referencias a archivos que forman parte de la compilación. Sin embargo, obtengo caracteres de control como ^[
aparecen en la salida y es difícil de leer y emacs está corrompiendo los nombres de archivo cuando hace clic en uno en la salida. Creo que estos personajes son algún tipo de color u otra anotación en la salida del compilador, pero no sé de dónde vienen. Aquí está la salida de muestra:
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
¿Cómo puedo deshacerme de la salida sin texto en mi búfer de compilación?
major-mode
formatting
coloring
WilliamKF
fuente
fuente
-fdiagnostics-color=never
agcc
(suponiendo quegcc
sea succ
)ansi-color-apply-on-region
podría ser lento, escribí este fragmento hace unas semanas: de-ansi.el . No tenía la intención de que fuera un paquete y, por lo tanto, depende del paquete de acordes clave y de mi modo menor temporal temp-mode.el . También debe estar en emacs 24.4 o posterior para la función de notificación de archivos.Respuestas:
Estas son secuencias de escape que el terminal debe interpretar como órdenes para cambiar el color del texto. Normalmente no deberían usarse cuando el compilador se invoca desde Emacs (el tipo de terminal debe establecerse en
dumb
, lo que debería hacer que el compilador se abstenga de usar cualquier secuencia de escape). Puede haber algo mal en su configuración que haga que los colores se usen cuando no deberían. Pero puede hacer que Emacs reconozca las secuencias de escape con el paquete ansi-color .Algo como esto debería hacer que los búferes de compilación manejen secuencias de escape ANSI en lugar de mostrarlas como cadenas sin formato.
fuente