Emacs中主要模式的“hello world”示例?

时间:2009-06-30 11:13:56

标签: emacs major-mode

有人能为我提供一个关于emacs主要模式的hello world示例吗? 我想这是一个初学者的问题,我仍然非常想写一个主要的模式,既学习emacs又学习elisp,以便能够充分利用自定义。

到目前为止我做了什么(并且正在努力):

  • 写了一个文件sample-mode.el并将其放入lisp目录
  • 在.emacs (require 'sample-mode)
  • 中调用
  • 在其中写了一些defuns,并在最后提供(provide 'sample-mode)

但它仍然没有激活,我不能用M-sample-mode调用它。

那怎么办呢?任何人都可以为我提供一个非常简单的Hello World,就像工作样本一样吗?

4 个答案:

答案 0 :(得分:11)

好的,经过一些谷歌搜索后,我至少迈出了一步:

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

因为提供没有像我想象的那样定义模式。 这是我发现的:

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

一个非常适合emacs爱好者的网站。

借助于此:我现在自己创建了一个HelloWorld示例:它是一个(尽可能小)Csharp模式。我使用Euler1作为示例而不是HelloWorld。您需要了解的文件是:

  • 该模式将应用于Euler1.cs
  • .emacs
  • 当然还有模式本身

由于pic是值得的,至少有一堆词:1个屏幕上的所有文件:

alt text

但是,因为这个漂亮的图片似乎消失了一半的时间(任何人都有线索?在新标签中打开总是带来它,网址也可以)一些词也是:-):

  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. .emacs,使.cs文件以正确模式打开:

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

    这就是全部:cs-code本身对她没用,因为它不会显示为关键词着色的效果。要查看图片,请在另一个标签/窗口中打开图片。

    干杯,ph

答案 1 :(得分:6)

网络上有几个例子like this。 我还可以推荐几本Emacs书:

  • 学习GNU Emacs(最好的imho)
  • 编写GNU Emacs扩展
  • 官方GNU Emacs lisp参考/手册

答案 2 :(得分:5)

好吧,让我们从this answer开始,使用define-generic-mode

使用以下某些评论字符进行充实:/* */,某些关键字:hello hi等,重复使用原始答案中的面部,文件扩展名{{1和函数调用进行进一步的自定义。

还有额外的行可以使自动加载工作,但您必须generate the loaddefs.el文件。这比hello world更先进。

而且,你最终得到了这个:

.hello

答案 3 :(得分:2)

Elisp手册很好地介绍了主要模式,它包含一个呈现“hello-world”examples的节点。我认为至少这是意图。

这些示例可能无法涵盖您要查找的所有内容。在这种情况下,请考虑请求您认为缺少的任何内容,以帮助用户更多。为此,请使用 M-x report-emacs-bug (也适用于增强请求)。