我需要在编辑器上实现一些新功能。我选择了Emacs - 尽管我的主要编程知识是Java和C - 我想添加一些函数并编辑Emacs Editor的一些现有函数。我查看了它的源代码,我有点迷失了。我想知道是否有人可以给我一些关于从哪里开始的建议以及是否有任何可以帮助的教程?
P.S。一个具体的问题是如何开始编写具有所有新功能和行为的新模式?或者如何禁用复制/粘贴等基本功能?
干杯
答案 0 :(得分:3)
Emacs Lisp编程简介 http://www.gnu.org/software/emacs/emacs-lisp-intro/或输入emacs:
M-: (info "(eintr)Top") RET
Emacs Lisp手册 http://www.gnu.org/software/emacs/manual/elisp.html或输入emacs:
M-: (info "(elisp)Top") RET
答案 1 :(得分:2)
有一些专门针对编写主要模式的教程。
除此之外,在Emacs中编写模式只是编写Lisp函数。
我要注意的一点是,你在这里提出的建议可能毫无意义;如果您将权限系统实现为主要模式,则用户只需切换模式即可将其关闭。如果这个权限系统的要点是避免破坏编辑(在这种情况下我假设你的用户将配合你的目标),这很好。如果您希望自己的用户具有对抗性,那么Emacs就是错误的工具。
答案 2 :(得分:1)
以下是关于定义主要和次要模式的手册部分:
C-h i g (elisp) Modes
RET
从现有模式中获取新模式通常是有益的,它提供了与您所需类似的基本功能。
如果没有足够匹配的内容,检查提供某些相同行为的模式的源代码将是下一个最好的事情。
我注意到从nil
'推导'模式似乎是创建全新主要模式的常用方法。这样,您仍然可以获得define-derived-mode
宏的所有好处。