2011-09-13 5 views

답변

6

당신이 메이저 모드를 쓰고 있다고 가정하지만, font-lock-add-keywords은 부수적 인 모드 인 에서도 작동합니다. 해당 설명서를 C-h f RET font-lock-add-keywords으로 확인하십시오. 그래서 여기

(define-derived-mode my-mode text-mode "mymode" 
    ;; some init code 
    (font-lock-add-keywords nil '(("\\[\\(.*\\)\\]" 
           1 font-lock-warning-face prepend))) 
    ;; some more init code 
) 
2

당신은 당신이 새로운 문법 규칙을 통합에있어 모드를 확장해야 할 것 중 하나 또는 당신은 단순히 신속하고 더러운 강조를 위해 highlight-regexp를 사용할 수 있습니다.

+0

이 모드를 확장하려면 - 그게 내가 원하는거야. 필자가 직접 작성한 모드 (단순한 탭 완성, 구문 강조 및 dwim을 통한 똑똑한 주석이 있습니다). 'hightlight-regexp'가 반드시 작동 할 것입니다. 귀하의 답변 주셔서 감사합니다. – Adobe

+0

기본 제공 모드 [여기] (https://github.com/nibrahim/Hyde/blob/master/hyde-md.el)를 확장했습니다. 어떻게 보는지 알 수 있습니다. 구문 하이라이팅은하지 않지만, 아마도 여러분의 모드에서'font-lock-defaults' 변수를 추가하면됩니다. –

+0

BTW : 색상은 어떻게 지정합니까? '(highlight-regexp "\\ [\\ (\\ \\) \\]" 'hi-red)' – Adobe

2

은 요약이다 : 모드에 새 키워드를 추가하려면

(font-lock-add-keywords 'emacs-lisp-mode 
    '(("foo" . font-lock-keyword-face))) 

그것은 regexps '에있을 수 있습니다 :

(font-lock-add-keywords 'emacs-lisp-mode '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face))) 

(이 될 대괄호의 모든의 글꼴을 만드는 주어진 색상의)

현재 모드와 현재 이맥스 세션 당신은 다음 평가할 수있다 : (주 - 현재 모드를 지정하지 않은)

(font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face))) 

가 영구적 당신은 모드로 후크로 추가 할 수 있도록하려면

(add-hook 'bk-grmx-mode-hook 
      (lambda() 
      (font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face))) 
     ) 
) 

또한 모드 사양에 추가 할 수 있습니다 :

(define-derived-mode bk-grmx-mode fundamental-mode 
    (setq font-lock-defaults '(bk-grmx-keyWords)) 
    ;; the next line is added: 
    (font-lock-add-keywords nil '(("\\[\\(.+?\\)\\]" . font-lock-keyword-face))) 
    (setq mode-name "bk-grmx-mode") 
관련 문제