当前位置:  开发笔记 > 前端 > 正文

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

如何解决《Emacs中主要模式的"helloworld"示例?》经验,为你挑选了3个好方法。

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

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

写了一个文件sample-mode.el并将它放在一个lisp目录中

在.emacs中调用 (require 'sample-mode)

在其中写了一些defuns,并在最后提供了它 (provide 'sample-mode)

但它似乎没有被激活,我不能用M-sample-mode调用它.

那怎么办呢?谁能为我提供一个非常简单的Hello World,就像工作样本一样?



1> Peter..:

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

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

因为提供没有像我先想到的那样定义模式..我发现:

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

对于emacs爱好者来说,这是一个非常好的网站.

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

将应用该模式的文件 Euler1.cs

.emacs

当然还有模式本身

由于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本身对她没用,因为它不会显示关键词着色的效果.要查看图片,或在另一个标签/窗口中打开图片.

干杯,电话



2> dfa..:

像这样的网络有几个例子.我还可以推荐几本Emacs书:

学习GNU Emacs(最好的imho)

编写GNU Emacs扩展

官方GNU Emacs lisp参考/手册



3> Trey Jackson..:

好吧,让我们从这个使用的答案开始吧define-generic-mode.

使用一些注释字符充实它,例如:/* */,某些关键字:hello hi等等,重新使用原始答案中的面部,文件扩展名.hello和函数调用来进行进一步的自定义.

有额外的行可以使自动加载工作,但您必须生成loaddefs.el文件.这比你好世界更先进.

而且,你最终得到这个:

(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."))

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有