Emacs Lisp (또는 Lisp에 대해서는 아무 것도 모르겠습니다.) 나는 매우 단순 해 보이는 것을하고 싶지만, 온라인 가이드에는 운이 없다. .packet
파일에 대해 "packet-mode.el"을 만들고 싶습니다. Emacs에서 새 모드 만들기
(define-derived-mode packet-mode fundamental-mode
(font-lock-add-keywords 'c++-mode `(("packet" . font-lock-keyword-face)))
(c++-mode))
(add-to-list 'auto-mode-alist '("\\.packet\\'" . packet-mode)
(provide 'packet-mode)
가 나는 또한 순서를 전환 시도했습니다 변경 C++ 모드의 나머지 부분을 유지하면서,
- 는 C를 사용 ++ 모드
packet
키워드를 확인 : 나는 다음을 수행 할 명령문은 패킷 모드이지만 C++ 강조 표시는 중단됩니다.나는
packet foo { int bar; }
이
struct
이packet
대신에 사용 된 경우 일 것 같은 방법을 강조한다는 의미에서struct
처럼 행동하는packet
을하고 싶습니다.(defvar packet-mode-font-lock-keywords '(("\\<packet\\>" . font-lock-keyword-face))) (define-derived-mode packet-mode c++-mode "Packet" "A major mode to edit GNU ld script files." (font-lock-add-keywords nil packet-mode-font-lock-keywords)) (add-to-list 'auto-mode-alist '("\\.packet\\'" . packet-mode)) (provide 'packet-mode)
장소
packet-mode.el
을 디렉토리로load-path
및 에 (선택적으로) 컴파일 바이트 : 여기
왜 'C++ - mode'에서 직접 파생되지 않습니까? – Thomas
@ 토마스, 어떻게해야할지 모르겠다. 위의 코드를 예제를 통해 복사 할 수 있습니다. 스 니펫을 주시겠습니까? – Nick
'C-h f define-derived-mode'를 시도하여 코드가 실제로하는 일을 좀 더 잘 이해하십시오. – Thomas