我无法逆向工程Aquamacs来提取NSSpellChecker的使用/功能。我希望将这些使用/功能从源代码中整合到Emacs的裸骨架中。我找到了看似相关的文件 - ns-win.el
; flyspell.el
;和ispell.el
- 但是,仅仅将这些文件从Aquamacs替换为Emacs并不能启用运行OSX原生的拼写检查程序的弹出式菜单。我错过了一个或多个拼图 - 我打开了所有的Aquamacs * .gz文件,并在所有这些文件中搜索了几个关键字,但是我还没有发现任何其他文件看起来像他们与此功能有关。该功能由Aquamacs before
启用,它的site-start.el启动。OSX - 配置Emacs以使用NSSpellChecker
我学会了如何使用tarball从源代码构建Emacs,并且也使用bzr。如果有人知道如何在构建过程中配置NSSpellChecker,那就太好了。
我在互联网上找不到任何东西可以远程描述如何做到这一点。
Aspell的拼写检查功能让我想起了80年代后期的生活。我越来越喜欢用按钮选择拼写检查选项的弹出式菜单。
这里是链接到一个解释为建设Aquamacs,并寻找到构建脚本是我的待办事项列表中的下:
http://www.emacswiki.org/cgi-bin/wiki/BuildingAquamacs
编辑1:构建脚本有更多一点说NSSpellChecker,所以需要查看的其他文件包括:nsterm.m
和nsfns.m
。我不认为aquamacs-menu.el
或osxkeys.el
是必要的,因为那些加载后,site-start.el。越来越像NSSpellChecker在构建过程中被硬编码到应用程序可执行文件中,并与上述文件一起使用。
编辑2:是的,这是拼图的缺失部分。应用程序包内的Aquamacs的可执行文件(即... Aquamacs.app/Contents/MacOS/Aquamacs
)包含NSSpellChecker的硬编码魔术,并结合了Aquamacs修改版本ns-win.el
; flyspell.el
;和ispell.el
。
编辑3:此时,一个选项是修改构建过程中使用的Aquamacs和相关文件的构建脚本,以构建自定义应用程序。另外,创建一个混合也是可能的,但也带有它自己的问题,因为当从Finder.app打开一个文件时,Aquamacs可执行文件被硬编码为特殊文件,如one-frame-one-buffer-mode
;当从Finder.app打开一个文件时, ns-application-activated
需要设置为忽略;包括init.el文件中的版本ID以正确地清除错误消息;简单的菜单选项,适用于Aquamacs以节省选项;和其他一些显而易见的问题。总之,混合动力是可行的,但颈部疼痛。我确实有一个混合工作,但我相信我将不得不做更多的调整,因为我发现需要处理的更多Aquamacs定制(由可执行文件创建)。现在发布任何类型的答案为时尚早。构建脚本修改似乎是最好的解决方案,但需要很多时间才能正确修改它,以便创建一个可隔离NSSpellChecker功能的自定义构建。编辑4:我有一个NSSpellChecker的工作版本,它是Aquamacs24的自定义版本的可执行文件(省略了几乎所有的Aquamacs,除了拼写检查器)以及emacs-trunk最新版本的Emacs24(夜间版本)。我在等待接收一些技术支持,使用终端下载最新的Aquamacs24分支与git,因为我有一些问题与终端复制ZIP版本。这非常详细,我想在发布答案之前简化流程,并且我希望事先彻底测试它。
NSSpellChecker http://lawlist.com/images/spellchecker.png
是否有任何努力使其成为主线Emacs的配置选项? – tripleee 2016-06-02 04:11:03
@tripleee - 我不确定Richard M. Stallman,John Wiegley或Eli Zaretskii是否有兴趣拥有OSX特有的功能。我的猜测是,他们不会,但是,约翰使用OSX - 所以他*可能*有兴趣。毫无疑问,RMS将坚持让David Swelt(用于C源代码修改)和Nathaniel Cunningham(ispell.el/flyspell.el)等人签署文件,让他们的贡献成为Emacs的官方部分,他们即使许可证是GNU,也可能不愿意这样做。此外,“Aquamacs”接受捐赠。 。 。 – lawlist 2016-06-02 04:21:09