첫 번째 단락에서 찾고있는 개념은 후크입니다. 후크 변수는 특정 이벤트가 발생할 때 실행되는 함수 목록입니다. 대부분의 후크 변수의 이름은 -hook
으로 끝납니다. 후크 after-change-functions
은 사용자가 무언가를 입력하거나 버퍼를 변경할 때마다 실행됩니다. 훅은 Emacs Lisp 매뉴얼에서 "Hooks"라는 제목으로 논의됩니다.
그러나 무엇을하려했는지에 따라 Emacs의 강조 표시 메커니즘을 사용하는 것이 더 쉬울 것입니다. 해결책은 올바른 위치에 regexp를 추가하는 것만 큼 간단 할 수 있습니다.
구조화 된 텍스트 (특히 프로그래밍 언어)가 포함 된 대부분의 파일은 글꼴 잠금 메커니즘으로 강조 표시됩니다. 이것은 "글꼴 잠금"아래의 Emacs 및 Emacs Lisp 매뉴얼 모두에 설명되어 있습니다. 특히 이멕스 매뉴얼이 여러분이 겪은 예를 보여주는 함수 인 font-lock-add-keywords
을 참조하십시오. some information on the Emacs wiki도 있습니다.
ADDED : regexps '에 넘어 갈 수
글꼴 잠금; 불행하게도 문서화는 font-lock-keywords
의 문서화 문자열에 간결한 설명으로 제한됩니다. cperl-mode.el
에는 몇 가지 간단한 예가 있습니다 (대량으로 묻혀 있지만). 위키는이 기능을 사용하는 ctypes.el
을 참조합니다. 잘못된 정수 추가를 강조하는 예제가 있습니다.
(defun maybe-warn-about-addition()
(let ((x (string-to-int (match-string 1)))
(y (string-to-int (match-string 2)))
(z (string-to-int (match-string 3))))
(if (/= (+ x y) z)
font-lock-warning-face)))
(font-lock-add-keywords
nil
'(("\\s-\\([0-9]+\\)\\s-*\\+\\s-*\\([0-9]+\\)\\s-*=\\s-*\\([0-9]+\\)\\s-"
(3 (maybe-warn-about-addition) t))))
심지어 정규 표현식
은 당신이 (문서화 문자열에서 어휘를 사용하여,
MATCHER
로 함수 이름)을 강조하고 싶은의 경계를 찾습니다 임의의 코드로 대체 될 수있다. 표준 C 모드 (
cc-fonts.el
)의 글꼴 잠금 키워드에 대한 고급 예제가 있습니다.
물론이 작업을 수행 할 수 있습니다. 'c-mode '가'electric brace'를 구현하는지 확인하십시오. –