Spacemacs (zenburn) ile birlikte gelen önceden tanımlanmış özel temalardan birini kullanıyorum.
Temanın belirli bölümlerini nasıl değiştirebilirim, örneğin yalnızca yorumlar için kullanılan yazı tipi rengini değiştirebilirim?
Spacemacs (zenburn) ile birlikte gelen önceden tanımlanmış özel temalardan birini kullanıyorum.
Temanın belirli bölümlerini nasıl değiştirebilirim, örneğin yalnızca yorumlar için kullanılan yazı tipi rengini değiştirebilirim?
Yanıtlar:
custom-theme-set-faces
Temanın belirli bir yüzü nasıl görüntülediğini yeniden tanımlamak için kullanmayı tercih ediyorum , örneğin,
(custom-theme-set-faces
'zenburn
'(font-lock-comment-face ((t (:foreground "#DFAF8F"))))
'(font-lock-comment-delimiter-face ((t (:foreground "#DFAF8F")))))
Belirli bir durumda zenburn
, temanın kendisi çeşitli renkleri ve bunların değişken adlarına bağlı olduğu bir makroyu tanımlar, böylece yukarıdakileri şu şekilde yazabilirsiniz:
(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
tema yüklendikten sonra kodun değerlendirilmesine neden olmaktır .
Boşluklardaki katmanı yükleyin theming
, bkz. Https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Bthemes/theming
Örneğin , gruvbox ve solarize ışık temasının arka planını ve linenumber rengini ayarlamak için dotspacemacs/user-init
benim .spacemacs
snip'ım var:
(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)
)
))
Belirli temaları geçersiz kılmak için load-tema işlevine öneriler ekledim; bu şekilde, bir tema seçmek için load-temayı normal şekilde kullanmaya devam edebilirsiniz ve geçersiz kılmaları otomatik olarak uygular.
(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))))
))
Çalışır ve arayüzün bir parçası olarak olması güzel olurdu, ancak kullandığınız her tema için bir işlev yapmak ve yükledikten sonra özel tema kümesi yüzlerini çağırmak muhtemelen en basittir -
(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)
Düzenlemek için ne yaptım örnek, spacemacs-dark
sevmiyorum kalın bir çift kaldırma:
;; 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))))
)
)
Bu sadece kullanımına sizin için daha kolay olabilir SPC SPC custom-theme-visit-theme
bulmak, gruvbox
, düzenlemelerinizi orada ve o zaman sadece bir yer haline (load-file "~/.emacs.d/gruvbox-theme.el")
senin içinde dotspacemacs/user-config
işlevi.
color-theme.el