Ich verwende eines der vordefinierten benutzerdefinierten Designs, die im Lieferumfang von Spacemacs (zenburn) enthalten sind.
Wie kann ich bestimmte Teile des Themas ändern, zum Beispiel nur die für Kommentare verwendete Schriftfarbe?
Ich verwende eines der vordefinierten benutzerdefinierten Designs, die im Lieferumfang von Spacemacs (zenburn) enthalten sind.
Wie kann ich bestimmte Teile des Themas ändern, zum Beispiel nur die für Kommentare verwendete Schriftfarbe?
Antworten:
Ich bevorzuge die Verwendung, custom-theme-set-faces
um neu zu definieren, wie das Thema ein bestimmtes Gesicht anzeigt, z.
(custom-theme-set-faces
'zenburn
'(font-lock-comment-face ((t (:foreground "#DFAF8F"))))
'(font-lock-comment-delimiter-face ((t (:foreground "#DFAF8F")))))
Für den speziellen Fall von zenburn
definiert das Thema selbst verschiedene Farben und ein Makro, in dem diese an Variablennamen gebunden sind, sodass Sie Folgendes schreiben können:
(zenburn-with-color-variables
(custom-theme-set-faces
'zenburn
`(font-lock-comment-face ((t (:foreground ,zenburn-orange))))
`(font-lock-comment-delimiter-face ((t (:foreground ,zenburn-orange))))))
.spacemacs
?
zenburn
Laden des Themas ausgewertet werden .
Installieren Sie in Spacemacs die Ebene theming
, siehe https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Bthemes/theming
Ich habe zum Beispiel Folgendes in dotspacemacs/user-init
meinem .spacemacs
Fenster eingefügt, um die Hintergrund- und Leinenfarben der Gruvbox und des Themas "Solarisiertes Licht" anzupassen:
(setq theming-modifications '(
;; requires the theming layer
(gruvbox
(default :background "#1D2021" :foreground "#fdf4c1")
(linum :background "#000000" :foreground "#878787")
(fringe :background "#000000")
(linum-relative-current-face :inherit (shadow default) :background "#3C3836" :foreground "#ff0000")
(font-lock-comment-face :slant italic)
)
(solarized-light
(linum :background "#DBCDA7" :foreground "#40371F")
(fringe :background "#DBCDA7")
(font-lock-comment-face :slant italic)
)
))
Ich habe der Funktion "Thema laden" einen Hinweis hinzugefügt, um bestimmte Gesichter zu überschreiben. Auf diese Weise können Sie das Thema weiterhin wie gewohnt laden, um ein Thema auszuwählen, und die Überschreibungen werden automatisch angewendet.
(defadvice load-theme (after theme-set-overrides activate)
"Set override faces for different custom themes."
(dolist (theme-settings theme-overrides)
(let ((theme (car theme-settings))
(faces (cadr theme-settings)))
(if (member theme custom-enabled-themes)
(dolist (face faces)
(custom-theme-set-faces theme face))))))
(defcustom theme-overrides nil
"Association list of override faces to set for different custom themes.")
(defun alist-set (alist-symbol key value)
"Set VALUE of a KEY in ALIST-SYMBOL."
(set alist-symbol
(cons (list key value) (assq-delete-all key (eval alist-symbol)))))
; override some settings of the ample-flat theme
(alist-set 'theme-overrides 'ample-flat '(
(default ((t (:background "gray12" :foreground "#bdbdb3"))))
(mode-line ((t (:background "cornsilk4" :foreground "#222" :inherit 'variable-pitch))))
(outline-2 ((t (:inherit font-lock-keyword-face)))) ; blueish
(outline-3 ((t (:inherit font-lock-comment-face)))) ; brownish
(outline-4 ((t (:inherit font-lock-string-face)))) ; orangeish
(org-table ((t (:inherit fixed-pitch :height 0.7 :foreground "#887"))))
(org-formula ((t (:inherit org-table :foreground nil))))
))
Es funktioniert, und es wäre schön, es als Teil der Benutzeroberfläche zu haben, aber es ist wahrscheinlich am einfachsten, einfach eine Funktion für jedes von Ihnen verwendete Thema zu erstellen und benutzerdefinierte Themensätze nach dem Laden aufzurufen -
(defun ample-flat ()
(interactive)
(mapc #'disable-theme custom-enabled-themes) ; clear any existing themes
(load-theme 'ample-flat t)
(custom-theme-set-faces 'ample-flat
'(default ((t (:background "gray12" :foreground "#bdbdb3"))))
'(mode-line ((t (:background "cornsilk4" :foreground "#222" :inherit 'variable-pitch))))
'(outline-2 ((t (:inherit font-lock-keyword-face)))) ; blueish
'(outline-3 ((t (:inherit font-lock-comment-face)))) ; brownish
'(outline-4 ((t (:inherit font-lock-string-face)))) ; orangeish
'(org-table ((t (:inherit fixed-pitch :height 0.7 :foreground "#887"))))
'(org-formula ((t (:inherit org-table :foreground nil))))
))
(ample-flat)
Beispiel für das, was ich gemacht habe spacemacs-dark
, um ein paar Fettdrucke zu entfernen, die mir nicht gefallen:
;; on dotspacemacs/user-config:
;; configure spacemacs-dark theme, specifically removing bolds
(let
((func "#d75fd7")
(keyword "#4f97d7")
(type "#ce537a"))
(custom-theme-set-faces
'spacemacs-dark
`(font-lock-function-name-face ((t (:foreground ,func :inherit normal))))
`(font-lock-keyword-face ((t (:foreground ,keyword :inherit normal))))
`(font-lock-type-face ((t (:foreground ,type :inherit normal))))
)
)
Es könnte einfacher für Sie sein, dort nur zu verwenden SPC SPC custom-theme-visit-theme
, zu finden gruvbox
, Ihre Änderungen vorzunehmen und dann einfach (load-file "~/.emacs.d/gruvbox-theme.el")
in Ihre dotspacemacs/user-config
Funktion zu platzieren.
color-theme.el
meinen Sie wahrscheinlich ein benutzerdefiniertes Thema. In diesem Fall bearbeiten Sie bitte Ihre Frage entsprechend. Siehe Farbe und benutzerdefinierte Designs .