有人能为我提供一个关于emacs主要模式的hello world示例吗? 我想这是一个初学者的问题,我仍然非常想写一个主要的模式,既学习emacs又学习elisp,以便能够充分利用自定义。
到目前为止我做了什么(并且正在努力):
(require 'sample-mode)
(provide 'sample-mode)
但它仍然没有激活,我不能用M-sample-mode调用它。
那怎么办呢?任何人都可以为我提供一个非常简单的Hello World,就像工作样本一样吗?
答案 0 :(得分:11)
好的,经过一些谷歌搜索后,我至少迈出了一步:
(define-derived-mode sample-mode ...)
因为提供没有像我想象的那样定义模式。 这是我发现的:
http://xahlee.org/emacs/elisp_syntax_coloring.html
一个非常适合emacs爱好者的网站。
借助于此:我现在自己创建了一个HelloWorld示例:它是一个(尽可能小)Csharp模式。我使用Euler1作为示例而不是HelloWorld。您需要了解的文件是:
Euler1.cs
由于pic是值得的,至少有一堆词: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)
.emacs,使.cs文件以正确模式打开:
;; cs (require 'cs-mode) (add-to-list 'auto-mode-alist '("\\.cs\\'" . cs-mode))
这就是全部:cs-code
本身对她没用,因为它不会显示为关键词着色的效果。要查看图片,请在另一个标签/窗口中打开图片。
干杯,ph
答案 1 :(得分:6)
网络上有几个例子like this。 我还可以推荐几本Emacs书:
答案 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
(也适用于增强请求)。