Вопрос по emacs, gnu-screen, colors, terminal, macos – Как сохранить цвета Emacs с обычного терминала на экран GNU

11

Для записи я использую снежного барса OSX.

Когда я использую emacs прямо из терминала, у меня есть набор цветов (например, для c / c ++), которым я очень доволен - зеленый на черном, красные комментарии, цветные ключевые слова ... и т. Д. И т. Д. установить в моем «терминальном предпочтении», а некоторые в моем файле ~ / .emacs (см. ниже). Когда я запускаю emacs с экрана, базовая цветовая схема остается той же (зеленый на черном), но окраска различна (например, символы комментариев - красные, но не все комментарии) - и это действительно раздражает.

Любая помощь будет оценена!

В моих «.emacs» файл (перестает работать в emacs gnu-screen):

(global-font-lock-mode t)
(custom-set-faces
 '(font-lock-comment-face
   ((((class color) (background light))
     :foreground "tomato")
    )))

В моем «.screenrc» файл:

shell -$SHELL            # colors still don't work without this
#term xterm-256color    # using this doesn't fix the colors (suggested on some forums)

altscreen on
startup_message off

Я думал, что команда "оболочка - $ SHELL" в моем файле .screenrc сделал командную строку на экране такой же, как по умолчанию --- этоdoes заставьте мою командную строку сказать «имя_компьютера: / DIR / имя пользователя $»; вместо просто 'bash-3.2 $'

=================================================================

Solution: БлагодаряGreg E.

Мне нужно было установить мой эмулятор терминала на экране, чтобы он соответствовал моей обычной оболочке. Для этого я добавил

export TERM='xterm-color'

в ~ / .bash_profile

По какой-то причине, термин "xterm-color" в «~ / .screenrc»; файл не работает.

ПРИМЕЧАНИЕ. В Mac OS X 10.7 Lion и более поздних версиях используйтеxterm-color не рекомендуется Он представляет собой более старую ветку xterm. В Lion Terminal достаточно совместим с современным xterm, что вам следует использоватьxterm-256color (по умолчанию) или вариант, например,xterm-16color. Chris Page
Спасибо за подсказку @ChrisPage DilithiumMatrix

Ваш Ответ

1   ответ
7

Я подозреваю, что, хотя ваш терминал может быть скомпилирован с поддержкой более чем стандартных 16 цветов, ваша конкретная версия экрана GNU может и не быть. Я не очень знаком с OSX, но в Linux я проверю,tput colors отличается между простым терминалом и одним рабочим экраном (я ожидаю, что будет некоторый эквивалент OSX, еслиtput не доступен). Если это произойдет, вам может понадобиться установить (или скомпилировать вручную) другую сборку экрана, которая включает в себя поддержку дополнительных цветов (обычно 256 - это максимум, но 88 также часто, а 16 - минимум по умолчанию).

Изменить: В конечном итоге, правильное решение оказалось вручную установить$TERM переменная окружения (см. комментарии ниже).

@zhermes, какова текущая стоимость$TERM а какой эмулятор терминала вы используете? Выходное значение 8 означает, что ваш терминал, поскольку он в настоящее время сконфигурирован, не поддерживает ничего, кроме 8 базовых цветов ANSI (и их ярких / полужирных аналогов, что в сумме составляет 16). Следовательно, цвет как"tomato" скорее всего, будет разумно решен до"red", Рассмотреть возможность установкиxterm с поддержкой 256 цветов, если это возможно. Также,this page может быть полезным Вы можете попробовать установить разные$TERM значения и посмотреть, еслиtput colors выходные изменения.
Интересная идея; Я пробовал "Tput Colours" (который работает), и он ответил '8' как в обычном терминале, так и на экране ....: / DilithiumMatrix
Огромное спасибо! Он не работал в .screenrc, но работал в .bash_profile (у меня не было «.bashrc» в моем ~) DilithiumMatrix
Интересно ... я сомневаюсь в том, что они оба говорят "8", в то время как единственная проблема заключается в одном из них. Так что, возможно, существуют разные алгоритмы для преобразования «помидора» вниз ? 'echo $ TERM' выдает "xterm-color", и когда я делаю то же самое на экране, он просто говорит "экран" ... Здесь, где я показываю свою глупость, я думал, что былusing терминал, а не эмулятор. ? DilithiumMatrix
@zhermes, различие между «терминалом» и «эмулятор терминала»; педантичный и неясный элемент номенклатуры; увидетьthe relevant Wikipedia page если вы действительно любопытны. Во всяком случае, мое предложение для устранения несоответствия окраски заключается в добавлении строкиterm xterm-color на ваш~/.screenrc, Если по какой-то причине это не помогло, вы также можете попробовать добавить что-то вроде следующего в ваши конфигурационные файлы bash (т.е.~/.bashrcи один из~/.bash_profile, ~/.bash_login, ~/.profile, или же/etc/profile): export TERM='xterm-color'.

Похожие вопросы