Deployment Emacs Lisp:如何将Emacs Lisp程序打包为PC应用程序?

Deployment Emacs Lisp:如何将Emacs Lisp程序打包为PC应用程序?,deployment,elisp,package,Deployment,Elisp,Package,只是想知道是否有可能将emacs和Lisp程序打包并部署为PC应用程序,这样一旦下载并运行setup.exe(某种),用户就可以启动应用程序,使emacs运行特定的Lisp程序,就像该应用程序是由其他语言和平台(如.Net或Python)实现的一样 通过这种方法,普通用户使用Lisp程序的功能比成为emacs用户更容易,因为emacs通常需要一些学习曲线。另一方面,它将为Lisp代码提供一定程度的知识产权保护 当然,另一种选择是使用一些更商业化的语言/范例。但我发现emacs确实提供了丰富的功能

只是想知道是否有可能将emacs和Lisp程序打包并部署为PC应用程序,这样一旦下载并运行setup.exe(某种),用户就可以启动应用程序,使emacs运行特定的Lisp程序,就像该应用程序是由其他语言和平台(如.Net或Python)实现的一样

通过这种方法,普通用户使用Lisp程序的功能比成为emacs用户更容易,因为emacs通常需要一些学习曲线。另一方面,它将为Lisp代码提供一定程度的知识产权保护

当然,另一种选择是使用一些更商业化的语言/范例。但我发现emacs确实提供了丰富的功能,如果大众不喜欢的话,那就太可惜了

提前感谢,


于慎

做这件事真的没有好办法。Emacs并没有被设置为一个“运行时”,以便于重新分发

您可以做的是编译一个版本的Emacs,从安装中删除您想要的内容(C功能或Elisp库),对要分发的代码进行字节编译,将所有内容放入存档(或setup.exe)并分发

要编译多个文件,可以运行

$ emacs -batch -f batch-byte-compile files...
将库放在一起后,可以让emacs在启动时使用以下命令运行特定命令:

$ emacs -f function
您还可以使用
-l file
开关加载其他elisp文件


除非您真的与Emacs结合,否则我建议您使用不同的Lisp方言,一种更适合于独立程序重新分发的方言。

对于exacs Lisp,您可以使用-script选项以脚本形式运行任何ELisp程序,因此您可以按照您描述的任何平台进行打包


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

抱歉,它不会为您的代码提供任何真正的保护。不过,这是一个有趣的想法。奇怪,但很有趣。一个可能的应用:非Emacser的艺术家模式。(可能在CUA模式打开的情况下)感谢您提供的非常有用的提示。还有一些问题:有没有像emaacs Lisp这样提供强大文本缓冲区对象功能的Lisp方言?是否有现成的工具来创建这样的setup.exe?再次感谢。可能没有另一个Lisp附带Emacs的所有文本编辑功能;所有缓冲区内容都非常特定于Emacs。至于setup.exe对应的Lisp方言,我只知道谷歌搜索。对不起,我在Emacs之外几乎没有做过Lisp编程。