Estou usando o *compilation*
buffer para criar um aplicativo C ++ no Centos 5 e Centos 6. O buffer mostra a compilação e inclui referências a arquivos que fazem parte da compilação. No entanto, estou recebendo caracteres de controle como ^[
aparecem na saída e é difícil de ler e o emacs está recebendo nomes de arquivos corrompidos quando você clica em um na saída. Eu acho que esses caracteres são algum tipo de coloração ou outra anotação na saída do compilador, mas não sei de onde eles vêm. Aqui está o exemplo de saída:
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
Como posso me livrar da saída não textual no meu buffer de compilação?
major-mode
formatting
coloring
WilliamKF
fonte
fonte
-fdiagnostics-color=never
paragcc
(assumindo quegcc
é o seucc
)ansi-color-apply-on-region
pode ser lento, escrevi este trecho algumas semanas atrás: de-ansi.el . Eu não pretendia que fosse um pacote e, portanto, ele depende do pacote de acordes de teclas e do meu modo secundário temporário temp-mode.el . Você também precisa estar no emacs 24.4 ou posterior para o recurso de notificação de arquivos.Respostas:
Essas são, de fato, seqüências de escape que o terminal deve interpretar como ordens para alterar a cor do texto. Normalmente eles não devem ser usados quando o compilador é chamado pelo Emacs (o tipo de terminal deve ser definido como
dumb
, o que deve fazer com que o compilador se abstenha de usar qualquer sequência de escape). Pode haver algo errado na sua configuração que faz com que as cores sejam usadas quando não deveriam. Mas você pode fazer o Emacs reconhecer as seqüências de escape com o pacote ansi-color .Algo assim deve fazer com que os buffers de compilação manipulem sequências de escape ANSI em vez de exibi-las como strings brutas.
fonte