1

I use Emacs and I run bash with M-x term command.

There is a problem: colors in the *terminal* buffer aren't the same as in Gnome Terminal, and they are worse (do you need a screen shot?).

How can I fix this? This is pretty annoying :-) Thank you!


Linux Mint 9

Emacs 23.1.1 x86_64


__________________
/home/valentin/Work/buzzoola/buzzoola/test/vagrant
[.../vagrant]$ echo $TERM
eterm-color

__________________
/home/valentin/Work/buzzoola/buzzoola/test/vagrant
[.../vagrant]$ echo $LS_COLORS
rs=0:di=01;34:ln=01;36:hl=44;37:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31
;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:
*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31
:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01
;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jp
eg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;3
5:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.p
cx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;
35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm
=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*
.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00
;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.
ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:  

2 Answers 2

1

The "terminal emulator" implemented by emacs doesn't support as many colors as gnome-terminal does. In fact, it advertises not supporting any colors at all, and here I get ANSI escape sequences not understood by it. What distribution and version are you running that it supports color at all?


See comments below; the answer turns out to be that the OP overrode the terminal type, and recent M-x terminal-emulator supports colors (may actually be the ansi-term mentioned elsewhere in this thread); so fix the colors up using dircolors --print-database >file to dump ls's color database, edit it, then eval $(dircolors file) to load the changed colors into the shell.

7
  • I edited my answer, thanks! Maybe if I show you my .bashrc you'll help to add a check if the terminal is running in Emacs and change colors? Btw, I'm using not M-x shell, but M-x term, maybe your answer is about the former
    – valya
    Commented Mar 7, 2011 at 22:56
  • No, I used M-x terminal-emulator (full name of the command) specifically to make sure I wasn't getting the wrong thing. What does echo $TERM return inside the terminal? How about echo $LS_COLORS? (the latter could potentially be large, although it might also be unset)
    – geekosaur
    Commented Mar 7, 2011 at 23:05
  • added these, please take a look!
    – valya
    Commented Mar 7, 2011 at 23:11
  • Ok. First thing I notice is you overrode the terminal type (probably in ~/.bashrc; when I do that I also get colors. I notice that all the bold colors are missing, though; while gnome-terminal should support the 16- and 256-color palettes, M-x terminal supports only 8. You're not going to be able to fix this without rewriting or replacing M-x terminal-emulator, I suspect. A possible replacement is <emacswiki.org/emacs/AnsiTerm>.
    – geekosaur
    Commented Mar 7, 2011 at 23:22
  • thank you. I tried ansi-term, bad colors again.. maybe I should just try to switch colors (the only one which really irritates me is \033[01;34m\]
    – valya
    Commented Mar 7, 2011 at 23:29
0

How about trying a different emacs terminal mode? ansi-term renders colors.

1
  • the mode renders them but not completely
    – valya
    Commented Mar 7, 2011 at 23:24

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .