Comment faire en sorte que le mode shell Emacs rende (ou ignore) mes couleurs au lieu d'imprimer des codes ASCII?
Question
Le symptôme du problème se présente comme suit: "[0m [27m [24m [J [34; 1"] qui sur un terminal se traduit par la couleur bleue.
-A
La solution 2
La solution qui me donne actuellement un certain succès consiste à redéfinir la fonction shell en tant que terme ansi:
;; shell-mode
(defun sh ()
(interactive)
(ansi-term "/bin/zsh"))
Autres conseils
J'ai les éléments suivants dans mon .emacs
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
Pour le " ignorer " Vous pouvez également placer quelque chose comme " alias ls = ls
". ou " unset LS_COLORS
" dans votre fichier ~ / .emacs_ {bash, tsch, quel que soit le nom de votre shell}
. Ce fichier est exécuté dans tous les shells subordonnés créés par emacs.
Emacs envoie le nouveau shell le contenu du fichier
~ / .emacs_shellname
en tant qu'entrée, s'il existe, oùnom du shell
est le nom du fichier à partir duquel le shell a été chargé. Par exemple, si vous utilisez bash, le fichier qui lui est envoyé est~ / .emacs_bash
. Si ce fichier n'est pas trouvé, Emacs tente de se replier sur~ / .emacs.d / init_shellname.sh
.
Ce qui suit devrait fonctionner dans votre profil .bash ou .bashrc
case $TERM in
xterm-color)
export PS1='\[\e]0;\W\007\]\[\e[34;1m\]\W\[\e[0m\]\$ '
;;
*)
export PS1='\W\$ '
;;
esac