Gibt es Farbwähler für Emacs?

20

Ich benutze das ausgezeichnete rainbow-mode, um Farben in CSS-Dateien hervorzuheben.

CSS mit Regenbogen-Modus

Dies setzt jedoch voraus, dass ich weiß, welche Farbe ich will. Gibt es Farbwähler, die ich für die CSS-Bearbeitung in Emacs verwenden kann? Im Idealfall hätte ich gerne etwas, mit dem ich Farben etwas dunkler / heller / rötlicher / grüner machen kann, wie z. B. die Firefox-Farbauswahl:

Firefox-Farbwähler

Alternativ ist mir aufgefallen, dass customize-faceein Farbwähler aus einem Satz von 548 Farben angeboten wird. Kann ich das für CSS verwenden?

Gesichtsfarbwähler anpassen

Wilfred Hughes
quelle
2
Ich kann nicht widerstehen, einen Austausch aus den frühen Tagen von Emacs zu zitieren: "Meister, hat Emacs Buddha-Natur?" "... ich kann nicht verstehen warum nicht; es hat alles andere."
Keshlam
1
Danke fürs Erzählen rainbow-mode! Ich habe nur nach dieser Funktion gesucht und konnte mich nicht erinnern, in welchem ​​Paket es sich befand.
wdkrnls

Antworten:

16

Schau es dir an helm-colors. Es stellt die Farben genau wie in Ihrem Screenshot dar und scheint eine ähnliche oder sogar die gleiche Palette zu verwenden.

Um einen Farbnamen in den aktuellen Puffer einzufügen, drücken Sie C-c n(führt die Aktion aus Insert Name).

Um den Hex-Wert einer Farbe einzufügen, drücken Sie C-c r(führen Sie die Aktion aus Insert RGB).

Tmalsburg
quelle
3
Ich zweite helm-colors. Hier ist eine Demo für alle, die daran interessiert sind, wie es aussieht. Sie können eine Farbe auswählen und direkt in Ihre Bearbeitungspuffer einfügen.
Di Do
2
helm-colorsist exzellent, scheint aber weder den at-Punkt zu ersetzen noch in den Puffer einzufügen. Idealerweise hätte ich gerne etwas, das beliebige Farben unterstützt.
Wilfred Hughes
@ WilfredHughes Es hat. Sie müssen das Aktionsmenü anzeigen, indem Sie TAB(die Standardtastenbelegung, verwenden Sie Ihre, wenn Sie an etwas anderes binden) drücken. Sehen Sie meinen Helmfarbenabschnitt in meinem Führer.
Tu Do
2
Wenn Sie eine Farbe mit dem hexadezimalen Wert einfügen möchten, drücken Sie C-c r.
Tu Do
13
  • Bibliothek Palette ( palette.el) gibt Ihnen einen WYSIWYG - Farbeditor / Picker, die Sie erforschen und ändern Farben mit RGB - und HSV - Werte können, einschließlich inkrementell. Es sieht aus wie das, was Sie in Ihrem zweiten Bild zeigen.

  • Bibliothek Do Re Mi ( doremi.el, doremi-cmd.el, doremi-frm.el) können Sie Farben in Emacs verwendet ändern inkrementell: "direkte Manipulation".

  • Mit Library Facemenu + ( facemenu+.el) können Sie mithilfe der Farbpalette (Nr. 1) die in Emacs verwendeten Farben ändern. Es erweitert die Standardbibliothek facemenu.el, Dinge wie list-colors-displayund list-faces-display(die Ihrem dritten Bild ähneln).

  • Mit Library Icicles können Sie Farben und Gesichter inkrementell auswählen und bearbeiten, RGB, HSV usw. bearbeiten und mögliche Auswahlmöglichkeiten auf verschiedene Arten sortieren (z. B. Farbkomponentenstärken kombinieren).

(Sie können die hier erwähnten Bibliotheken von MELPA beziehen , und die Lisp-Dateien enthalten die vollständige Dokumentation (aber ohne Bilder).)

Drew
quelle
5

Wie wäre es mit:

(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
quelle