emacs ansi-term背景颜色

时间:2010-07-20 23:06:44

标签: shell emacs terminal

我在改变ansi-term中的背景颜色时遇到了问题(还有术语 - 但是shell很好)。它从输出中显示精细的颜色,但输出的背景颜色始终为白色。不是整个缓冲区,而是在已输出的实际字符下。如果我做了像

这样的事情
(add-hook 'ansi-term-mode-hook
    (lambda ()
        (set-background-color "purple")))

这会更改缓冲区的背景颜色,但输出会使用自己的背景颜色覆盖它 - 白色。

我也试图找到它正在使用的脸部,所以我可以通过C-u C-x =来定制脸部的信息 - 这适用于其他一切,甚至指向你的位置改变它很好......但是在ansi术语中我得到了这个

    character: m (109, #o155, #x6d)
preferred charset: ascii (ASCII (ISO646 IRV))
   code point: 0x6D
       syntax: w    which means: word
     category: .:Base, a:ASCII, l:Latin, r:Roman
  buffer code: #x6D
    file code: #x6D (encoded by coding system utf-8)
      display: by this font (glyph code)
xft:-unknown-DejaVu Sans Mono-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1 (#x50)

Character code properties: customize what to show
  name: LATIN SMALL LETTER M
  general-category: Ll (Letter, Lowercase)

There are text properties here:
  face                 (:background "white" :foreground "black")

[back]

我不知道这是设置的地方。 面部(:背景“白色”:前景“黑色”)

另外,我使用了多个主题,我知道它们有ansi-term-color-vector(zenburn等)。我已经浏览了自定义面中的每个样本,也没有在那里。

关于如何覆盖/设置它的任何想法,所以它只是透明(或未设置)背景,就像其他一切一样?

感谢您的帮助。

2 个答案:

答案 0 :(得分:8)

我不确定我是否理解您的设置中发生了什么,但您可以尝试设置:

(setq term-default-bg-color "#211E1E")
(setq term-default-fg-color "#AAAAAA")

从头开始尝试缓冲区开始一个新术语并检查。

答案 1 :(得分:2)

user178399 的回复在 10 年前完全正确。从 v24.3 开始,这对变量已被弃用,以支持自定义 term 面。事实上,在 Emacs 25.6(Debian 10 发行版,x64)中,设置这些变量不再有任何影响,而改变面孔却有。

如果(或者更确切地说,因为变量已经损坏,至少在这里),不要忘记从您的 init 文件(通常是 ~/.emacs)中删除它们的设置或重置它们的自定义。

提醒一下,如果您正在寻找为什么默认的前台/后台设置在升级后突然变得愤怒和不服从...

令我困惑的是,我仍然需要更改钩子中 ansi-term 缓冲区的背景以匹配 term 脸的背景,就像 10 年前 OP 所做的那样,以免我得到这个。输,输!

enter image description here

哦,现在有了 Emacs.SE,这是一个更好的针对 Emacs 相关问题的地方。