Подтвердить что ты не робот

Настройка цветовых схем режима оболочки

Цветовые схемы в режиме оболочки emacs отображаются как основные цвета (высокая насыщенность) и выглядят примитивными, а некоторые цвета, например, фиолетовые, не отображаются:

enter image description here

Я хочу настроить цвета так, чтобы они использовали более промежуточные цвета и выглядели более мягкими, как в гном-терминале:

enter image description here

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

4b9b3361

Ответ 1

Когда программа запускает внутри shell-mode проблемы с ANSI escape-символами, чтобы установить цвет отображения, скажем, пурпурный, Emacs перехватывает эти escape-символы и создает цветной оверлей с использованием этого точного цвета переднего плана "пурпурный". Таким образом, здесь нет взаимодействия с цветовой темой, и никаких настроек, специфичных для оболочки, для поиска.

Перехват выполняется с помощью функций ansi-color.el, и похоже, что вы можете настроить ansi-color-names-vector, поэтому использовать "PaleBlue" для "синего", либо M-x customize RET ansi-color-names-vector, либо попробовать поставить что-то вроде следующий в вашей конфигурации emacs:

(setq ansi-color-names-vector
  ["black" "red" "green" "yellow" "PaleBlue" "magenta" "cyan" "white"])

Чтобы увидеть доступные имена цветов, используйте M-x list-colors-display или введите вместо них шестнадцатеричные цвета, например. "#ccccff".

Ответ 2

Некоторые цветные темы призваны хорошо выглядеть в терминале. Если ни один из них не подходит, вы можете использовать одну отправную точку для своей темы. Я выбираю подходящую тему для X/terminal следующим образом:

(if (eq (window-system) 'x)
    (color-theme-gray30)
    (color-theme-emacs-nw))