问题
I want to change the face attribute in Org-Agenda buffer only. So I need to change Org-Agenda face attribute buffer locally.
Here is my code: (which is globally)
(defun my-org-agenda-hl-line ()
(hl-line-mode)
(set-face-attribute 'hl-line nil
:box '(:color "deep pink" :line-width 2))
)
(add-hook 'org-agenda-mode-hook 'my-org-agenda-hl-line)
Please to help me make this buffer locally. Thanks
回答1:
Here is what you need to do:
;; First create new face which is a copy of hl-line-face
(copy-face 'hl-line 'hl-line-agenda-face)
;; Change what you want in this new face
(set-face-attribute 'hl-line-agenda-face nil
:box '(:color "deep pink" :line-width 2))
;; The function to use the new face
(defun my-org-agenda-hl-line ()
(set (make-local-variable 'hl-line-face) ; This is how to make it local
'hl-line-agenda-face)
(hl-line-mode))
;; Finally, the hook
(add-hook 'org-agenda-mode-hook 'my-org-agenda-hl-line)
来源:https://stackoverflow.com/questions/17628985/how-to-set-a-buffer-locally-face-attribute-for-a-particular-buffer