Emacs / Xterm цвет раздражение в Linux - PullRequest
9 голосов
/ 25 марта 2009

Я использую emacs в окне консоли как на своем локальном компьютере с Linux, так и на узле входа в удаленный кластер. Я регулярно использую emacs, и в моем файле .emacs цвет переднего плана установлен на белый, например:

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

Однако, когда я запускаю emacs, передний план не белый; это серый и очень трудно читать. На моем Mac emacs в окне консоли с теми же настройками отображается как правильный белый. Но на обеих коробках linux, в konsole и xterm, он серый.

Если это имеет значение, у меня TERM установлено значение xterm-color, на рабочем столе запущен RHEL 5, а на узле кластера запущен RHEL 4 (CentOS).

Это какое-то значение по умолчанию для того, как Linux устанавливает цвета терминала? Как мне сделать белый цвет белым?

Примечание: это с консольными Emacs, а не с Emacs под X. Это emacs -nw, если у вас установлено DISPLAY.

Ответы [ 6 ]

11 голосов
/ 25 марта 2009

Цвет brightwhite выглядит нормально на моем Emacs (который работает под терминалом, а не X). На RHEL5 моя переменная окружения TERM установлена ​​на xterm-256color. Если он работает правильно, вы сможете запустить эти сценарии и увидеть 256-цветную печать. В Emacs вы должны видеть достаточно плавную цветовую гамму (без явно дублированных цветов), когда вы делаете M-x list-colors-display. Если нет, то вам, вероятно, не хватает правильной записи termcap (я думаю, попробуйте установить пакет libtermcap-devel).

Если я изменю TERM на xterm-color, то brightwhite станет немного серым на выходе list-colors-display.

Я не уверен насчет RHEL4.

2 голосов
/ 25 марта 2009

Что, если вы только что использовали реверс-видео для консольной версии, это достаточно хорошо?

$ emacs -nw -rv
2 голосов
/ 25 марта 2009

А как же:

(set-foreground-color "brightwhite")

В ответ на комментарий:

В emacs запустите M-x list-colors-display, который покажет вам все цвета, которые, по мнению emacs, доступны для вашего терминала.

1 голос
/ 05 сентября 2013

Я также обнаружил, что у меня странные цвета в режиме терминала, и, наконец, отследил их до настройки шрифта. У меня было что-то вроде этого:

(custom-set-faces
 ;; custom-set-faces was added by Custom.
 ;; If you edit it by hand, you could mess it up, so be careful.
 ;; Your init file should contain only one such instance.
 ;; If there is more than one, they won't work right.
 '(default ((t (:inherit nil :stipple nil :background "#000a00" :foreground "#ffffed" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 113 :width normal :foundry "unknown" :family "Droid Sans Mono")))))

Я удалил свойства переднего плана и фона, и все стало выглядеть неуклюже.

1 голос
/ 25 марта 2009

Я провел несколько экспериментов, и вы можете установить цвета консоли в emacs, но вы ограничены этой палитрой:

black                    blue                                         
cyan                     green                                        
magenta                  red                                          
white                    yellow    

Белый, который вы получаете, несколько сероват; полностью яркий белый зарезервирован для жирного текста. Так что, если вы запустите

M-x facemenu-set-bold

Вы получите жирный (ярко-белый) текст для последующих вставок.

Мне не повезло, пытаясь заставить лицо по умолчанию жирным шрифтом. (Я не очень понимаю, как работают лица в emacs.)

1 голос
/ 25 марта 2009

Похоже, вы только устанавливаете цвет переднего плана.

(set-foreground-color "white")
(set-foreground-color "black")

Я уверен, что вы имели в виду set-background-color на последнем.

Я могу подтвердить это при запуске Emacs как:

$ emacs -nw -bg black -fg white

тоже.

...