Emacs-Lisp:如何将Emacs-Lisp程序打包成PC应用程序?

4
只是想知道是否有可能将emacs和Lisp程序打包并部署为PC应用程序,以便一旦下载,运行setup.exe(类似),然后用户可以启动应用程序,使emacs运行特定的Lisp程序,就像该应用程序是由其他语言和平台(例如.Net或Python)实现的一样。
采用这种方法,普通用户更容易使用Lisp程序的功能,而不必成为emacs的用户,因为这通常需要一些学习曲线。另一方面,它将为Lisp代码提供一定程度的知识产权保护。
当然,一个选择是使用一些更商业化的语言/范例。但我发现emacs确实提供了丰富的功能,如果它不能被大众所享受,那将是遗憾的。
谢谢。
余申

抱歉,这不会为您的代码提供任何真正的保护。 - Nifle
虽然有点奇怪,但是这个想法很有意思。 - Michael Paulukonis
一个可能的应用程序:针对非Emacs用户的artist-mode。(或许与CUA模式一起使用。) - Yoo
2个回答

3

实际上没有很好的方法来做这件事。Emacs并不像其他软件那样方便进行“运行时”重新分发。

你可以编译一个版本的Emacs,从中删减掉你想要的一切(包括C特性或Elisp库),对你想要分发的代码进行字节编译,将所有这些文件放入一个档案文件(或setup.exe),然后进行分发。

要对多个文件进行字节编译,可以运行

$ emacs -batch -f batch-byte-compile files...

一旦您准备好自己的库,就可以使用以下命令使emacs在启动时运行特定命令:

$ emacs -f function

你还可以使用-l file开关加载其他elisp文件。

除非你非常喜欢Emacs,我建议你使用不同的Lisp方言,更适合重新分发独立程序。


谢谢提供这些非常有用的指导意见。还有一些问题: 是否有任何Lisp方言提供像emaacs-Lisp那样的强大文本缓冲对象功能? 是否有任何近乎成品的工具来创建这样的setup.exe?再次感谢。神宇 - Yu Shen
可能没有其他Lisp与Emacs一样,从一开始就具备所有文本编辑功能;所有的缓冲区操作都是非常特定于Emacs的。至于适用于setup.exe的Lisp方言,除了通过Google搜索外,我不知道还有什么其他选择。除了在Emacs之外,我几乎没有进行过任何Lisp编程,抱歉。 - haxney

0

对于Exacs Lisp,您可以使用 -script 选项运行任何 ELisp 程序作为脚本运行,因此您可以将其打包到任何平台中,就像您所描述的那样。

例如,您可以使用 WINRAR 将 Emacs 和脚本解压缩到要安装的 Windows 计算机上,然后设置 WinRar 选项以将您的程序作为脚本运行。这样,您将拥有一个用户单击的 .exe 文件,并且您的 Emacs 程序将被安装和运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接