Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get Emacs shell mode to either render (or ignore) my colors instead of printing ASCII codes?

The symptom of the problem looks like "[0m[27m[24m[J[34;1" which on a terminal translates into the color blue.

-A

like image 384
Setjmp Avatar asked Nov 01 '08 23:11

Setjmp


3 Answers

I've got the following in my .emacs

(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
like image 183
Chris Conway Avatar answered Nov 19 '22 17:11

Chris Conway


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"))
like image 38
Setjmp Avatar answered Nov 19 '22 19:11

Setjmp


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_shellname as input, if it exists, where shellname is 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.

like image 1
Alex Coventry Avatar answered Nov 19 '22 17:11

Alex Coventry