2009-03-24 3 views
9

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

(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 набор.

ответ

11

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

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

Я не уверен в RHEL4.

1

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

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

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

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

$ emacs -nw -bg black -fg white 

тоже.

+0

извините, что это была опечатка! Обновлено выше. – tgamblin

+0

Это не должно было быть пропущено. Это был ответ, основанный на типовом вопросе OPs. –

+0

Спасибо за защиту. – ashawley

2

насчет:

(set-foreground-color "brightwhite") 

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

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

+0

Это работает для вас? Я попробовал, но он дает мне черные меню и строки состояния, и текст отображается как цвет переднего плана по умолчанию с моего терминала (зеленый). Может быть, у меня нет «brightwhite» – tgamblin

+0

Ответ обновлен –

1

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

black     blue           
cyan      green           
magenta     red           
white     yellow  

белых, что вы получите несколько нечетко; полный яркий белый цвет выделен жирным шрифтом. Поэтому, если вы запустите

M-x facemenu-set-bold 

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

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

+0

«но вы ограничены этой палитрой» - на самом деле это не так, emacs поддерживает 256 цветов, если ваш терминал правильно настроен. См. Скриншот @ http://seanbright.com/e256.png –

+0

@Sean: найдите репутацию на http://stackoverflow.com/questions/684424/how-do-i-set-up-my-linux-x -Terminal-так-что-Emacs-имеет-доступ-к-256-цветов –

2

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

$ emacs -nw -rv 
1

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

(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"))))) 

Я удалил свойства переднего плана и фона, и все началось, глядя на hunky-dory.