Есть ли палитры цветов для Emacs?

20

Я использую отлично, rainbow-modeчтобы выделить цвета в файлах CSS.

css с режимом радуги

Тем не менее, это предполагает, что я знаю, какой цвет я хочу. Есть ли в Emacs средства выбора цвета, которые я могу использовать для редактирования CSS? В идеале мне бы очень хотелось, чтобы цвета были немного темнее / ярче / краснее / зеленее, как палитра цветов Firefox:

Firefox Color Picker

Кроме того, я заметил, что customize-faceпредлагает палитру цветов из набора из 548 цветов. Могу ли я использовать это для CSS?

настроить цвет лица

Уилфред Хьюз
источник
2
Я не могу удержаться от цитирования обмена, который восходит к ранним временам Emacs: «Учитель, у Emacs есть природа будды?» «... я не вижу, почему нет; у него есть все остальное».
Кешлам
1
Спасибо за воспитание rainbow-mode! Я искал только эту функцию и не мог вспомнить, в каком пакете она была.
wdkrnls

Ответы:

16

Посмотрите на helm-colors. Он представляет цвета точно так же, как на скриншоте, и, кажется, использует похожую или даже ту же палитру.

Чтобы вставить имя цвета в текущий буфер, нажмите C-c n(запускает действие Insert Name).

Чтобы вставить шестнадцатеричное значение цвета, нажмите C-c r(запустите действие Insert RGB).

tmalsburg
источник
3
Я второй helm-colors. Вот демоверсия для всех, кто интересуется тем, как она выглядит. Вы можете выбрать цвет и вставить его прямо в буферы редактирования.
Ту До
2
helm-colorsотлично, но, похоже, он не заменяет начальную точку и даже не вставляет в буфер. В идеале я хотел бы что-то, что поддерживает произвольные цвета.
Уилфред Хьюз
@WilfredHughes Это имеет. Вам нужно взглянуть на меню действий, нажав TAB(связывание клавиш по умолчанию, используйте ваше, если вы связываетесь с чем-то другим). Смотрите мой раздел цветов руля в моем руководстве.
Ту До
2
Если вы хотите вставить цвет с шестнадцатеричным значением, нажмите C-c r.
Ту До
13
  • Библиотека Palette ( palette.el) предоставляет вам общий редактор / палитру цветов WYSIWYG, который позволяет вам исследовать и изменять цвета, используя значения RGB и HSV, в том числе постепенно. Похоже, что вы показываете на своем втором изображении.

  • Библиотека Do Re Mi ( doremi.el, doremi-cmd.el, doremi-frm.el) позволяет изменять цвета , используемые в Emacs пошагово: «прямое манипулирование».

  • Библиотека Facemenu + ( facemenu+.el) позволяет использовать цветовую палитру (# 1) для изменения цветов, используемых в Emacs. Это расширяет стандартную библиотеку facemenu.el, такие вещи, как list-colors-displayи list-faces-display(которые похожи на ваше третье изображение).

  • Библиотека Icicles позволяет постепенно выбирать цвета и грани и манипулировать ими, манипулируя RGB, HSV и т. Д., А также сортировать возможные варианты разными способами (например, сочетая сильные стороны цветовых компонентов).

(Вы можете получить библиотеки, упомянутые здесь, от MELPA , а файлы Lisp содержат полную документацию (но без изображений).)

Нарисовалась
источник
5

Как насчет:

(defun my-insert-color-hex ()
  "Select a color and insert its hexadecimal format."
  (interactive "*")
  (let ((buf (current-buffer)))
    (list-colors-display
     nil nil `(lambda (name)
                (interactive)
                (quit-window)
                (with-current-buffer ,buf
                  (insert (apply 'color-rgb-to-hex
                                 (color-name-to-rgb name))))))))
Phils
источник