The symptom of the problem looks like \"[0m[27m[24m[J[34;1\" which on a terminal translates into the color blue.
-A
The solution that is currently giving me some success is to redefine the shell function as an ansi term:
;; shell-mode
(defun sh ()
(interactive)
(ansi-term "/bin/zsh"))
I've got the following in my .emacs
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
The following should work in your .bash_profile or .bashrc
case $TERM in
xterm-color)
export PS1='\[\e]0;\W\007\]\[\e[34;1m\]\W\[\e[0m\]\$ '
;;
*)
export PS1='\W\$ '
;;
esac
For the "ignore" alternative, put something like "alias ls=ls" or "unset LS_COLORS" in your ~/.emacs_{bash,tsch,whatever-your-shell-is-called} file. This file is executed in all subordinate shells created by emacs.
Emacs sends the new shell the contents of the file
~/.emacs_shellnameas input, if it exists, whereshellnameis the name of the file that the shell was loaded from. For example, if you use bash, the file sent to it is~/.emacs_bash. If this file is not found, Emacs tries to fallback on~/.emacs.d/init_shellname.sh.