문제

누구든지 EMACS의 주요 모드에 대한 Hello World 예제를 제공 할 수 있습니까? 나는 그것이 초보자 질문이라고 생각합니다. 아직도 나는 사용자 정의를 최대한 활용할 수 있도록 EMAC와 ELISP를 배우기 위해 주요 모드를 작성하고 싶습니다.

내가 지금까지 한 일 (그리고 작동 중) :

  • 파일 Sample-Mode.el을 작성하여 Lisp Dir에 넣습니다.
  • .Emacs로 호출됩니다 (require 'sample-mode)
  • 그것에 약간의 수비를 썼고 결국 그것을 제공했습니다. (provide 'sample-mode)

그러나 여전히 그렇지 않은 것 같습니다 활성화, 나는 m- 샘플 모드로 호출 할 수 없다.

그래서 어떻게해야합니까? 그리고 누구든지 작업 샘플과 같은 매우 간단한 Hello World를 제공 할 수 있습니까?

도움이 되었습니까?

해결책

좋아, 좀 더 인터넷 검색 후에 나는 적어도 하나의 스텝 퓨터이다 :

(define-derived-mode sample-mode ...) 

제공은 내가 처음 생각했던대로 모드를 정의하지 않기 때문에 .. 이것은 내가 찾았습니다.

http://xahlee.org/emacs/elisp_syntax_coloring.html

Emacs 애호가들에게 아주 좋은 사이트.

그것의 도움으로 : 나는 지금 HelloWorld 예를 직접 만들었습니다. 그것은 가능한 한 작은 csharp 모드입니다. 나는 사용했다 euler1 Helloworld가 아닌 예로. 알아야 할 파일은 다음과 같습니다.

  • 모드 파일이 적용됩니다 Euler1.cs
  • .Emacs
  • 물론 모드 자체입니다

그림은 가치가 있기 때문에 최소한 많은 단어 : 1 화면의 모든 파일 :

alt text

그러나이 멋진 사진은 절반의 시간이 사라지는 것처럼 보이기 때문에 (누구나 실마리? 새로운 탭에서 열면 항상 그것을 가져오고 URL은 괜찮습니다) 일부 단어도 :-) : :-) :

  1. 모드 : CS-Mode.el

    (setq myKeywords 
     '(("WriteLine" . font-lock-function-name-face)
       ("public\\|static\\|void\\|int\\|for\\|if\\|class"
    . font-lock-constant-face)))
    
    (define-derived-mode cs-mode fundamental-mode
      (setq font-lock-defaults '(myKeywords)))
    
    (provide 'cs-mode)
    
  2. .CS 파일을 오른쪽 모드에서 열 수있게하는 .emacs는 다음과 같습니다.

;; cs
(require 'cs-mode)
(add-to-list 'auto-mode-alist '("\\.cs\\'" . cs-mode))

그리고 그게 전부 : cs-code 그 자체는 그녀의 쓸모가 없기 때문에 키 워드를 색칠하는 효과를 나타내지 않기 때문입니다. 그 사진을 보거나 다른 탭/창에서 그림을 엽니 다.

건배, ph

다른 팁

웹 주변에는 몇 가지 예가 있습니다 이와 같이. 여러 EMACS 책을 추천 할 수도 있습니다.

  • 학습 GNU EMACS (최고의 IMHO)
  • GNU EMACS 확장
  • 공식 GNU EMACS LISP 참조/매뉴얼

글쎄, 시작하자 이 답변, 사용하는 define-generic-mode.

다음과 같은 일부 주석 문자로 살을 gi. /* */, 일부 키워드 : hello hi 기타, 원래 답변에서 얼굴을 재사용, 파일 확장자 .hello, 추가 사용자 정의를 수행하기위한 기능 호출.

자동로드 작동을위한 추가 라인이 있지만 loadDefs.el을 생성하십시오 파일. 그것은 Hello World보다 더 발전했습니다.

그리고 당신은 이것으로 끝납니다.

(make-face 'my-date-face)
(set-face-attribute 'my-date-face nil :underline t)
(set-face-attribute 'my-date-face nil :family "times")
(set-face-attribute 'my-date-face nil :slant 'normal)
(set-face-attribute 'my-date-face nil :height '340)

;;;###autoload
(define-generic-mode hello-world
  '(("/*" . "*/"))                           ; comment characters
  '("hello" "hi" "howdy" "greetings" "hola") ; keywords
  '(("\\([0-9]+/[0-9]+/[0-9]+\\)"
     (1 'my-date-face)))                ; font lock
  '("\\.hello$")                        ; auto-mode-alist  
  '(hello-world-special-setup)          ; function-list
  "An example major mode.
We have comments, keywords, a special face for dates, and recognize .hello files.")

(defun hello-world-special-setup ()
  "Some custom setup stuff done here by mode writer."
  (message "You've just enabled the most amazing mode ever."))

ELISP 매뉴얼에는 주요 모드가 꽤 잘 소개되며 "Hello-World"를 제공하는 노드가 포함되어 있습니다. . 적어도 그것이 의도라고 생각합니다.

이 예제는 당신이 찾고있는 모든 것을 다루지 않을 수 있습니다. 이 경우 사용자가 더 많은 사용자에게 도움이 될 수있는 모든 것을 요청하는 것을 고려하십시오. 그렇게하려면 사용하십시오 M-x report-emacs-bug (이는 강화 요청도 마찬가지입니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top