Настройка терминов в новом Emacs 24.3
Как я могу отрегулировать грань term
в новом Emacs, чтобы получить тот же элемент управления, который был возможен с помощью ansi-term-color-vector
?
Одна из новых функций в Emacs 24.3 выглядит так, что она обновляет механизм управления гранью буферов term
, т.е.
Теперь переменные term-default-fg-color
и term-default-bg-color
устарел в пользу настраиваемого лица term
.
Вы можете настроить отображение цветов и стилей терминала ANSI на настраивая соответствующие term-color-COLOR
, term-color-underline
и term-color-bold
.
Микки из Mastering Emacs комментирует следующее:
Если, как и я, вы настроили ansi-color-names-vector
, чтобы изменить цвета термина по умолчанию Я предлагаю вам переключиться на использование лиц теперь. хорошие новости здесь, вы можете, должны пожелать, изменить больше, чем просто цвета для каждого цвета ANSI: нет ничего, что останавливало бы вас от принуждения другой шрифт для определенных цветов
Как и Микки, я также использовал ansi-color-names-vector
, чтобы убедиться, что цвет моих буферов term
хорошо выглядит на темных тем (например, tango-dark
)
(setq ansi-term-color-vector [unspecified "black" "red3" "lime green" "yellow3" "DeepSkyBlue?3" "magenta3" "cyan3" "white"])
Но теперь это приводит к ошибке:
"error in process filter: Invalid face; unspecified"
При попытке использовать новое лицо term
, когда я перехожу к M-x describe-face term
, я вижу следующее:
[] Font Family
[] Font Foundry
[] Width
[] Height
[] Weight
[] Slant
[] Underline
[] Overline
[] Strike-through
[] Box around text
[] Inverse-video
[] Foreground
[] Background
[] Stipple
[x] Inherit
Но как мне настроить эти настройки, чтобы получить тот же эффект, который я достиг с помощью ansi-term-color-vector
?
Update
Я все еще не могу исправить цвета. Вот меню, которое я получаю для M-x customize-theme tango-dark
:
![enter image description here]()
И вот пример одного из цветов/граней в терминале, которые трудно увидеть:
![enter image description here]()
Ответы
Ответ 1
Это работало для меня в Emacs 24.3.1, чтобы установить цвета термина и ansi-term. Просто измените цвета на ваши предпочтительные значения (с соответствующим фоном).
;; term
(defface term-color-black
'((t (:foreground "#3f3f3f" :background "#272822")))
"Unhelpful docstring.")
(defface term-color-red
'((t (:foreground "#cc9393" :background "#272822")))
"Unhelpful docstring.")
(defface term-color-green
'((t (:foreground "#7f9f7f" :background "#272822")))
"Unhelpful docstring.")
(defface term-color-yellow
'((t (:foreground "#f0dfaf" :background "#272822")))
"Unhelpful docstring.")
(defface term-color-blue
'((t (:foreground "#6d85ba" :background "#272822")))
"Unhelpful docstring.")
(defface term-color-magenta
'((t (:foreground "#dc8cc3" :background "#272822")))
"Unhelpful docstring.")
(defface term-color-cyan
'((t (:foreground "#93e0e3" :background "#272822")))
"Unhelpful docstring.")
(defface term-color-white
'((t (:foreground "#dcdccc" :background "#272822")))
"Unhelpful docstring.")
'(term-default-fg-color ((t (:inherit term-color-white))))
'(term-default-bg-color ((t (:inherit term-color-black))))
;; ansi-term colors
(setq ansi-term-color-vector
[term term-color-black term-color-red term-color-green term-color-yellow
term-color-blue term-color-magenta term-color-cyan term-color-white])
Ответ 2
В Emacs 24.3 вам необходимо настроить следующие грани:
;; term
`(term-color-black ((t (:foreground ,zenburn-bg
:background ,zenburn-bg-1))))
`(term-color-red ((t (:foreground ,zenburn-red-2
:background ,zenburn-red-4))))
`(term-color-green ((t (:foreground ,zenburn-green
:background ,zenburn-green+2))))
`(term-color-yellow ((t (:foreground ,zenburn-orange
:background ,zenburn-yellow))))
`(term-color-blue ((t (:foreground ,zenburn-blue-1
:background ,zenburn-blue-4))))
`(term-color-magenta ((t (:foreground ,zenburn-magenta
:background ,zenburn-red))))
`(term-color-cyan ((t (:foreground ,zenburn-cyan
:background ,zenburn-blue))))
`(term-color-white ((t (:foreground ,zenburn-fg
:background ,zenburn-fg-1))))
'(term-default-fg-color ((t (:inherit term-color-white))))
'(term-default-bg-color ((t (:inherit term-color-black))))
Этот код из последней версии Zenburn.
Лично я чувствую, что новый способ настройки лиц - это улучшение по сравнению с использованием неясного вектора.
Ответ 3
Я бы предложил M-x customize-group
RET term
RET
как простейшая точка входа для настройки этих цветов.