J'utilise le *compilation*
tampon pour créer une application C ++ sur Centos 5 et Centos 6. Le tampon affiche la génération et inclut des références aux fichiers qui font partie de la génération. Cependant, je reçois des caractères de contrôle comme ceux qui ^[
apparaissent dans la sortie et il est difficile à lire et emacs obtient des noms de fichiers corrompus lorsque vous cliquez sur un dans la sortie. Je pense que ces caractères sont une sorte de coloration ou autre annotation sur la sortie du compilateur mais je ne sais pas d'où ils viennent. Voici un exemple de sortie:
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
Comment puis-je me débarrasser de la sortie non textuelle dans mon tampon de compilation?
major-mode
formatting
coloring
WilliamKF
la source
la source
-fdiagnostics-color=never
àgcc
(en supposant que cegcc
soit votrecc
)ansi-color-apply-on-region
pourrait être lent, j'ai rédigé cet extrait il y a quelques semaines: de-ansi.el . Je ne voulais pas que ce soit un package et il a donc des dépendances sur le package d'accords clés et sur mon mode mineur temporaire temp-mode.el . Vous devez également être sur emacs 24.4 ou version ultérieure pour la fonction de notification de fichier.Réponses:
Ce sont en effet des séquences d'échappement que le terminal doit interpréter comme des ordres pour changer la couleur du texte. Normalement, ils ne doivent pas être utilisés lorsque le compilateur est appelé depuis Emacs (le type de terminal doit être défini sur
dumb
, ce qui devrait empêcher le compilateur d'utiliser toute séquence d'échappement). Il peut y avoir un problème dans votre configuration qui fait que les couleurs doivent être utilisées alors qu'elles ne devraient pas l'être. Mais vous pouvez faire en sorte qu'Emacs reconnaisse les séquences d'échappement avec le paquet ansi-color .Quelque chose comme ça devrait permettre aux tampons de compilation de gérer les séquences d'échappement ANSI au lieu de les afficher sous forme de chaînes brutes.
la source