Emacs有规格吗?

时间:2014-11-07 02:35:45

标签: emacs elisp compatibility specifications

我想使用QtCommon Lisp作为业余爱好项目实施另一个Emacs,仅供我自己学习。但我不确定是否存在“Emacs的官方规范”这样的事情,以便我可以遵循以确保与其他实现的最大兼容性,比如GNU Emacs?

2 个答案:

答案 0 :(得分:6)

软件和规范

某些软件由标准定义,并且有许多实现(例如,Common Lisp,Scheme,C,C ++& c),某些软件由其独特的实现定义,文档是它是次要的(例如,Emacs,Python,Ruby,Perl)。有一个Java的中间案例,它由一个不断发展的标准定义,并有一个参考实现,由其他几个人跟踪。

的Emacs

没有“Emacs的官方规范” - 它是由实现定义的(还有其他Emacsen,有些更兼容,有些更少;有些更活,有些更少)。 Emacs编辑器和Emacs Lisp语言也都有大量的手册,您应该阅读这两本手册(以 C-h C-h 开头)。但是,文档不是规范:如有疑问,请参考来源,而不是文档。如果您发现两者之间存在分歧,则修复通常是更改文档,而不是代码。

CL& emacs的

我建议你从CL-Emacs页开始 - 你不认为你是第一个想到CL中的Emacs的人,对吗? - 已经有不少类似的项目。

无耻的插件:15年前我写了elisp.lisp,它允许你在Common Lisp中运行“任意”的Emacs Lisp代码。当然,它不适用于依赖于Emacs编辑器功能的代码(例如缓冲区),但您可以加载Emacs日历并将日期从Gregorian转换为Mayan。

计划

如果您决定从头开始实施CL Emacs,我建议您使用大型Emacs Lisp项目(例如,Gnus,Calc,Org-mode& c),并确保您的编辑器完美支持它。然后你知道你有一些对别人有用的东西。

答案 1 :(得分:3)

据我所知,没有这样的规范(这是非常有限的)。请记住,主要是,Emacs只是一个相当古怪的lisp VM,恰好编辑文本。任何Emacs用户都没有立即绑定一堆密钥,自定义功能,并且通常“搞乱”任何规范存在,可能不是因为他们喜欢它而使用Emacs。 Emacs总是意味着一个中间状态,即你想要的任何跳跃点。

尽管如此,并非所有人都失去了。首先,有official GNU emacs manual,它既相当流行又容易解析(一般而言)。不幸的是,很多手册都涉及到Emacs Lisp,它虽然是Emacs的核心,但对你的项目并不重要。


但是!我们忘记了:Emacs哲学的核心支柱之一是self-documentation。 Emacs通过它的帮助系统(也就是帮助系统文档本身)直接记录了自己行为的各个方面。一些有用的命令

  • 控制 + h k &lt; keybinding&gt; (又名。describe-key)给你绑定到您按下的键的函数的文档。因此, Control + h k Control + h k < / kbd>给你:
  

C-h k运行命令describe-key,这是一个交互式编译   Lisp函数在`help.el'。

     

它与C-h k,&lt; f1&gt;结合。 k,&lt; help&gt; k,&lt; menu-bar&gt; &LT;帮助-菜单&gt;   &LT;描述&GT; &LT;描述密钥-1。&GT;

     

(describe-key&amp; optional KEY UNTRANSLATED UP-EVENT)

     

显示KEY调用的函数的文档。   KEY可以是任何类型的键序列;它可以包括键盘事件,   鼠标事件和/或菜单事件。从程序打电话时,   将KEY作为字符串或向量传递。   &lt; content snipped&gt;

  • 控制 + h f &lt; function name&gt; (又名。describe-function)给出您在Emacs中的任何功能的文档。因此, Control + h f describe-function 呈现:
  

describe-function是一个交互式自动加载编译的Lisp函数   在`help-fns.el'。

     

它与C-h f,&lt; f1&gt;结合。 f,&lt; help&gt; f,&lt; menu-bar&gt; &LT;帮助-菜单&gt;   &LT;描述&GT; &LT;描述功能&GT;

     

(describe-function FUNCTION)

     

显示FUNCTION(符号)的完整文档。

  • Control + h b (又名。describe-function)为您提供所有键绑定及其相应命令的列表。在命令上键入返回会转到该命令的说明(àladescribe-function)。

这是冰山一角。键入 Alt + x describe - Tab 和荣耀在Emacs文档系统的强大力量。


Emacs是它自己的规范,就像旧的UNIX存在一样,规范是从它们中删除的,而不是相反的。希望这足以满足您的需求。

祝你的项目好运。 :)