Модифицируйте лицо под курсором в Emacs, в том числе на ANSIMER
Есть ли способ легко изменить font-face
под курсором?
Например, текст синим цветом ниже трудно читать:
Выше приведен вывод
ipython --color "Linux"
работает на ansi-term
с tango-dark
в Emacs 24.1
т.е. (load-theme 'tango-dark t)
Если я бегу what-cursor-position
на изображении выше (описано здесь: получить шрифт под курсором в 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
) -- увидеть ниже --.
3 ответа
M-x customize-face
наведя курсор на конкретную вещь, которую вы хотите изменить. Также доступны set-face-foreground
а также set-face-background
в зависимости от того, что вы хотите сделать (иногда полезно изменить цвет подложки, чтобы шрифт было легче увидеть в терминалах).
Поэтому я проверил IPython, как указано в моем комментарии ниже и ipython.el
не выделяет самостоятельно. Окраска выполняется с использованием терминальных цветов ANSI. В некоторых терминалах возможно изменить цвета с помощью .bashrc
или же .zshrc
или что бы ни была ваша оболочка и запускать ее из M-x term
возможно. В самом Emacs я не вижу способа изменить его, поскольку у IPython есть только 3 схемы по умолчанию и нет способа указать что-либо конкретное, насколько я вижу.
Можно изменить способ отображения цветов ANSI:
(defface term-color-red
'((t (:foreground "#ff0000" :background "#ff0000")))
"Unhelpful docstring.")
Вот целая связка:
term-color-red
term-color-green
term-color-black
term-color-yellow
term-color-blue
term-color-magenta
term-color-cyan
term-color-white
Как и Сабоф, я думаю, что цвет, который вы видите, установлен ansi-term
и не по цветовой теме Emacs.
Способ настроить эти цвета состоит в установке ansi-term-color-vector
переменная. Глядя на код в term.el
помогает понять значение этой переменной: она содержит спецификации цвета для 8- цветных escape-кодов ANSI:
(defvar ansi-term-color-vector
[unspecified "black" "red3" "green3" "yellow3" "blue2"
"magenta3" "cyan3" "white"])
Вот мои настройки (которые могут вам подойти, так как я также использую темную тему танго):
;; ANSI Term colors
(setq ansi-term-color-vector
[unspecified "#000000" "#b21818" "#18b218" "#BE5F00"
"#6D85BA" "#b218b2" "#18b2b2" "#b2b2b2"])