Modifying ansi-term colors in Emacs

3.7k Views Asked by At

The text in the red ellipse below is hard to read

                     enter image description here

When I inspect the face with C-u C-x = (what face) I see the following:

enter image description here

So I went to update the face term-bold (see below), but the color doesn't seem to match what I actually got on the screen above (it should be blue+yellow according to the face definition). Any thoughts?

enter image description here

3

There are 3 best solutions below

4
On BEST ANSWER

Emacs uses its own terminal colors to render ansi color codes. You can change the appearance of the face that you are referring to by changing two faces:

  • term-color-yellow
  • term-color-blue

For example, changing the foreground property of the face term-color-yellow to yellow3, and the background property of the face term-color-blue to dark-blueresults in the following appearance:

                  enter image description here

which is more readable than the face in the original post and resembles the traditional appearance of the blue and yellow terminal colors.

0
On

The most efficient way to do that is to use the Emacs customization group

M-x customize-group RET term RET

This will open

enter image description here

1
On

It's telling you that the face inherits from term-bold, and then over-rides the inherited foreground, background, and inverse-video properties.

I would guess the colours are coming from the shell (I assume it's a shell) that you're running in that terminal. So you probably need to configure the colours outside of Emacs?