Aquamacs和其他Mac版本的Emacs有什么区别?


99

Macintosh用户可以选择几种预构建的Emacs。我知道以下版本:

  • YAMAMOTO Mitsuharu的版本
  • 大卫·考德威尔(David Caldwell)的版本
  • 文森特·古莱特(Vincent Goulet)的版本
  • David Reitter的Aquamacs 版本

我想到的一些问题:

  1. 这些版本在任何重大方面是否有所不同?
  2. 一个人可以通过简单地修改初始化文件来获得其他人的功能吗?
  3. 这些变化是否会回到上游?

我知道Aquamacs具有非常类似于Mac的键绑定,因此被认为是“非正统”的,但是我也有兴趣了解非Aquamacs版本之间的区别。


数据点:我只是尝试了一些这些emacsen,并决定使用Yamamoto Mitsuharu的叉子。我已经使用Aquamacs多年了,但是它经常崩溃(与框架/标签有关),我受不了了。似乎Aquamacs曾经做过很多其他人没有做过的事情,但是现在已经不是了。Yamamoto前叉现在是Mac的上乘之选。
Scott Fraize

我通常使用Aquamacs,决定这次冲泡。小调:获取#键,设置澳大利亚输入类型!
戴夫·霍奇金森

Answers:


126

适用于Mac OS X的Emacs

Mac OS X的Emacs提供了GNU Emacs的OS X二进制文件。与使用编译GNU Emacs发行版tarball大致相同./configure --with-ns。该站点提供稳定版本和预测试的构建,以及夜间快照。所有这些构建都是独立的,可让您安全地尝试预测试和快照。

但是请注意,这些二进制文件不支持某些库,尤其是GNU TLS和ImageMagick。如果您想使用它们-如果您想在Emacs中阅读邮件,前者特别重要-您​​需要从Homebrew获得GNU Emacs。

修改了OS X的Emacs

根据网站Emacs for OS X的说明,Modified只是基于上述内容的GNU Emacs的标准构建,带有一些其他软件包以及启用所有这些软件包的必要配置。

除了ESS以外,所有这些软件包都可以通过Emacs的软件包归档文件获得,以安装在任何Emacs中。例如,您只需键入M-x package-install RET auctex并启用AUCTeX,即可在GNU Emacs中正确安装AUCTeX 。

软件包的选择表明它主要针对统计学家和研究,这将通过R和ESS通过他们的数据进行工作,然后与Org或AUCTeX和LaTeX发表论文。

对于其他用户来说,这种分布可能没有什么用,因为您仍然需要安装其他软件包,并且可能立即使用GNU Emacs。

这是您可以通过安装其他Emacs软件包并进行相应调整来在GNU Emacs中正确创建自己的发行版init.el。其他发行版是GNU Emacs的修补和分支变体。

Emacs Mac端口

Emacs Mac Port是GNU Emacs的补丁集,适用于更好的OS X集成。请注意,GNU Emacs本身也具有本机OS X支持,但缺少此补丁集提供的OS X特定的附加功能。值得注意的是:

  • 用于文本呈现的核心文本,可改善文本外观和Unicode支持。它已合并到GNU Emacs适当的文件中,并且是Emacs 24.4的一部分。
  • 平滑滚动。GNU Emacs适当地沿行滚动,这对于触控板来说非常漫长和跳跃。Emacs Mac Port像其他本机OS X应用程序一样使用基于像素的滚动,感觉更加流畅,也更加精确。但是,它仅影响触控板的滚动,因此,如果您不使用鼠标,则不需要它。
  • 手势。您可以捏以增加/减小文本大小。同样,如果您不使用鼠标,您将不会注意到它,并且可以说这只是一个奇特的功能。
  • 支持Apple Events。您可以从Emacs Lisp发送和接收Apple Events。
  • 字典服务。与其他OS X应用程序一样,在Apple的Dictionary应用程序中,三指轻击将搜索光标下方的单词。
  • 服务集成。您可以从正在运行的Emacs的上下文菜单中的Finder中打开选定的文件。
  • 使用Webkit而非librsvg显示本机SVG。据我所知,Webkit具有更好的SVG支持,但是谁在Emacs中查看SVG?

您会注意到,大多数这些功能仅与集成到OS X有关,对于使用Emacs并不是必不可少的。除此之外,Emacs Mac Port非常类似于标准的GNU Emacs。

它的某些功能重新回到GNU Emacs中,但是其他功能将永远不会被合并,因为它们是OS X专有的,并且在免费的替代GNUStep中不可用,这违背了FSF的原则,即不支持专有操作系统。他们的免费替代品。另外,如果我没记错的话,此补丁集的作者对将功能重新带回上游的兴趣不大,这可能是出于先前的原因。

阿夸马克斯

Aquamacs是GNU Emacs的一个重要补丁。与上述所有方法不同,它不是基于GNU Emacs的,而是具有独立的源代码树。不过,它定期与Emacs上游同步,并紧跟Emacs发行版。但是,它不可避免地落后于GNU Emacs干线。

它经过了重大修改,以使其外观和感觉像本机OS X应用程序。值得注意的是,它支持并鼓励标准的OS X键绑定,例如Cmd+S保存。虽然,标准Emacs绑定仍然大部分可用。

由于它的分支经过了重大修改,并且具有完全不同的目标和原理,因此它的任何功能都不会与GNU Emacs合并:这些修改中的大多数直接违背了GNU Emacs的“精神”,思想和理念。

TL; DR(或:我应该选什么)

  • 如果您是统计学家或研究人员,并且不想自己设置Emacs: 修改了OS X的Emacs
  • 如果您想要本机OS X应用程序比其他所有功能都多:Aquamacs
  • 如果您想要Emacs,但又具有尽可能好的OS X支持:Emacs Mac Port
  • 如果您只想要Emacs,而没有任何复杂性:适用于Mac OS X的Emacs

我的个人建议

我从未尝试过将Emacs用于OS X Modified或Aquamacs,但在前者中我使用很少(我不是统计学家,可以自己安装AUCTeX)。我还建议不要使用后者:这是一个分支,虽然它可以为您提供最佳的OS X集成,但它不可避免地会落后,并且在Emacs社区中获得的支持较少。许多软件包不支持Aquamacs,因此,如果出现问题,很可能让您独自作为Aquamacs用户。

我确实尝试了Emacs Mac Port,并且平滑滚动,手势和Apple Events很好,但我发现这些小好处不值得保留GNU Emacs补丁版本的麻烦。YMMV,显然,如果您希望获得良好的OS X支持,并且这些功能吸引您,那么您绝对应该尝试一下。

如今,我仅使用GNU Emacs快照构建。这些具有相当好的OS X支持,并且到目前为止最容易安装,并且得到社区的最佳支持。

我曾经从Mac OS X的Emacs中获取它们,但是现在我使用Homebrew,因为它支持更多的库,尤其是用于加密网络连接的GNU TLS。

总而言之:使用brew install emacs --HEAD --use-git-head --with-cocoa --with-gnutls --with-rsvg --with-imagemagick:)。


8
很好-使用mac端口也不是那么困难。从github.com/railwaycat/emacs-mac-portbrew tap railwaycat/emacsmacport然后brew install emacs-mac
Rainer

3
“ Mac端口”肯定不是第一个具有本地OSX GUI支持的Emacs。相反,它是在Emacs从旧的“ Carbon Emacs”代码迁移到较新的“ Emacs.app”代码的时候诞生的(此举之所以这样做,部分原因是Carbon可能已被Apple弃用,部分原因是没人愿意维护该代码)。 ,部分原因是“ Emacs.app”代码可以支持GNUstep。到目前为止,GNUstep的支持基本上是不可用的(因此在使用GNU / Linux系统时,它偶尔可用于跟踪和修复OSX代码上的错误。 ))。
Stefan 2014年

6
出色的写作。一些OSX用户可能会对知道Aquamacs内置对本机OSX拼写检查器的支持感兴趣,该检查器包括用户先前已添加到词典中的已保存单词的列表。在我看来,这是Aquamacs的一项关键功能,在构建之前不修改源代码就无法在其他Emacs版本中进行复制。但是,我更喜欢使用aspell并避免使用鼠标-因此OSX拼写检查器(确实非常漂亮)并不是我改用Aquamacs的原因。
法律列表

1
免责声明:我使用Linux,但不确定OSX,但是我确实在Emacs中写电子邮件,并且不需要TLS。我(或更确切地说mu4e)呼吁msmtp发送和mbsync检索我的电子邮件。
mbork 2014年

1
小尼特:从源代码进行编译需要./configure --with-ns,而不是--enable-ns
Harald Hanche-Olsen 2014年

22

关于Aquamacs的一些事实更正。虽然它维护自己的源代码树,但它经常与Emacs合并,并且几乎与每个Emacs版本都合并。Aquamacs 3.1在Emacs 24.4发布的那天就发布了(它包含了Emacs 24.4的所有功能和部分bug)。Aquamacs拥有超过1万名普通用户,受到积极支持。

Emacs Mac端口的起源比Emacs中的Cocoa和Nextstep端口要晚得多。它被认为是实验性的,原始作者建议不要在其补丁集之外进行重新分发。因此,与其他解决方案相比,支持将受到更多限制。但是,这是一条有趣的发展路线,如果被开发人员采用,最终将为社区提供很多价值。用户应该将自己视为“ beta测试人员”,并通过良好的错误报告和补丁贡献自己的力量。

Aquamacs的价值在于其“准备推出”的哲学:即开即用的LaTeX,EmacsSpeaksStatistics和Mac集成。无需复杂的配置。


Emacs仅很少发布,因此,如果Aquamacs仅在发布之后合并,很少。不过,我已经更新了答案,删除了该部分。另外,尽管Aquamacs本身得到了积极的维护和支持,但社区的支持却很少。很少有第3方软件包明确支持Aquamacs。实际上,许多软件包明确支持GNU Emacs,不支持任何派生或派生类,包括XEmacs或Aquamacs。
lunaryorn 2014年

您是否有资料来源建议Mac端口作者不要在其补丁集之外重新分发部件?
lunaryorn 2014年

@lunaryorn:我相信当时确实如此,但现在不再如此。在我的编辑中,我删除了该评论。
davidswelt

11

我尝试了上述所有选项(甚至Reiner在上面的评论中推荐的水龙头)都没有对我有效(触控板滚动问题,悬挂等)。但是,我对Yamamoto Mitsuharu的前叉非常满意,这是由铁路的github页面维护的。关于官方GNU版本,它是最新的。只需在.dmg此处下载图像:https : //github.com/railwaycat/emacs-mac-port/wiki/Downloads


8
如果您有空闲时间,请扩展您的答案,并说明此特定版本与普通版本之间的区别。这样,您的答案就不仅仅是评论,而且读者不需要离开此答案并查看诸如github.com/railwaycat/emacs-mac-port/blob/master/README-mac的
lawlist

0

直到最近我一直在使用Aquamacs版本。在Mac上使用它时,我偏爱Auquamacs版本的主要原因是,我能够在默认设置下将Dragon Dictate与emacs一起使用。在配置设置时,我对常规emacs版本的命令感到麻烦。除此之外,还有默认的键绑定,与我进行交互的区别不大。我的设置将以相同的方式加载。使用键盘绑定方便地使用cmd-c,cmd-v,cmd-x,cmd-z,S-cmd-z复制,剪切,粘贴和撤消剪贴板,这只是出于Mac习惯,而我能够用一只手在Mac键盘上自动执行此操作,但您可以将常规emacs中的设置为任意所需的值,其中许多mac设置都不需要auquamacs。

但是,我上次检查Auquamacs中的emacs一年都没有更新,它似乎落后了。我还收到一些过期的证书警告。我不确定它是否仍在维护。网站上似乎没有更新。我能够使用自制软件安装常规的Mac版Emacs,并将我的init文件更新为允许听写工作的mac设置。

但是我最近一直在使用linuxmint,我想我会坚持下去。使用Linux,我的系统更加安静,快捷和流畅,并且可以轻松自定义桌面的外观。我对Linux版本上的emacs init文件进行了一些小的更改,但几乎相同。不过,我一直无法为Linux上的命令找到一个好的解决方案。我不知道我的机器是否可以处理仅用于听写软件的虚拟机中另一个操作系统的运行。听写软件也是一种资源消耗,但这是另一个问题。如果Dragon在Linux上发布了Dictate版本,那就太好了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.