在OSX上的GNU Emacs中运行Mozart / Oz系统而不是Aquamacs

时间:2013-05-14 17:32:01

标签: emacs aquamacs oz mozart

是否有可能在OSX上的GNU Emacs中运行Mozart / Oz系统而不是我不喜欢的Aquamacs?我尝试将/ Applications / Emacs复制到/ Applications / Aquamacs但没有运气。

2 个答案:

答案 0 :(得分:1)

了解如何做到这一点。刚刚从命令行开始,标准的Emacs 24(驻留在/ Applications / Emacs中)出现了:

$ /Applications/Mozart.app/Contents/Resources/bin/oz

enter image description here

这里发生了一些魔法。

答案 1 :(得分:1)

这里的问题是Mozart应用程序使用硬编码的shell脚本来查找/Applications/Aquamacs Emacs.app。其中一些脚本也尝试使用/Applications/Aquamacs.app/Applications/Emacs.app,但不能始终如一地使用它们。 (这就是Tvaroh's answer有效的原因:位于/Applications/Mozart.app/Contents/Resources/bin/oz的脚本可以使用GNU Emacs。这也是为什么将Emacs.app的名称更改为Aquamacs.app的尝试没有修复此问题。将Emacs.app重命名为Aquamacs Emacs.app应该有效,但我建议您使用下面编写的解决方案。)

修复非常简单:只需修改shell脚本,使它们使用Emacs而不是Aquamacs。在终端中输入以下行似乎可以解决最新版本的问题(1.4.0-2012-02-01-macosx):

$ sed -i '' -e "s/Aquamacs\\\ Emacs/Emacs/g" /Applications/Mozart.app/Contents/Resources/.script
$ sed -i '' -e "s/Aquamacs Emacs/Emacs/g" /Applications/Mozart.app/Contents/Resources/.script
$ sed -i '' -e "s/Aquamacs\\\ Emacs/Emacs/g" /Applications/Mozart.app/Contents/Resources/script
$ sed -i '' -e "s/Aquamacs Emacs/Emacs/g" /Applications/Mozart.app/Contents/Resources/script

话虽如此,我鼓励任何遇到此问题的人在其发行版中搜索其他违规文件($ grep -ir aquamacs /Applications/Mozart.app)并根据需要修改这些文件,以确保Mozart使用正确的Emacs。

对于遇到此问题的其他人,有几个关于此答案的说明:

  • 为了使其工作,应用程序目录中需要Emacs.app(例如,只有拥有macOS / OS X附带的Emacs副本不足以使此解决方案正常工作,尽管应该可以编辑Mozart.app中的脚本以使用该Emacs二进制文件运行。)

  • 此问题仅存在于Mac OS / OS X的Mozart 1.x版本中。从Mozart 2.0.0开始,程序按原样运行,无需安装Aquamacs,只要某种形式的Emacs是已位于/Applications/Emacs.app