简体   繁体   中英

How do I change the color settings in emacs23 running in a terminal emulator?

I use xterm and set its appearance in ~/.Xdefaults :

XTerm*background:       paleTurquoise
XTerm*foreground:       black

I also use emacs, but set its appearance differently in ~/.emacs :

(set-background-color "black")
(set-foreground-color "yellow")

I usually run emacs within the terminal emulator with emacs -nw , rather than creating a separate X window. For some reason, this doesn't work properly for emacs23; instead, emacs retains the pale turquoise background of my xterm window. Looking at what's new in emacs23 , I noted that:

** When running in a new enough xterm (newer than version 242), Emacs asks xterm what the background color is and it sets up faces accordingly for a dark background if needed (the current default is to consider the background light).

So it's a feature, not a bug? Anyway, is there some way that I can I tell emacs23 to ignore the xterm background settings when running in console mode, and use the settings in ~/.emacs instead?

I'll also note that:

  • It works fine in emacs23 running in a separate X window (without the -nw option).
  • It worked fine in emacs22; and I'm not really sure whether I need to use emacs23...
  • Running Mx set-background-color within emacs23 -nw has no effect.
  • It's not just xterm: the same problem exists with $TERM=cygwin , for example.

UPDATE: the best answer seems to be to use the -fg and -bg command-line options...

您需要设置TERM=xterm-256color

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM