2

有没有办法轻松修改font-face光标下的?

例如,下面的蓝色文本很难阅读:

                           在此处输入图像描述

以上是输出

ipython --color "Linux"

ansi-term在with tango-darkin上运行Emacs 24.1,即 (load-theme 'tango-dark t)

如果我what-cursor-position在上面的图像上运行(这里描述:Get font face under cursor in Emacs),我得到:

             position: 30385 of 30477 (100%), column: 22
            character: / (displayed as /) (codepoint 47, #o57, #x2f)
    preferred charset: ascii (ASCII (ISO646 IRV))
code point in charset: 0x2F
               syntax: _    which means: symbol
             category: .:Base, a:ASCII, l:Latin, r:Roman
          buffer code: #x2F
            file code: #x2F (encoded by coding system nil)
              display: by this font (glyph code)
    xft:-unknown-DejaVu LGC Sans Mono-bold-normal-normal-*-11-*-*-*-m-0-iso10646-1 (#x12)

Character code properties: customize what to show
  name: SOLIDUS
  old-name: SLASH
  general-category: Po (Punctuation, Other)
  decomposition: (47) ('/')

There are text properties here:
  face                 (:weight bold :foreground "blue2" :background unspecified)

我怎样才能修改这个字体?

如果您想知道 IPython 仅支持三种颜色集:

  • Nocolor
  • Linux(我上面使用的那个)
  • LightBG(用于浅色背景)

更新:

我认为font-lock-string-face是一张不同的脸:

                        在此处输入图像描述

事实上,我认为这不是 IPython 用来表示字符串的面,而是python-mode用来表示带有常规 python 代码的缓冲区中的字符串的面(tango-dark见下文)。

                                          在此处输入图像描述

4

3 回答 3

3

It is possible to change the way ansi colors are shown:

(defface term-color-red
    '((t (:foreground "#ff0000" :background "#ff0000")))
  "Unhelpful docstring.")

Here is the whole bunch:

term-color-red
term-color-green
term-color-black
term-color-yellow
term-color-blue
term-color-magenta
term-color-cyan
term-color-white
于 2013-01-25T00:02:59.030 回答
3

M-x customize-face将光标悬停在要修改的特定内容上。也可以使用set-face-foregroundset-face-background具体取决于您想要做什么(有时最好更改背景颜色以使字体更容易在终端中看到)。

所以我检查了 IPython,正如我在下面的评论中提到的那样,ipython.el并没有突出显示它自己。着色都是使用终端 ANSI 颜色完成的。在某些终端中,可以通过 a.bashrc.zshrc任何您的 shell 更改颜色并可能运行它M-x term。通过 Emacs 本身,我看不到更改它的方法,因为 IPython 只有 3 个默认方案,并且据我所知无法指定任何特定的内容。

于 2013-01-24T20:58:12.327 回答
1

sabof一样,我认为您看到的颜色是由 设置的ansi-term,而不是由 Emacs 的颜色主题设置的。

配置这些颜色的一种方法是设置ansi-term-color-vector变量。查看代码term.el有助于理解该变量的含义:它包含 8 个ansi 颜色转义码的颜色规范:

(defvar ansi-term-color-vector
  [unspecified "black" "red3" "green3" "yellow3" "blue2"
   "magenta3" "cyan3" "white"])

这是我的设置(可能适合你,因为我也在使用深色 Tango 主题):

;; ANSI Term colors
(setq ansi-term-color-vector
      [unspecified "#000000" "#b21818" "#18b218" "#BE5F00"
                   "#6D85BA" "#b218b2" "#18b2b2" "#b2b2b2"])
于 2013-01-25T19:01:18.697 回答