2013-08-09 2 views
1

내가 이맥스에서하는 대부분의 작업은 perl에서 이루어지기 때문에 cperl-mode은 대부분 우수합니다. 한 가지 주요한 성가심은 간단한 my $whatever 소개에는 font-lock-keyword-face 속성이 주어 졌으므로 키워드가 인 이점이 누락됩니다. elisp에 익숙하지 않아서 font-lock에서 키워드를 추가하거나 삭제하여 놀려고했습니다. EmacsWikiGNU이 구문을 제공하지만 정규 표현식이 나를 미치게 만듭니다. 나는 내 초기화에 우는 소리를하지 않는 다음 가지고 :이맥스에서 폰트 잠금 키워드를 추가/제거하기위한 문법

(font-lock-remove-keywords 'cperl-mode '(("\\<\\(my\\)")))

을 그리고 그것은 아무것도하지 않는다. \\<\\(my\\) 비트는 re-builder으로 처음부터 작동하므로 여기에 구문 문제가 있다고 생각합니다. 키워드를 어떻게 추가하고 제거합니까?

+1

다행히도 댓글은 단점을받을 수 없으므로 다음과 같이 처리합니다. 문제가되는 키워드를 일반 기본 글꼴 (예 : 흰색 배경이있는 검은 색 전경)으로 정의 할 수 있습니다. Emacs 트렁크에서 새 버전을 자주 빌드하기 때문에 이맥스 소스를 수정하지 않습니다. 린디 차이서 (Lindydancer)가 제안한 바는 무엇입니까?하지만 이전에는 연구하지 않았기 때문에 그에 기반한 솔루션이 없습니다. – lawlist

+1

'.../lisp/progmodes/cperl-mode.el' 소스를보고 잘못된 키워드가 어떻게 정의되어 있는지 볼 수도 있습니다. 'my'는 Emacs Trunk의 5129 라인에서 시작하여 여러 번 열거됩니다. – lawlist

답변

1

font-lock-remove-keywords 함수는 기존 글꼴 잠금 규칙을 제거하기 위해 설계되었습니다. 글꼴 잠금 규칙은 글꼴 잠금 키워드입니다.

기존 글꼴 잠금 규칙과 정확히 일치하지 않는 항목에 적용하면 아무 효과가 없습니다.

언어 키워드를 제거하도록 설계되지 않았습니다.

가장 좋은 방법은 font-lock-keywords 변수를보고 font-lock-remove-keywords을 사용하여 마음에 들지 않는 규칙을 제거한 다음 font-lock-add-keywords을 사용하여 수정 된 버전의 규칙을 추가하는 것입니다.

+0

'remove-font-lock-keywords' 대신'font-lock-remove-keywords'를 사용 하시겠습니까? – xuhdev

+0

@xuhdev : 예, 물론입니다 - 답변을 업데이트했습니다. (이런 - 나는 옛날 옛적에 **** 함수를 썼고, 그 이름도 기억할 수 없다. 나를 양로원으로 데려 갈 때가 된 것 같다 ...) – Lindydancer