是否可以让 Mozart/Oz 系统在 OSX 上的 GNU Emacs 中运行,而不是我不喜欢的 Aquamacs?我尝试将 /Applications/Emacs 复制到 /Applications/Aquamacs 但没有运气。
2 回答
了解如何做到这一点。刚从命令行启动它,出现了标准 Emacs 24(位于 /Applications/Emacs):
$ /Applications/Mozart.app/Contents/Resources/bin/oz
这里发生了一些神奇的事情。
这里的问题是 Mozart 应用程序使用硬编码的 shell 脚本来查找/Applications/Aquamacs Emacs.app
. 其中一些脚本也尝试使用/Applications/Aquamacs.app
or /Applications/Emacs.app
,但不会始终使用两者。(这就是Tvaroh 的答案有效的原因:位于的脚本/Applications/Mozart.app/Contents/Resources/bin/oz
能够使用 GNU Emacs。这也是为什么尝试更改 to 的名称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 二进制文件。)此问题仅存在于 macOS/OS X 的 Mozart 1.x 版本中。从 Mozart 2.0.0 开始,程序按原样运行,无需安装 Aquamacs,只要某种形式的 Emacs 已经位于
/Applications/Emacs.app
.