주어진 모드에서만 구문 강조 표시를 사용자 정의하는 방법


10

lua-mode.el다른 주요 모드에 영향을 미치지 않고 구문 강조 표시를 변경하고 싶습니다 .

그냥 예를 들어, 내가 좋아하는 "핵심 단어를"하고 싶은 if, then, else경우에 굵은 파란색 서체로 lua-mode편집하고있는 동안 동일한 강조 스타일을하지 않고 (대신 기본 핑크) .texAUCTeX와 파일을.

지금까지 나는 내에서 다음 코드를 넣어 시도 .emacs내에서 또한 다음과 lua-mode.el:

(custom-set-faces
  '(font-lock-builtin-face ((t (:foreground "maroon3"))))
  '(font-lock-comment-face ((t (:foreground "green4"))))
  '(font-lock-keyword-face ((t (:foreground "dark blue" :weight bold))))
  '(font-lock-string-face ((t (:foreground "dark cyan")))))

그러나이 방법으로 작업하는 모든 모드에 대해 동일한 구문 강조 표시를 얻습니다.

이 질문은 관련이있을 수 있습니다. 주 모드를 변경하지 않고 구문 강조 표시를 변경 하시겠습니까?

이 작업을 수행하는 방법은 간단하고 일반적인 방법입니까?

답변:


8

얼굴은 전역 적이므로 어디에서나 속성을 변경하면 어디에서나 얼굴이 변경됩니다. 로컬로 변경하려면 얼굴의 사본을 만들고 사본의 속성을 변경 한 다음 모드 후크를 사용하여 이전 얼굴을 버퍼별로 사본으로 로컬로 설정하십시오. 아래 샘플은에 대해 수행 font-lock-comment-face하지만 모든 얼굴에 대해 동일한 주문이 작동합니다.

(make-variable-buffer-local 'font-lock-comment-face)
(copy-face 'font-lock-comment-face 'lua-comment-face)
(set-face-foreground 'lua-comment-face "green4")

(add-hook 'lua-mode-hook
          (lambda ()
            (setq font-lock-comment-face 'lua-comment-face)            
            ))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.