ฉันใช้หนึ่งในธีมที่กำหนดเองที่กำหนดไว้ล่วงหน้าซึ่งมาพร้อมกับ Spacemacs (zenburn)
ฉันจะแก้ไขบางส่วนของชุดรูปแบบได้อย่างไรตัวอย่างเช่นเพียงเปลี่ยนสีตัวอักษรที่ใช้สำหรับความคิดเห็น
ฉันใช้หนึ่งในธีมที่กำหนดเองที่กำหนดไว้ล่วงหน้าซึ่งมาพร้อมกับ Spacemacs (zenburn)
ฉันจะแก้ไขบางส่วนของชุดรูปแบบได้อย่างไรตัวอย่างเช่นเพียงเปลี่ยนสีตัวอักษรที่ใช้สำหรับความคิดเห็น
คำตอบ:
ฉันชอบที่custom-theme-set-faces
จะใช้เพื่อกำหนดว่าชุดรูปแบบจะแสดงใบหน้าเฉพาะเช่น
(custom-theme-set-faces
'zenburn
'(font-lock-comment-face ((t (:foreground "#DFAF8F"))))
'(font-lock-comment-delimiter-face ((t (:foreground "#DFAF8F")))))
สำหรับกรณีเฉพาะของzenburn
ธีมเองกำหนดสีต่างๆและแมโครที่ถูกผูกไว้กับชื่อตัวแปรดังนั้นคุณสามารถเขียนข้างต้นเป็น:
(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
โหลดธีม
ใน spacemacs ให้ติดตั้งเลเยอร์theming
ดูที่https://github.com/syl20bnr/spacemacs/tree/master/layers/%2Bthemes/theming
ตัวอย่างเช่นฉันมี snipped ต่อไปนี้ในการdotspacemacs/user-init
ของฉัน.spacemacs
เพื่อปรับพื้นหลังและสีลินินumberของ gruvbox และชุดรูปแบบแสงแสงอาทิตย์:
(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)
)
))
ฉันได้เพิ่มคำแนะนำให้กับฟังก์ชั่นโหลดธีมเพื่อแทนที่ใบหน้าบางอย่างซึ่งเป็นวิธีที่คุณสามารถใช้ธีมโหลดตามปกติเพื่อเลือกธีมและมันจะใช้การแทนที่โดยอัตโนมัติ
(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))))
))
มันใช้งานได้และมันก็ดีที่มีส่วนหนึ่งของอินเทอร์เฟซ แต่มันอาจจะง่ายที่สุดในการสร้างฟังก์ชั่นสำหรับแต่ละธีมที่คุณใช้และเรียก custom-theme-set-faces หลังจากโหลด -
(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)
ตัวอย่างของสิ่งที่ฉันแก้ไขspacemacs-dark
, ลบตัวหนาสองตัวที่ฉันไม่ชอบ:
;; 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))))
)
)
มันอาจจะง่ายกว่าสำหรับคุณที่จะใช้SPC SPC custom-theme-visit-theme
ค้นหาgruvbox
ทำสิ่งที่คุณแก้ไขแล้วจากนั้นก็วางลง(load-file "~/.emacs.d/gruvbox-theme.el")
ในdotspacemacs/user-config
ฟังก์ชันของคุณ
color-theme.el
คุณอาจหมายถึงธีมที่กำหนดเอง ในกรณีดังกล่าวโปรดแก้ไขคำถามของคุณตามนั้น ดูสีและกำหนดเองธีมส์