Czy na pewno masz na myśli motyw kolorystyczny, a nie motyw niestandardowy ? Jeśli nie korzystasz z zewnętrznego oprogramowania color-theme.el, prawdopodobnie masz na myśli niestandardowy motyw. W takim przypadku proszę odpowiednio zmodyfikować swoje pytanie. Zobacz temat Kolor i niestandardowe motywy .
Drew,
Odpowiedzi:
13
Wolę używać custom-theme-set-facesdo redefiniowania sposobu wyświetlania konkretnej twarzy, np.
W konkretnym przypadku zenburnsam motyw definiuje różne kolory i makro, w których są one powiązane z nazwami zmiennych, dzięki czemu możesz zapisać powyższe jako:
gdzie masz napisać ten fragment kodu? w .spacemacs?
ChiseledAbs
1
Przepraszam, nie mam pojęcia; Nie używam Spacemaców. Zasadniczo wszystko, co musisz zrobić, to spowodować, że kod zostanie oceniony jakiś czas po zenburnzaładowaniu motywu.
Dodałem radę do funkcji motywu ładowania, aby zastąpić niektóre twarze - w ten sposób możesz nadal używać motywu ładowania jak zwykle, aby wybrać motyw, a to automatycznie zastosuje przesłonięcia.
(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))))
))
Działa i byłoby miło mieć go jako część interfejsu, ale prawdopodobnie najłatwiej jest po prostu stworzyć funkcję dla każdego używanego motywu i wywołać niestandardowe zestawy motywów po załadowaniu -
Łatwiej będzie ci po prostu użyć SPC SPCcustom-theme-visit-theme, znaleźć gruvbox, wprowadzić tam zmiany, a następnie po prostu umieścić (load-file "~/.emacs.d/gruvbox-theme.el")w swojej dotspacemacs/user-configfunkcji.
color-theme.el
, prawdopodobnie masz na myśli niestandardowy motyw. W takim przypadku proszę odpowiednio zmodyfikować swoje pytanie. Zobacz temat Kolor i niestandardowe motywy .Odpowiedzi:
Wolę używać
custom-theme-set-faces
do redefiniowania sposobu wyświetlania konkretnej twarzy, np.W konkretnym przypadku
zenburn
sam motyw definiuje różne kolory i makro, w których są one powiązane z nazwami zmiennych, dzięki czemu możesz zapisać powyższe jako:źródło
.spacemacs
?zenburn
załadowaniu motywu.W spacemacs zainstaluj warstwę
theming
, patrz https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Bthemes/themingNa przykład mam wycięte w
dotspacemacs/user-init
moim,.spacemacs
aby dostosować tło i kolor bielizny gruvbox i motyw światła słonecznego:źródło
Dodałem radę do funkcji motywu ładowania, aby zastąpić niektóre twarze - w ten sposób możesz nadal używać motywu ładowania jak zwykle, aby wybrać motyw, a to automatycznie zastosuje przesłonięcia.
Działa i byłoby miło mieć go jako część interfejsu, ale prawdopodobnie najłatwiej jest po prostu stworzyć funkcję dla każdego używanego motywu i wywołać niestandardowe zestawy motywów po załadowaniu -
źródło
Przykład tego, co zrobiłem, aby edytować
spacemacs-dark
, usuwając kilka pogrubień, których nie lubię:źródło
Łatwiej będzie ci po prostu użyć SPC SPC
custom-theme-visit-theme
, znaleźćgruvbox
, wprowadzić tam zmiany, a następnie po prostu umieścić(load-file "~/.emacs.d/gruvbox-theme.el")
w swojejdotspacemacs/user-config
funkcji.źródło